avatar

mdo

Hello

  • 首页
  • 知识库
  • 归档
  • 标签
  • 关于
主页 github Laravel Octane 项目
文章

github Laravel Octane 项目

发表于 25天前 更新于 25天前
作者 mdo
9~11 分钟 阅读

You said: github Laravel Octane 项目

AI Mode reply for github Laravel Octane 项目

Laravel Octane 是 Laravel 官方推出的高性能应用加速项目,托管在 GitHub 上。

核心特点

  • 常驻内存:应用程序只启动一次并保持在内存中,大幅减少请求响应时间。
  • 高性能服务器:支持 Swoole、RoadRunner 和 FrankenPHP 高性能应用服务器。
  • 显著提速:通过并发处理和高效的请求生命周期管理提升吞吐量。

快速使用步骤

  1. 安装:在项目目录下运行 composer require laravel/octane。
  2. 初始化:执行 php artisan octane:install 选择你偏好的服务器驱动(Swoole、RoadRunner 或 FrankenPHP)。
  3. 启动服务:运行 php artisan octane:start 启动高性能服务器。

相关资源

  • 阅读 CSDN 博客 了解开发者对 Laravel Octane 稳定性的初步评价。
  • 查看 LearnKu 获取关于 Laravel Octane 的发布讨论与使用体验。

如果你想了解更多,可以告诉我:

  • 你目前计划使用 Swoole、RoadRunner 还是 FrankenPHP?
  • 是否需要了解 Octane 开发注意事项(如内存泄漏、状态重置等)?

FrankenPHP 是什么

FrankenPHP 是一个基于 Go 语言编写的现代高性能 PHP 应用服务器。它由 Kévin Dunglas 创建,目前已获得 PHP 基金会(PHP Foundation)的官方支持,并托管在官方的 PHP GitHub 组织中。

传统的 PHP 部署通常需要结合 Nginx(或 Apache)与 PHP-FPM。而 FrankenPHP 将 PHP 官方执行器直接嵌入到了著名的 Caddy Web 服务器中。这意味着你不再需要 PHP-FPM,只需一个单文件二进制服务即可同时处理 Web 请求和执行 PHP 代码。

  • 常驻内存的“工作模式”(Worker Mode): 与 Laravel Octane 完美结合。它只需将你的应用在内存中启动一次,即可在几毫秒内响应后续请求,避免了每次请求都要重新加载代码的开销。
  • 开箱即用的高级网络支持: 原生支持 HTTP/2 和 HTTP/3、通过 Let's Encrypt 自动配置并续签 HTTPS 证书,以及支持现代压缩格式(Brotli、Zstandard)。
  • 103 Early Hints 提示: 它是目前唯一原生支持 103 Early Hints 的 PHP SAPI,允许浏览器在服务器仍在准备 HTML 的时候,提前加载 CSS、JS 等静态资源。
  • 云原生与单文件打包: 可以直接将整个 PHP 应用程序及其运行时打包成一个独立的、自执行的静态二进制文件,极易在 Docker 或 Kubernetes 中部署。

如果你想进一步了解,可以告诉我:

  • 你想知道如何在 Laravel Octane 中配置它吗?
  • 需要我提供一个简单的 Docker 部署示例吗?

如何在 Laravel Octane 中配置它

在 Laravel Octane 中配置和使用 FrankenPHP 非常简单。因为 Laravel 官方已经将其作为原生支持的驱动之一,你只需要几个简单的 Artisan 命令即可完成配置。

以下是完整的配置和启动步骤:

1. 安装 Laravel Octane

如果你的项目还没有安装 Octane,首先通过 Composer 安装:

composer require laravel/octane

2. 初始化配置并选择 FrankenPHP

运行 Octane 的安装命令。系统会提示你选择服务器驱动,请选择 frankenphp:

php artisan octane:install

此步骤会自动发生两件事:

  • 在项目根目录下生成 config/octane.php 配置文件。
  • 自动为你下载对应操作系统的 FrankenPHP 二进制文件(通常存放在项目根目录或指定路径下)。

