Skip to content

Support OpenSwoole web server #1041

Open
@zliebersbach

Description

@zliebersbach

Summary

Currently, only Apache and PHP-FPM are supported as web servers in the New Relic agent. This means users cannot use performance-enhancing features such as Laravel Octane. OpenSwoole is a common server for Laravel Octane. Other alternatives supported include FrankenPHP and RoadRunner.

https://docs.newrelic.com/docs/apm/agents/php-agent/getting-started/php-agent-compatibility-requirements/#webserver
https://laravel.com/docs/12.x/octane

Desired Behavior

OpenSwoole should be added as a supported server in the New Relic PHP agent.

Additional context

I work on high-performance Laravel applications that depend on features in OpenSwoole and I cannot instrument them with New Relic.

Current error when launching Laravel Octane on OpenSwoole with New Relic agent installed:

[2025-03-27 02:22:50] production.ERROR: Undefined constant "Laravel\Octane\Commands\Concerns\SIGINT" {"exception":"[object] (Error(code: 0): Undefined constant \"Laravel\\Octane\\Commands\\Concerns\\SIGINT\" at /app/vendor/laravel/octane/src/Commands/Concerns/InteractsWithServers.php:174)
[stacktrace]
#0 /app/vendor/symfony/console/Application.php(978): Laravel\\Octane\\Commands\\StartCommand->getSubscribedSignals()
#1 /app/vendor/symfony/console/Application.php(316): Symfony\\Component\\Console\\Application->doRunCommand(Object(Laravel\\Octane\\Commands\\StartCommand), Object(Symfony\\Component\\Console\\Input\\ArgvInput), Object(Symfony\\Component\\Console\\Output\\ConsoleOutput))
#2 /app/vendor/symfony/console/Application.php(167): Symfony\\Component\\Console\\Application->doRun(Object(Symfony\\Component\\Console\\Input\\ArgvInput), Object(Symfony\\Component\\Console\\Output\\ConsoleOutput))
#3 /app/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(197): Symfony\\Component\\Console\\Application->run(Object(Symfony\\Component\\Console\\Input\\ArgvInput), Object(Symfony\\Component\\Console\\Output\\ConsoleOutput))
#4 /app/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1203): Illuminate\\Foundation\\Console\\Kernel->handle(Object(Symfony\\Component\\Console\\Input\\ArgvInput), Object(Symfony\\Component\\Console\\Output\\ConsoleOutput))
#5 /app/artisan(13): Illuminate\\Foundation\\Application->handleCommand(Object(Symfony\\Component\\Console\\Input\\ArgvInput))
#6 {main}
"} 

In InteractsWithServers.php line 174:
                                                                
  Undefined constant "Laravel\Octane\Commands\Concerns\SIGINT" 

Metadata

Metadata

Assignees

No one assigned

    Labels

    PMPM to review against project priorities.enhancementNew feature or request

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions