Skip to content

Laravel Octane

简介

Laravel Octane 通过使用高性能应用程序服务器为你的应用程序提供服务来增强你的应用程序性能,包括 FrankenPHPOpen SwooleSwooleRoadRunner。Octane 一次性启动你的应用程序,将其保存在内存中,然后以超音速为其提供请求。

安装

Octane 可以通过 Composer 包管理器安装:

shell
composer require laravel/octane

安装 Octane 后,你可以执行 octane:install Artisan 命令,该命令会将 Octane 的配置文件安装到你的应用程序中:

shell
php artisan octane:install

服务器先决条件

FrankenPHP

FrankenPHP 是一个用 Go 编写的 PHP 应用程序服务器,支持现代 Web 功能,如早期提示、Brotli 和 Zstandard 压缩。当你安装 Octane 并选择 FrankenPHP 作为你的服务器时,Octane 将自动为你下载并安装 FrankenPHP 二进制文件。

通过 Laravel Sail 使用 FrankenPHP

如果你计划使用 Laravel Sail 开发你的应用程序,你应该运行以下命令来安装 Octane 和 FrankenPHP:

shell
./vendor/bin/sail up

./vendor/bin/sail composer require laravel/octane

接下来,你应该使用 octane:install Artisan 命令安装 FrankenPHP 二进制文件:

shell
./vendor/bin/sail artisan octane:install --server=frankenphp

最后,在应用程序的 docker-compose.yml 文件中的 laravel.test 服务定义中添加一个 SUPERVISOR_PHP_COMMAND 环境变量。此环境变量将包含 Sail 将用于使用 Octane 而不是 PHP 开发服务器为你的应用程序提供服务的命令:

yaml
services:
  laravel.test:
    environment:
      SUPERVISOR_PHP_COMMAND: "/usr/bin/php -d variables_order=EGPCS /var/www/html/artisan octane:start --server=frankenphp --host=0.0.0.0 --admin-port=2019 --port='${APP_PORT:-80}'" # [tl! add]
      XDG_CONFIG_HOME:  /var/www/html/config # [tl! add]
      XDG_DATA_HOME:  /var/www/html/data # [tl! add]

要启用 HTTPS、HTTP/2 和 HTTP/3,请应用这些修改:

yaml
services:
  laravel.test:
    ports:
        - '${APP_PORT:-80}:80'
        - '${VITE_PORT:-5173}:${VITE_PORT:-5173}'
        - '443:443' # [tl! add]
        - '443:443/udp' # [tl! add]
    environment:
      SUPERVISOR_PHP_COMMAND: "/usr/bin/php -d variables_order=EGPCS /var/www/html/artisan octane:start --host=localhost --port=443 --admin-port=2019 --https" # [tl! add]
      XDG_CONFIG_HOME:  /var/www/html/config # [tl! add]
      XDG_DATA_HOME:  /var/www/html/data # [tl! add]

通常,你应该通过 https://localhost 访问你的 FrankenPHP Sail 应用程序,因为使用 https://127.0.0.1 需要额外配置并且不鼓励