Laravel Octane
简介
Laravel Octane 通过使用高性能应用程序服务器为您的应用程序提供服务来增强您的应用程序的性能,包括 Open Swoole,Swoole,和 RoadRunner。Octane 启动您的应用程序一次,将其保存在内存中,然后以极快的速度向它提供请求。
安装
Octane 可以通过 Composer 包管理器安装:
composer require laravel/octane
安装 Octane 后,您可以执行 octane:install
命令,该命令会将 Octane 的配置文件安装到您的应用程序中:
php artisan octane:install
服务器先决条件
Laravel Octane 需要 PHP 8.1+.
RoadRunner
RoadRunner 由使用 Go 构建的 RoadRunner 二进制文件提供支持。当您第一次启动基于 RoadRunner 的 Octane 服务器时,Octane 将为您提供下载和安装 RoadRunner 二进制文件。
通过 Laravel Sail 使用 RoadRunner
如果你打算使用 Laravel Sail 开发应用,你应该运行如下命令安装 Octane 和 RoadRunner:
./vendor/bin/sail up
./vendor/bin/sail composer require laravel/octane spiral/roadrunner
接下来,你应该启动一个 Sail Shell,并运行 rr
可执行文件检索基于 Linux 的最新版 RoadRunner 二进制文件:
./vendor/bin/sail shell
# Within the Sail shell...
./vendor/bin/rr get-binary
安装完 RoadRunner 二进制文件后,你可以退出 Sail Shell 会话。然后,需要调整 Sail 用来保持应用运行的 supervisor.conf
文件。首先,请执行 sail:publish
Artisan 命令:
./vendor/bin/sail artisan sail:publish
接着,更新应用 docker/supervisord.confd
文件中的 command
指令,这样 Sail 就可以使用 Octane 作为服务器,而非 PHP 开发服务器,运行服务了:
command=/usr/bin/php -d variables_order=EGPCS /var/www/html/artisan octane:start --server=roadrunner --host=0.0.0.0 --rpc-port=6001 --port=80
最后,请确保 rr
二进制文件是可执行的并重新构建 Sail 镜像:
chmod +x ./rr
./vendor/bin/sail build --no-cache
Swoole
如果你打算使用 Swoole 服务器来运行 Laravel Octane 应用,你必须安装 Swoole PHP 组件。通常可以通过 PECL 安装:
pecl install swoole
Open Swoole
如果你想要使用 Open Swoole 服务器运行 Laravel Octane 应用,你必须安装 Open Swoole PHP 扩展。通常可以通过 PECL 完成安装:
pecl install openswoole
通过 Open Swoole 使用 Laravel Octane,可以获得 Swoole 提供的相同功能,如并发任务,计时和间隔。
通过 Laravel Sail 使用 Swoole
在通过 Sail 提供 Octane 应用程序之前,请确保你使用的是最新版本的 Laravel Sail 并在应用程序的根目录中执行 ./vendor/bin/sail build --no-cache
。
你可以使用 Laravel 的官方 Docker 开发环境 Laravel Sail 开发基于 Swoole 的 Octane 应用程序。 Laravel Sail 默认包含 Swoole 扩展。但是,你仍然需要调整 Sail 使用的 supervisor.conf
件以保持应用运行。首先,执行 sail:publish
Artisan 命令:
./vendor/bin/sail artisan sail:publish
接下来,更新应用程序的 docker/supervisord.conf
文件的 command
指令,使得 Sail 使用 Octane 替代 PHP 开发服务器:
command=/usr/bin/php -d variables_order=EGPCS /var/www/html/artisan octane:start --server=swoole --host=0.0.0.0 --port=80
最后,构建你的 Sail 镜像:
./vendor/bin/sail build --no-cache
Swoole 配置
Swoole 支持一些额外的配置选项,如果需要,你可以将它们添加到你的 octane
配置文件中。因为它们很少需要修改,所以这些选项不包含在默认配置文件中:
'swoole' => [
'options' => [
'log_file' => storage_path('logs/swoole_http.log'),
'package_max_length' => 10 * 1024 * 1024,
],
],
为应用程序提供服务
Octane 服务器可以通过 octane:start
Artisan 命令启动。此命令将使用由应用程序的 octane
配置文件的 server
配置选项指定的服务器:
php artisan octane:start
默认情况下,Octane 将在 8000 端口上启动服务器(可配置),因此你可以在 Web 浏览器中通过 http://localhost:8000
访问你的应用程序。
通过 HTTPS 为应用程序提供服务
默认情况下,通过 Octane 运行的应用程序会生成以 http://
为前缀的链接。当使用 HTTPS 时,可将在应用的 config/octane.php
配置文件中使用的 OCTANE_HTTPS
环境变量设置为 true
。当此配置值设置为 true
时,Octane 将指示 Laravel 在所有生成的链接前加上 https://
:
'https' => env('OCTANE_HTTPS', false),