在 Ubuntu 上配置 PHP,常见坑不少,下面按实战经验给你总结一下注意事项 + 推荐做法,适用于 Ubuntu 20.04 / 22.04 / 24.04。
不同用途,配置方式差别很大:
| 使用场景 | 推荐 |
|---|---|
| 网站(Apache) | libapache2-mod-php |
| 网站(Nginx) | PHP-FPM |
| 命令行脚本 | CLI 即可 |
| Laravel / WordPress | PHP-FPM |
Ubuntu 默认仓库 PHP 版本通常偏旧。
apt-cache search php | grep "^php[0-9]"
sudo apt update
sudo apt install software-properties-common
sudo add-apt-repository ppa:ondrej/php
sudo apt update
然后安装指定版本:
sudo apt install php8.2 php8.2-fpm php8.2-cli
✅ 建议:
sudo apt install php libapache2-mod-php
php -v
apache2ctl -v
sudo systemctl restart apache2
⚠️ 常见错误:
libapache2-mod-phpsudo apt install php8.2-fpm
示例:
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/run/php/php8.2-fpm.sock;
}
sudo systemctl restart nginx
sudo systemctl restart php8.2-fpm
⚠️ 常见错误:
fastcgi_pass 路径写错不要一股脑全装。
sudo apt install php8.2-mysql php8.2-curl php8.2-gd php8.2-mbstring php8.2-xml php8.2-zip
php -m
✅ Laravel 必装:
php -i | grep "Loaded Configuration File"
常见路径:
/etc/php/8.2/cli/php.ini/etc/php/8.2/fpm/php.ini⚠️ 改错 ini 文件 = 不生效
upload_max_filesize = 64M
post_max_size = 64M
memory_limit = 256M
max_execution_time = 120
date.timezone = Asia/Shanghai
改完后:
sudo systemctl restart php8.2-fpm
sudo chown -R www-data:www-data /var/www/html
sudo chmod -R 755 /var/www/html
sudo chown -R www-data:www-data storage
sudo update-alternatives --config php
Nginx 可以:
✅ phpinfo() 是否显示
✅ 错误日志:
/var/log/apache2/error.log
/var/log/nginx/error.log
/var/log/php8.2-fpm.log
✅ 端口 / sock 是否存在
✅ 防火墙是否放行
Ubuntu 配 PHP,核心就是:版本选对、FPM 配对、权限给对、ini 改对。
如果你愿意,可以告诉我:
我可以直接给你一套完整可复制的配置命令。