在 Ubuntu 上配置 PHP(通常是搭配 Nginx 或 Apache)时,有几个常见但容易踩坑的点。下面按“安装 → 配置 → 优化 → 排错”给你梳理一下。
Ubuntu 自带版本可能较旧:
php -v
建议用 ppa:ondrej/php(社区维护,版本新):
sudo add-apt-repository ppa:ondrej/php
sudo apt update
sudo apt install php8.2 php8.2-fpm
⚠️ 注意:
systemctl status php8.2-fpm
Nginx 配置里要对应:
fastcgi_pass unix:/run/php/php8.2-fpm.sock;
❌ 常见错误:
文件:/etc/php/8.2/fpm/pool.d/www.conf
关键参数:
pm = dynamic
pm.max_children = 50
pm.start_servers = 10
pm.min_spare_servers = 5
pm.max_spare_servers = 20
⚠️ 内存估算:
max_children × 单进程内存 ≈ 总内存
路径:
/etc/php/8.2/fpm/php.ini
upload_max_filesize = 64M
post_max_size = 64M
max_execution_time = 300
memory_limit = 256M
改完必须重启:
sudo systemctl restart php8.2-fpm
date.timezone = Asia/Shanghai
否则日志和时间会错乱。
disable_functions = exec,passthru,shell_exec,system
⚠️ 某些框架(如 composer)可能需要这些函数
expose_php = Off
index.phptry_files 配置错误(容易 404 / 下载 php 文件)示例:
location / {
try_files $uri $uri/ /index.php?$query_string;
}
如果用 Apache:
sudo apt install libapache2-mod-php8.2
sudo a2enmod php8.2
tail -f /var/log/php8.2-fpm.log
tail -f /var/log/nginx/error.log
<?php phpinfo(); ?>
Ubuntu 配 PHP,核心就是 PHP-FPM + 正确 sock + php.ini + Web 服务匹配,别让 PHP 文件被下载,也别让 FPM 没起来。
如果你用的是 Ubuntu 版本 + Nginx/Apache + PHP 版本,我可以给你一套直接能用的配置模板。