先确认PHP服务是否运行,若未启动则点击“启动”;如启动失败,需排查端口冲突、内存不足、配置错误或依赖缺失,并手动勾选fileinfo等必要扩展后重启服务。

宝塔面板安装后PHP没启动?先确认服务状态
安装完宝塔面板,不代表PHP就自动可用。很多用户点开「软件商店」装完PHP,却在网站设置里选不到版本,或新建站点后502错误——根本原因是PHP服务压根没运行。
进宝塔面板 → 左侧「软件管理」→ 找到你装的PHP版本(比如PHP-8.0)→ 看右上角状态是否为「运行中」。不是就点「启动」;如果点了没反应,大概率是端口冲突或内存不足(128MB以下小鸡常出这问题)。
- CentOS系统装完PHP后,有时需手动执行
systemctl start php-fpm-80补救 - Ubuntu/Debian下PHP服务名可能是
php8.0-fpm,用systemctl status php8.0-fpm查真实状态 - 装完不重启PHP服务,扩展不会生效,
phpinfo()里也看不到新装的redis或fileinfo
PHP扩展装了但项目报错:fileinfo、pdo_mysql这些必须手动勾选
宝塔「软件商店」里点PHP安装,只是装了个空壳。ThinkPHP6、Laravel、WordPress这些框架一跑就报Class 'PDO' not found或Call to undefined function mime_content_type(),90%是因为关键扩展没装。
正确路径是:装完PHP → 进「软件管理」→ 找到对应PHP版本 → 点「设置」→ 切到「安装扩展」页 → 手动勾选:fileinfo、pdo_mysql、mbstring、openssl、curl、zip。Redis和gd按需加。
立即学习“PHP免费学习笔记(深入)”;
-
fileinfo是TP6/Laravel文件上传、图片检测的底层依赖,不装直接白屏 -
pdo_mysql不是默认启用的,哪怕MySQL服务开着,PHP连不上库 - 装完必须点「重启」PHP服务,否则扩展加载失败,
php -m | grep fileinfo也查不到
PHP版本选错导致TP6或Laravel直接崩溃
PHP 8.3+在宝塔里能点安装,但TP6官方明确不兼容;Laravel 10+虽支持8.2,但部分第三方包(如laravel-admin)在8.3下会触发Array and string offset access syntax with curly braces is deprecated这类致命警告。
稳妥组合只有三个:
- TP6项目 → 严格用
PHP-8.0(别碰8.1及以上) - Laravel 9/10 → 可用
PHP-8.1或PHP-8.2,但上线前务必本地复现部署环境跑一遍php artisan optimize:clear - 老WordPress或Discuz →
PHP-7.4最稳,8.0开始部分插件函数被废弃
装错版本别硬扛,直接在「软件管理」里卸载重装——宝塔不支持跨版本升级PHP,强行改配置只会让php-fpm进程起不来。
网站绑定PHP后还是502:检查运行目录和防跨站设置
PHP服务在跑、扩展全勾了、版本也对,但访问域名还是502 Bad Gateway。这时候问题往往不在PHP本身,而在网站配置层。
进宝塔「网站」→ 点你的站点 → 「设置」→ 「网站目录」:确认「运行目录」是否填对。ThinkPHP6默认入口是/public,Laravel是/public,WordPress是/。填错就找不到index.php。
- 「防跨站攻击」默认开启,但TP6/Laravel的
runtime目录需要写权限,开了就报错,必须关掉 - 伪静态规则要匹配框架:TP6用
thinkphp规则,Laravel用Laravel5,WordPress用wordpress,别混用 - 上传代码后记得把
.env文件权限设为644,runtime目录设为755,否则PHP进程写不了日志
最隐蔽的坑是:宝塔创建站点时默认勾选「SSL」,但没配证书就强制跳https,浏览器卡在连接中——临时解决办法是进「SSL」页点「关闭HTTPS」。



















