参考资料

  1. Supervisor 是 Fresns 在生产环境中运行队列的标准方案
  2. Fresns 核心安装要求汇总
  3. 配置 Fresns 的队列进程,核心是使用 Supervisor 守护
  4. Fresns 配合 Octane 和 FrankenPHP,是目前社区公认提升访问速度最核心的手段
  5. Fresns 的队列进程启动命令,核心就是 php artisan queue:work
  6. Fresns 伪静态设置
  7. Fresns 配合 Octane 和 Swoole,同样能让应用常驻内存,性能提升十倍以上
  8. Fresns 的 .env 文件是安装成功后才会在根目录自动生成

Fresns 配合 Octane 和 FrankenPHP,是目前社区公认提升访问速度最核心的手段

Fresns 配合 Octane 和 FrankenPHP,是目前社区公认提升访问速度最核心的手段,性能提升可达十倍以上。它的原理是让 PHP 应用常驻内存,避免每个请求都重新加载框架,而 FrankenPHP 则是一个用 Go 编写的现代 PHP 应用服务器,原生支持 HTTP/2、HTTP/3 和自动 HTTPS,无需额外配置 Nginx 反代就能直接对外提供服务。

📦 安装与激活

以下操作需要在 Fresns 根目录的终端中执行。

1. 安装 Octane 包

composer require laravel/octane

2. 安装 FrankenPHP 服务

php artisan octane:install --server=frankenphp

执行后,Octane 会自动下载对应平台的 FrankenPHP 二进制文件,并生成 Caddyfile 和新的入口文件。

3. 启动服务

php artisan octane:start

默认监听 127.0.0.1:8000。

⚙️ 启动参数说明

octane:start 命令支持以下参数:

参数说明默认值
--host绑定的 IP 地址127.0.0.1
--port服务端口8000
--admin-port管理端口2019
--workersWorker 进程数量auto
--max-requests重启前处理的最大请求数500
--https启用 HTTPS 并自动生成证书关闭
--watch文件修改后自动重载(开发用)关闭

🔗 Nginx 反向代理配置

启用 Octane 后,需要修改 Nginx 的 URL 重写规则,将请求反向代理至 Octane 服务:

location /index.php {
    try_files /not_exists @octane;
}

location / {
    try_files $uri $uri/ @octane;
}

location @octane {
    set $suffix "";
    if ($uri = /index.php) {
        set $suffix ?$query_string;
    }

    proxy_http_version 1.1;
    proxy_set_header Host $http_host;
    proxy_set_header Scheme $scheme;
    proxy_set_header SERVER_PORT $server_port;
    proxy_set_header REMOTE_ADDR $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection $connection_upgrade;

    proxy_pass http://127.0.0.1:8000$suffix;
}

🔄 进程守护(必须)

Octane 必须加入进程守护(如 Supervisor),否则终端关闭后服务就会中断。宝塔面板中可参考以下配置:

  • 启动用户:www

  • 运行目录:Fresns 主程序根目录

  • 启动命令:php artisan octane:start --server=frankenphp --host=127.0.0.1 --port=8000

💡 注意事项

HTTPS 链接修正:如果站点启用了 HTTPS,需要在 .env 中添加 OCTANE_HTTPS=true,否则 Octane 生成的链接会以 http:// 开头。

文件监控(开发环境):Octane 启动后代码会常驻内存,修改文件后需重启服务。开发时可使用 --watch 参数自动重载,但需要先安装 Node 的监控库:

npm install --save-dev chokidar
php artisan octane:start --watch

插件兼容性:部分插件(如 SMTP 邮件插件)在 Octane 环境下可能遇到 TLS/SSL 问题,如果遇到邮件发送异常,可留意官方后续的兼容性修复。

资源监控:Octane 对服务器资源有一定要求,特别是 Worker 数量不宜设置过多。如果服务器配置较低(如 2核4G),建议监控 CPU 负载,避免资源耗尽。

作者:王壹杰
时间:2026-10-01 16:49:38
来源:https://fresns.ciilii.com/