线上PHP部署应选云服务器而非虚拟主机,因其支持快速定位、回滚与扩容;2核4G为甜点配置,需确保可执行重启PHP、查慢查询、安全配置.env及自动续签HTTPS等操作。

PHP 线上部署不选“最便宜”的,而要选“出问题时你能快速定位、回滚、扩容”的——虚拟主机适合静态展示站或纯新手练手;真要跑业务(哪怕只是个带用户注册的博客),云服务器是底线。
虚拟主机跑 PHP 的典型崩坏场景
很多开发者一开始图省事选虚拟主机,结果上线后才发现:数据库连接数被限制在 5 个,高峰期直接 mysqli_connect(): (HY000/1040): Too many connections;修改 php.ini 权限为只读,连 upload_max_filesize 都调不了;日志全关,500 Error 只显示“Internal Server Error”,连哪行报错都不知道。
- 共享环境无法安装扩展(比如
redis.so、swoole.so) - PHP 版本长期卡在 7.2 或 8.0,不支持
match表达式或str_contains() - 无 SSH 访问,没法用
composer install --no-dev或清opcache - 备份靠面板点“一键备份”,恢复时发现只存了最近 1 天数据
云服务器最低可行配置怎么选(PHP + MySQL + Nginx)
不是越贵越好,而是资源得“可感知、可干预”。2 核 4G 是当前 PHP 应用的甜点区间:够跑 Laravel + MySQL + Redis,也留出监控和日志空间。关键不在 CPU 和内存数字,而在你能否执行这些操作:
-
systemctl restart php8.2-fpm—— 要能自己重启 PHP 进程 -
mysql -u root -p -e "SHOW PROCESSLIST;"—— 出问题时查慢查询 - 把
.env放在/var/www/.env,权限设为600,不随代码 Git 提交 - 用
certbot --nginx -d example.com自动续签 HTTPS 证书
别碰“免备案”的小厂云——它们常把安全组默认全开,3306 端口裸露,扫一下就中招。
立即学习“PHP免费学习笔记(深入)”;
部署时最容易被忽略的三件事
很多人花 2 小时配好环境,上线后第二天就挂,问题往往不出在代码,而在这三点:
-
opcache.enable=1开了,但opcache.revalidate_freq=0没设,导致改完代码不生效,以为缓存没清 - MySQL 的
max_allowed_packet仍为默认 4M,上传大附件时mysqli::query(): MySQL server has gone away - 没禁用
display_errors = Off,生产环境直接把vendor/路径、数据库密码(如果误写进错误页)打在页面上
特别是最后一条:哪怕你用的是腾讯云 CVM,只要 php.ini 里还写着 display_errors = On,就等于把后门钥匙贴在门口。











