发布于2026-07-03 阅读(0)
扫一扫,手机访问
在 Ubuntu 上装 PHP,说简单也简单,但新手往往会在版本选择、扩展安装、和 Web 服务器集成这几个环节上卡壳。下面就把整个流程拆开来捋一遍,从环境准备到常见坑的排查,一步步说清楚。

动手之前,先把系统源更新一下——当然,如果你对系统版本很满意,也可以跳过升级这一步。终端执行:sudo apt update && sudo apt upgrade -y。然后看看仓库里都有哪些 PHP 版本可用:apt search php | grep ^php。输出结果中会列出 8.1、8.2、8.3 等版本,选你需要的就行。
有一点要提醒:不同 Ubuntu 版本自带的仓库提供的 PHP 版本差别不小。如果你非要某个特定版本(比如 8.3),可以考虑添加 ondrej/php PPA 源——生产环境的话,得自己掂量一下这个源的稳定性和安全性。
以 PHP 8.1 为例(换成 8.2 或 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 -m 确认模块都加载了。这里面的 php-fpm 是专门用来和 Nginx 或 Apache(FPM 模式)配合处理 PHP 请求的。至于扩展,完全可以根据项目按需增减——比如 php-imagick、php-redis、php-intl 这些,后面随时补装都可以。
两种主流方案,看你用的是 Apache 还是 Nginx。
与 Apache 集成(模块方式)
装一个模块就搞定:sudo apt install apache2 libapache2-mod-php。然后重启 Apache:sudo systemctl restart apache2。装好之后 Apache 自动就能解析 .php 文件,不用额外折腾 FastCGI 配置,算是省心做法。
与 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 里的版本号换成你实际安装的版本,不然连不上。
在网站根目录下创建一个测试文件,验证一切是否正常:
echo "" | sudo tee /var/www/html/info.php
浏览器访问 http://你的服务器IP/info.php,看到 PHP 信息页面就说明安装和集成都成功了。日常管理中,重启服务的命令分别是 sudo systemctl restart apache2 或 sudo systemctl restart nginx,重启 PHP-FPM 用 sudo systemctl restart php8.1-fpm,查看状态用 sudo systemctl status php8.1-fpm。想知道 PHP 的配置文件在哪,可以敲 php --ini。最后,一个安全提醒:测试完务必删除 info.php,否则服务器环境信息就全暴露了。
访问 .php 文件被下载而不是解析(多见于 Nginx)
检查 location ~ \.php$ 配置段是否写对了,尤其是 fastcgi_pass 后面的套接字路径是否与安装的 PHP 版本一致,少一个斜杠都不行。
PHP-FPM 无法启动或 502 错误
先看日志:sudo journalctl -u php8.1-fpm。确认 /run/php/php8.1-fpm.sock 存在且权限正确。有时候重启一下 FPM 和 Nginx 就能解决问题。
扩展未生效
确认扩展包已经安装(比如 php-mysql、php-gd)。如果改了 php.ini 或 FPM 池配置,记得重启对应的服务才能生效。
多版本并存与切换
完全可以在同一台机器上装多个 PHP 版本。用 update-alternatives 切换默认的 php 命令版本,同时为不同站点配置不同的 PHP-FPM 套接字——灵活性很高,但也别搞混了。
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
正版软件
正版软件
正版软件
正版软件
正版软件
1
2
3
7
8