3. 本地启动 FrankenPHP 服务

初始化完成后,你可以直接使用以下命令启动常驻内存的高性能服务器:

php artisan octane:start --server=frankenphp

启动后,你的应用默认会在 http://127.0.0.1:8000 运行。


💡 生产环境高级配置

当你准备在生产环境部署时,建议通过修改 config/octane.php 或环境变量(.env)来优化性能。

  • 调整 Worker 进程数量:
    Worker 的数量决定了能同时处理多少个并发请求。通常推荐设置为 CPU 核心数的 1 到 2 倍。在 .env 中设置:

    OCTANE_SERVER=frankenphp
    OCTANE_WORKERS=4  # 假设你是 2 或 4 核 CPU
    
  • 热重载(开发环境专用):
    在开发过程中,由于代码常驻内存,修改代码后不会立即生效。你可以加上 --watch 参数,当文件改变时自动重启 Worker:

    php artisan octane:start --server=frankenphp --watch
    

    (注意:此功能需要本地安装了 Node.js 和 chokidar 库)

  • 自动管理 HTTPS:
    FrankenPHP 内置了 Caddy,如果你想让它自动通过 Let's Encrypt 申请并配置 HTTPS 证书,只需在启动时传入域名:

    php artisan octane:start --server=frankenphp --url=https://your-domain.com
    

如果你想继续推进项目,可以告诉我:

  • 你打算通过 Docker 容器化 部署这个项目吗?
  • 你是否需要了解在常驻内存(Worker 模式)下,编写 Laravel 代码有哪些 单例(Singleton)和内存泄漏 的注意事项?
知识库
github 项目 Laravel
许可协议:  CC BY 4.0
分享

相关文章

10月 7, 2026

比尔盖茨的智慧:想多赚钱,就每天循环做这3件事

我们总有一种非常固执的错觉,认为那些站在财富金字塔顶端的人,必然拥有某种超越常人的特异功能。我们在脑海中给比尔盖茨这样的大佬描绘了一幅极其悲壮的奋斗画像。大家总觉得,他之所以能富可敌国,肯定是因为他每天只睡三个小时,同时对着八个电脑屏幕疯狂敲击键盘,每一秒钟都在做出价值几亿美金的生死抉择。 为了模仿

9月 28, 2026

程序员越想创业,越不要急着动手

一个能源方面的前辈找到我,希望通过我把一些人工的工作 AI 自动化。 能源方面我不懂,找 Gemini 聊完发现这个是可以复制的,非常兴奋。我跟老婆说,这个项目做好以后可以做成平台,推广到其他公司,你就等着做总裁夫人吧! 她听完以后跟我说,这个项目还是太定制化,和我之前做的一个项目很像。 那个项目一

9月 25, 2026

忍了一年多,我终于对i18n下手了过去一年,我主要参与国际机票业务的开发工作,因此每天都要和多语言(i18n)打交道

前言 大家好,我是奈德丽。 过去一年,我主要参与国际机票业务的开发工作,因此每天都要和多语言(i18n)打交道。熟悉我的朋友都知道,我这个人比较“惜力”(并不是,实际上只是忍不下去了),对于重复笨拙的工作非常抵触,于是,我开始思考如何优化团队的多语言管理模式。 痛点背景 先说说我们在机票项目中遇到的

下一篇

基于 Pi,我居然自己搞了一个好用的 AI Agent 桌面工作台先说结论:别重复造轮子 很多人一听"自己开发 Agen - 掘金

上一篇

创建一个独立的“沙盒”环境

最近更新

  • 比尔盖茨的智慧:想多赚钱,就每天循环做这3件事
  • iOS 侧载(Sideloading)工具
  • 程序员越想创业,越不要急着动手
  • 注册 Chat Participant
  • 中秋给在外游子的一封信

热门标签

API CodeGeex Coding Cursor DeepSeek Docker Gitkraken Harness Laravel Management

目录

©2026 mdo. 保留部分权利。