生产环境php应选7.4或8.0,禁用8.3;必装opcache、fileinfo、pdo_mysql、mbstring、openssl、curl及gd/imagick之一;安装后须手动绑定站点并检查错误日志与进程。

宝塔面板装PHP不是点一下“安装”就完事——版本选错、扩展漏勾、站点没绑定,三步里有两步能让你的网站直接500或白屏。
PHP版本怎么选才不踩坑
别信“最新版最稳”这种话。WordPress 6.5、Discuz X3.5、Typecho 1.4 这些主流程序在 PHP 8.2+ 下大概率报 Deprecated: Function get_magic_quotes_gpc() 或直接 Fatal error: Uncaught Error: Call to undefined function mysql_connect()。生产环境优先锁死 PHP 7.4 或 PHP 8.0;Laravel 10/11、ThinkPHP 6.3+ 才需要 PHP 8.1 起步。
- 宝塔软件商店里默认勾选的是最新版,你得手动取消,再单击目标版本(比如
PHP 7.4)进入安装页 - 多个站点混用不同PHP?必须确认已开启「PHP多版本共存」——否则切换全局版本会连带崩掉其他站
- 别碰
PHP 8.3(宝塔目前仅测试版支持),稳定场景下它还没过真实流量验证
哪些PHP扩展必须勾上
缺一个,composer install 可能卡住,Storage::put() 上传失败,或者 ThinkPHP 路由直接 404。宝塔安装时弹出的扩展列表看着多,但真正绕不开的就这几个:
-
opcache:不勾它,Laravel/ThinkPHP 首次加载慢一倍以上,且容易触发内存溢出 -
fileinfo:没它,mime_content_type()函数不存在,文件上传校验直接报错 -
pdo_mysql+mbstring+openssl+curl:WordPress、PhalApi、ModStart 全部强依赖 -
gd或imagick:如果项目要生成缩略图或水印,二者至少选一;但注意:imagick需服务器先装好 ImageMagick 库,否则宝塔安装时静默跳过且不报错
装完PHP网站还是打不开?查这三处
宝塔界面显示“运行中”,不代表你的站点真在用这个PHP。很多故障根本不在PHP本身,而在连接链路断在中间:
- 进【网站】→ 点击你的站点 → 【PHP版本】下拉框,确认选的是刚装的那个(比如
PHP 7.4),而不是“不使用”或旧版本 - 看
/www/wwwlogs/你的站点_error.log,比浏览器白屏有用得多:Primary script unknown是根目录设错,Permission denied是www用户没权限读index.php - 终端执行
ps aux | grep php-fpm,确认对应版本的 worker 进程在跑;如果只看到 master 没 worker,大概率是www.conf里listen.owner和宝塔用户不一致
升级PHP后原有扩展全没了,是Bug吗
不是Bug,是设计如此。宝塔每个PHP版本的扩展独立编译,PHP 7.4 装过的 redis 不会自动带到 PHP 8.0,这是为了避免 ABI 不兼容导致段错误。
- 切版本前,务必进老PHP的【设置】→【安装扩展】页,截图或记下所有已启用扩展名(比如
redis、zip) - 装好新PHP后,立刻进它的【设置】→【安装扩展】,手动重装一遍——漏一个,
phpinfo()里就看不到,Composer autoload 也可能失效 - 特别注意
fileinfo:它在部分低配机器上编译耗时长,宝塔有时会假死不动,别手快关掉窗口,等满5分钟再看状态
最常被忽略的一点:PHP版本和扩展装对了,不代表站点就能跑——网站设置里的“PHP版本”下拉框必须手动选中,且伪静态规则、运行目录(如ThinkPHP必须设为 /public)、runtime 目录权限,任何一个没对齐,都是500起步。
php免费学习视频:立即使用
踏上前端学习之旅,开启通往精通之路!从前端基础到项目实战,循序渐进,一步一个脚印,迈向巅峰!











