PHP应通过系统包管理器安装以避免依赖缺失和权限问题:Ubuntu用apt、CentOS/RHEL用dnf或yum,并需安装php-fpm以支持Nginx;验证需执行php -v和php -m确认版本与扩展,注意多版本共存时Web服务器调用路径及配置生效需重启服务。
PHP 不需要“下载安装包再手动解压”这种桌面软件式操作,Linux 服务器上应通过系统包管理器安装 —— 否则容易缺失依赖、权限混乱、后续升级困难。
apt(Ubuntu/Debian)或 yum/dnf(CentOS/RHEL)装 PHP直接运行对应命令即可,系统会自动解决依赖并配置基础环境:
sudo apt update && sudo apt install php-cli php-fpm php-mysql php-curl php-gd php-mbstring php-xml php-zip
sudo dnf install php php-fpm php-mysqlnd php-curl php-gd php-mbstring php-xml php-zip
sudo yum install epel-release && sudo yum install php php-fpm php-mysql php-curl php-gd php-mbstring php-xml php-zip
注意:php-fpm 是 Web 服务常用模式,php-cli 用于命令行脚本;不装 php-fpm 就无法配合 Nginx 使用。
别只信“安装完成”,要实测:
php -v 看输出是否含版本号(如 PHP 8.1.2),不是报错 command not found
php -m | grep mysql 确认扩展已加载(比如你要连 MySQL)很多问题不是 PHP 没装,而是环境没对齐:
php -v 显示版本,但 Web 页面里 phpinfo() 显示的是旧版本?→ 检查 Web 服务器(Nginx/Apache)调用的 php-fpm 实际路径,可能系统有多个 PHP 并存/var/log/php-fpm/www-error.log 或 /var/log/apache2/error.log,90% 是扩展没开、文件权限不对、或 open_basedir 限制了路径scp 或 rsync 传完代码,浏览器访问却提示 File not found.?→ 不是 PHP 问题,是 Web 根目录配置错了,或 index.php 没被设为默认首页(Nginx 要配 index index.php)真正麻烦的从来不是“怎么装 PHP”,而是确认它和 Web 服务、数据库、项目依赖三者能咬合上。每次改完配置,记得 sudo systemctl restart php-fpm 和 sudo s,别只 reload。
ystemctl restart nginx