在 Ubuntu 上安装 PHP,其实整体流程并不复杂,但很多新手在 PHP 版本选择、扩展组件安装以及与 Web 服务器对接时,常常会遇到问题。下面把 Ubuntu 安装 PHP 的完整步骤系统梳理一遍,从环境准备、版本确认,到配置测试和常见故障排查,帮助你一步一步顺利完成部署。

一、环境准备与版本选择
正式开始之前,建议先更新一下 Ubuntu 系统软件源——当然,如果你当前系统环境已经稳定,也可以视情况跳过升级。终端执行:sudo apt update && sudo apt upgrade -y。接着可以查看仓库中可安装的 PHP 版本:apt search php | grep ^php。通常输出里会看到 PHP 8.1、PHP 8.2、PHP 8.3 等版本,根据你的项目需求选择即可。
这里需要特别注意:不同 Ubuntu 版本默认仓库提供的 PHP 版本并不完全一致。如果你必须安装某个指定版本的 PHP(例如 PHP 8.3),可以考虑添加 ondrej/php PPA 源。不过如果是生产服务器环境,是否使用第三方源仍需综合评估其稳定性与安全性。
二、安装 PHP 与常用扩展
下面以 PHP 8.1 为例说明 Ubuntu 安装 PHP 的方式(如果你要装 PHP 8.2 或 PHP 8.3,命令思路完全一致),同时安装 CLI 和常见扩展:
sudo apt install php php-cli php-fpm php-mysql php-curl php-gd php-mbstring php-xml php-zip php-bcmath php-json
安装完成后,可以通过 php -v 查看 PHP 版本信息,再用 php -m 检查已加载的模块。这里的 php-fpm 主要用于和 Nginx 或 Apache 的 FPM 模式配合处理 PHP 请求。至于扩展模块,则可以根据实际项目灵活增减,比如 php-imagick、php-redis、php-intl 等,都可以在后续按需安装。
三、与 Web 服务器集成
Ubuntu 配置 PHP 运行环境时,主流方案一般分为两种,具体取决于你使用的是 Apache 还是 Nginx。
与 Apache 集成(模块方式)
如果你使用 Apache,直接安装对应模块即可:sudo apt install apache2 libapache2-mod-php。然后重启 Apache:sudo systemctl restart apache2。完成后,Apache 通常就可以直接解析 .php 文件,无需额外配置 FastCGI,适合希望快速部署 PHP 环境的用户。
与 Nginx 集成(PHP-FPM 方式)
如果你使用 Nginx,通常推荐搭配 PHP-FPM。先安装 Nginx 和 PHP-FPM:sudo apt install nginx php-fpm。然后修改 Nginx 默认站点配置(路径 /etc/nginx/sites-a vailable/default),核心配置内容大致如下:
server {
listen 80 default_server;
root /var/www/html;
index index.php index.html;
location / {
try_files $uri $uri/ =404;
}
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/run/php/php8.1-fpm.sock;
# 版本号与安装的 PHP 一致
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
配置完成后,启动 PHP-FPM 并设置开机自启:sudo systemctl start php8.1-fpm && sudo systemctl enable php8.1-fpm,接着重启 Nginx:sudo systemctl restart nginx。特别要注意,上面 php8.1-fpm.sock 中的版本号必须与实际安装的 PHP 版本保持一致,否则 Nginx 将无法连接到 PHP-FPM。
四、测试与常用管理命令
完成 Ubuntu PHP 安装和 Web 服务器配置后,建议先在网站根目录创建一个测试文件,确认 PHP 是否能够正常运行:
echo "" | sudo tee /var/www/html/info.php
然后在浏览器中访问 https://你的服务器IP/info.php,如果能看到 PHP 信息页面,就说明 PHP 安装、扩展加载以及 Web 服务器集成都已经成功。日常运维时,常用命令包括:重启 Apache 用 sudo systemctl restart apache2,重启 Nginx 用 sudo systemctl restart nginx,重启 PHP-FPM 用 sudo systemctl restart php8.1-fpm,查看 PHP-FPM 状态可执行 sudo systemctl status php8.1-fpm。如果你想确认 PHP 配置文件的位置,可以使用 php --ini。最后还要提醒一点:测试完成后务必删除 info.php,避免服务器环境信息泄露,影响安全。
五、常见问题与排错
访问 .php 文件被下载而不是解析(多见于 Nginx)
这种情况通常说明 PHP 解析配置存在问题。重点检查 location ~ \.php$ 配置段是否正确,尤其是 fastcgi_pass 后面的套接字路径,必须和当前安装的 PHP 版本一致,路径写错哪怕一个字符都可能导致解析失败。
PHP-FPM 无法启动或 502 错误
建议先查看日志:sudo journalctl -u php8.1-fpm。同时确认 /run/php/php8.1-fpm.sock 文件确实存在,并且权限设置正确。有些情况下,重新启动 PHP-FPM 和 Nginx 服务就可以恢复正常。
扩展未生效
先确认对应扩展包已经成功安装,例如 php-mysql、php-gd 等。如果你修改过 php.ini 或 PHP-FPM 池配置文件,记得重启相关服务,否则新配置不会立即生效。
多版本并存与切换
在同一台 Ubuntu 服务器上同时安装多个 PHP 版本是完全可行的。你可以通过 update-alternatives 切换默认的 php 命令版本,也可以为不同网站分别指定不同的 PHP-FPM 套接字。这样的配置方式非常灵活,但实际操作时一定要确认版本对应关系,避免混用造成环境错乱。
