温馨提示×

Ubuntu配置PHP要注意啥

小樊
45
2026-07-13 21:24:34
栏目: 编程语言

在 Ubuntu 上配置 PHP,常见坑不少,下面按实战经验给你总结一下注意事项 + 推荐做法,适用于 Ubuntu 20.04 / 22.04 / 24.04。


一、先搞清楚你要用 PHP 干什么

不同用途,配置方式差别很大:

使用场景 推荐
网站(Apache) libapache2-mod-php
网站(Nginx) PHP-FPM
命令行脚本 CLI 即可
Laravel / WordPress PHP-FPM

二、PHP 版本选择(非常重要)

Ubuntu 默认仓库 PHP 版本通常偏旧。

查看系统支持版本

apt-cache search php | grep "^php[0-9]"

推荐方式:使用 Ondřej Sury PPA(最常用)

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

建议

  • 新项目:PHP 8.1 / 8.2 / 8.3
  • 老项目:PHP 7.4(仍可用)

三、Apache 场景注意事项

1️⃣ 正确安装模块

sudo apt install php libapache2-mod-php

2️⃣ Apache 与 PHP 版本要一致

php -v
apache2ctl -v

3️⃣ 重启 Apache

sudo systemctl restart apache2

⚠️ 常见错误:

  • 装了 PHP 但没装 libapache2-mod-php
  • Apache 没重启,PHP 不生效

四、Nginx 场景(强烈推荐 PHP-FPM)

1️⃣ 安装 PHP-FPM

sudo apt install php8.2-fpm

2️⃣ Nginx 必须配置 fastcgi

示例:

location ~ \.php$ {
    include snippets/fastcgi-php.conf;
    fastcgi_pass unix:/run/php/php8.2-fpm.sock;
}

3️⃣ 重启服务

sudo systemctl restart nginx
sudo systemctl restart php8.2-fpm

⚠️ 常见错误:

  • fastcgi_pass 路径写错
  • sock 文件不存在
  • 权限问题(www-data)

五、PHP 扩展一定要按需装

不要一股脑全装。

常用扩展

sudo apt install php8.2-mysql php8.2-curl php8.2-gd php8.2-mbstring php8.2-xml php8.2-zip

查看已安装扩展

php -m

✅ Laravel 必装:

  • mbstring
  • xml
  • curl
  • zip
  • bcmath

六、PHP 配置文件路径(别改错)

php -i | grep "Loaded Configuration File"

常见路径:

  • CLI:/etc/php/8.2/cli/php.ini
  • FPM:/etc/php/8.2/fpm/php.ini

⚠️ 改错 ini 文件 = 不生效


七、php.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

八、权限问题(90% 的坑在这里)

网站目录权限

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

九、多 PHP 版本共存(高级但常用)

sudo update-alternatives --config php

Nginx 可以:

  • A 站 PHP 8.1
  • B 站 PHP 7.4

十、排错 checklist(必看)

phpinfo() 是否显示
✅ 错误日志:

/var/log/apache2/error.log
/var/log/nginx/error.log
/var/log/php8.2-fpm.log

✅ 端口 / sock 是否存在
✅ 防火墙是否放行


总结一句话

Ubuntu 配 PHP,核心就是:版本选对、FPM 配对、权限给对、ini 改对。

如果你愿意,可以告诉我:

  • ✅ Ubuntu 版本
  • ✅ Apache 还是 Nginx
  • ✅ 用 PHP 干什么(Laravel / WordPress / 接口)

我可以直接给你一套完整可复制的配置命令

0