关键前提是php≥8.0、swoole≥5.0且启用协程、cli下opcache.enable_cli=0;需在宝塔中安装php8.1/8.2并手动添加pcntl与swoole扩展,修改php.ini关闭cli opcache,最后用supervisor守护进程。

在宝塔面板中让 PHP 8 运行 Hyperf,关键不是“装上 PHP 8 就能跑”,而是要满足 Hyperf 的三个硬性前提:PHP ≥ 8.0、Swoole ≥ 5.0 且启用协程、CLI 模式下 opcache.enable_cli = 0。漏掉任一环节,php bin/hyperf.php start 会静默退出或报错。
确认并安装匹配的 PHP 8 版本
宝塔 8.0.3 支持 PHP 8.0~8.3,但 Hyperf 3.x 官方推荐 PHP 8.1 或 8.2(避开 8.3 的部分兼容问题)。操作路径:
- 进入【软件商店】→ 搜索 “PHP” → 选择 PHP 8.1.32 或 PHP 8.2.24(优先选小版本号靠后的,修复更全)→ 点击【安装】
- 安装时务必勾选:fileinfo、openssl、mbstring、pdo_mysql、redis、sockets
- 特别注意:pcntl 扩展必须手动添加(Hyperf 启动、热重载依赖它)。点击该 PHP 版本右侧【设置】→【安装扩展】→【添加自定义模块】,填入:
- 模块名称:
php_pcntl - 模块参数:
--enable-pcntl - 前置脚本:用知识库中提供的 bash 脚本(自动下载源码、提取 pcntl)
- 模块名称:
- 安装完成后,点击【重启】PHP 服务——这步不能跳过,否则扩展不生效
安装并验证 Swoole 扩展
Hyperf 是基于 Swoole 协程的框架,不能只装 PHP,Swoole 必须正确加载且开启协程:
- 在同一个 PHP 版本的【设置】→【安装扩展】中,勾选 swoole 并安装
- 安装后,进入【配置文件】选项卡,在 php.ini 末尾添加两行(路径和开关都必须显式写死):
extension=/www/server/php/81/lib/php/extensions/no-debug-non-zts-20210902/swoole.so swoole.use_shortname = Off
(注意:路径中的81和20210902需按你实际安装的 PHP 版本和 Zend 扩展号替换;可用php -i | grep "extension_dir"查看真实路径) - 保存后,执行
php --ri swoole验证:- 必须看到
coroutine => enabled -
Version显示 ≥ 5.0(如 5.1.1) - 没有
shortname相关警告
- 必须看到
关闭 CLI 模式下的 OPcache
这是 Hyperf 启动失败最常被忽略的原因。即使网页端 PHPinfo 显示 opcache 已开,CLI 下也必须关:
- 打开同一 PHP 版本的 php.ini(路径如
/www/server/php/81/etc/php.ini) - 搜索
opcache.enable_cli,将其值改为:opcache.enable_cli = 0 - 如果该行被注释,取消注释;如果没有,就手动添加在文件末尾
- 保存后,**重启该 PHP 版本的服务**(不是重启面板)
- 验证:运行
php -i | grep "opcache.enable_cli",输出应为opcache.enable_cli => Off => Off
部署与启动 Hyperf 项目
环境配好后,上传项目只是最后一步:
- 用宝塔【文件】管理器上传压缩包,在线解压到网站根目录(如
/www/wwwroot/myapp) - 确保项目目录权限正确:
sudo chown -R www:www /www/wwwroot/myapp(www 是宝塔默认 Web 用户) - 进入项目目录,执行:
php bin/hyperf.php di:generate(生成依赖注入代理类) - 首次启动前,先试运行:
php bin/hyperf.php start,观察终端是否有 “Server started” 提示 - 生产环境必须用进程管理器守护,推荐 Supervisor:新建配置,
command设为php /www/wwwroot/myapp/bin/hyperf.php start,user设为www
php免费学习视频:立即使用
踏上前端学习之旅,开启通往精通之路!从前端基础到项目实战,循序渐进,一步一个脚印,迈向巅峰!











