PHP 环境调优:修改上传限制、内存占用与错误日志
如果你用的是 WordPress 或其他 PHP 应用,上传大文件时提示“文件过大”,或者网站动不动就 502 白屏,大概率是 PHP 的默认配置没改。主机选这篇 Linux 教程直接告诉你,怎么调上传限制、内存占用和错误日志,操作完就能见效。

先找到 PHP 配置文件
用哪个 php.ini 文件?
很多新手在服务器上乱翻,以为只有一个 php.ini。其实不同环境位置不一样,比如:
查看当前 PHP 加载的配置文件路径
php -i | grep “Loaded Configuration File”
输出类似: /etc/php/8.1/cli/php.ini
如果是 Nginx + FPM,要改 /etc/php/8.1/fpm/php.ini
**别问为什么,FPM 和 CLI 的配置是分开的**。改了 CLI 的,网页端不生效。老手习惯直接改 FPM 的,因为大部分场景是网页报错。
修改前备份原文件
sudo cp /etc/php/8.1/fpm/php.ini /etc/php/8.1/fpm/php.ini.bak
备份一下,万一改崩了能还原
修改上传文件大小限制
找到 upload_max_filesize 和 post_max_size
默认一般只有 2M,传个主题包都费劲。用 vim 或 nano 打开 php.ini,搜索这两个参数:
ini
; 修改上传文件大小上限,单位可以是 M、K、G
upload_max_filesize = 64M
; POST 数据大小必须大于上传限制,建议设为 2 倍
post_max_size = 128M
**注意**:如果 post_max_size 小于 upload_max_filesize,上传照样失败。这是老手才知道的坑。
别忘了 max_execution_time
上传大文件时,PHP 执行时间不够也会中断。建议调大:
ini
max_execution_time = 300
; 单位是秒,300 秒够上传几百 MB 的文件了
调整 PHP 内存占用
修改 memory_limit
网站跑得慢、插件多,经常是因为内存不够。WordPress 场景下,128M 是最低底线:
ini
memory_limit = 256M
; 如果跑大型应用(如 Magento),建议 512M 或 1G
**万一报错了别慌**:如果你改了 memory_limit 后网站还是白屏,先检查是不是有插件内存泄漏。用 `top` 或者 `htop` 看 PHP-FPM 进程的内存占用,如果单个进程吃满 256M,说明代码有问题。
修改后重启 PHP-FPM
sudo systemctl restart php8.1-fpm
或者 php7.4-fpm,看你装的版本
开启并优化错误日志
打开 PHP 错误日志
默认错误日志是关的,网站出问题只给个白屏。实战中必须开:
ini
; 打开错误显示(开发环境用,生产环境建议关掉)
display_errors = Off
; 开启错误日志记录
log_errors = On
; 指定日志文件路径
error_log = /var/log/php_errors.log
**老鸟叮嘱**:生产环境一定把 `display_errors` 设为 Off,否则报错信息会暴露路径、数据库密码等敏感信息。想排查就去看日志。
设置日志级别
默认记录所有错误,日志会疯长。可以按需调整:
ini
; 只记录警告以上级别的错误
error_reporting = E_ALL & ~E_NOTICE & ~E_DEPRECATED
; 或者只记录致命错误
; error_reporting = E_ERROR | E_PARSE
查看错误日志
实时查看最新错误
tail -f /var/log/php_errors.log
搜索特定错误
grep “Fatal error” /var/log/php_errors.log
老鸟叮嘱
**改完 php.ini 一定要重启 PHP-FPM**,不然配置不生效。很多人改了参数后找半天问题,结果发现没重启。另外,如果你用的是宝塔、LNMP 一键包之类,它们有自己的配置覆盖机制,建议在面板里改,或者确认改的是哪个 php.ini。
FAQ
Q:PHP 上传文件大小改了,但 WordPress 还是提示“文件过大”怎么办?
先检查 WordPress 后台的媒体设置,最大上传限制是否和 PHP 一致。另外,Nginx 的 `client_max_body_size` 也要改,默认 1M,改成和 PHP 一致:
nginx
client_max_body_size 64M;
Q:修改 memory_limit 后网站变慢是为什么?
不是调大内存就一定快。如果 PHP 进程吃满内存,说明代码效率低,比如循环没优化、缓存没开。建议先开 OPcache,再检查插件。
Q:PHP 错误日志文件太大怎么处理?
用 logrotate 自动切割,或者定期清空。生产环境建议只记录错误级别以上的日志,减少写入量。
Q:Linux 小白可以直接用 root 账号操作吗?
不建议。用 `sudo` 执行修改命令,避免误操作导致系统崩溃。如果非要用 root,至少先备份 php.ini。
Q:修改 php.ini 后需要重启 Nginx 吗?
如果只改 PHP 相关配置,重启 PHP-FPM 就行。但如果你改了 Nginx 的 `client_max_body_size`,必须重启 Nginx:
sudo systemctl restart nginx
Q:BBR 开启后上传速度没有明显提升,和 PHP 配置有关吗?
BBR 加速的是 TCP 传输,和 PHP 上传限制无关。上传慢通常是 Nginx 或 PHP 的 `max_execution_time` 设太小,或者网络带宽瓶颈。先排查这些。
转载请注明出处:https://www.zhujixuan.com/jishujiaocheng/9455.html 商家投稿邮箱:zhujixuanblog@qq.com
