在Linux服务器上安装PHP是搭建Web应用环境的重要步骤,不同Linux发行版的安装命令和配置细节略有差异,但核心流程一致,以下以Ubuntu/Debian和CentOS/RHEL两大主流系统为例,详细说明PHP的安装过程、配置优化及常见问题处理。

安装前准备
-
更新系统包列表
确保服务器软件包为最新版本,避免依赖冲突:- Ubuntu/Debian:
sudo apt update && sudo apt upgrade -y - CentOS/RHEL:
sudo yum update -y(CentOS 8+使用dnf)
- Ubuntu/Debian:
-
安装必要依赖
PHP运行需要基础编译工具和库支持,执行以下命令安装:# Ubuntu/Debian sudo apt install -y apache2 nginx libapache2-mod-php php-fpm php-mysql php-curl php-gd php-mbstring php-xml php-zip # CentOS/RHEL sudo yum install -y httpd nginx php php-fpm php-mysqlnd php-curl php-gd php-mbstring php-xml php-zip
依赖包说明:
libapache2-mod-php:Apache的PHP模块(Apache专用)php-fpm:PHP-FPM(FastCGI进程管理器,Nginx推荐使用)php-mysqlnd:MySQL数据库驱动- 其他扩展为常用Web功能库(如图像处理、XML解析等)
-
选择Web服务器
根据需求安装Apache或Nginx:
(图片来源网络,侵删)- Apache:
sudo apt install apache2(Ubuntu)或sudo yum install httpd(CentOS) - Nginx:
sudo apt install nginx(Ubuntu)或sudo yum install nginx(CentOS)
注意:若同时安装两者,需配置端口避免冲突(默认Apache为80,Nginx为8080)。
- Apache:
安装PHP
(一)Ubuntu/Debian系统
-
添加PHP仓库
官方仓库版本可能较旧,建议添加Ondřej Surý的PPA仓库获取最新稳定版:sudo apt install -y software-properties-common sudo add-apt-repository ppa:ondrej/php -y sudo apt update
-
安装指定版本PHP
通过apt search php查看可用版本(如PHP 8.1、8.2等),执行安装:sudo apt install -y php8.1 php8.1-fpm php8.1-mysql php8.1-curl
安装后验证版本:
php -v或php8.1 -v。
(二)CentOS/RHEL系统
-
安装EPEL和Remi仓库
CentOS默认仓库PHP版本较低,需添加第三方仓库:
(图片来源网络,侵删)# CentOS 7 sudo yum install -y epel-release http://rpms.remirepo.net/enterprise/remi-release-7.rpm sudo yum install -y yum-utils sudo yum-config-manager --enable remi-php82 # 启用PHP 8.2仓库 # CentOS 8/Stream sudo dnf install -y https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm sudo dnf install -y https://rpms.remirepo.net/enterprise/remi-release-8.rpm sudo dnf module reset php sudo dnf module enable php:remi-8.2 -y
-
安装PHP及扩展
sudo yum install -y php php-fpm php-mysqlnd php-curl php-gd php-mbstring php-xml php-zip
验证安装:
php -v。
配置PHP
-
PHP-FPM配置(Nginx推荐)
编辑PHP-FPM配置文件(路径因版本而异,如/etc/php/8.1/fpm/pool.d/www.conf):listen = /run/php/php8.1-fpm.sock # 监听Unix套接字(默认) listen.owner = www-data listen.group = www-data listen.mode = 0660 pm = dynamic pm.max_children = 50 pm.start_servers = 2 pm.min_spare_servers = 1 pm.max_spare_servers = 3
修改后重启服务:
sudo systemctl restart php8.1-fpm。 -
Apache配置
若使用Apache,确保mod_php已启用:sudo a2enmod php8.1 # Ubuntu启用对应版本 sudo systemctl restart apache2
测试PHP:在网站根目录创建
info.php为<?php phpinfo(); ?>,访问http://服务器IP/info.php。 -
时区与内存优化
编辑PHP主配置文件/etc/php/8.1/apache2/php.ini或/etc/php.ini:date.timezone = Asia/Shanghai # 设置时区 memory_limit = 256M # 调整内存限制 upload_max_filesize = 20M # 上传文件大小限制 post_max_size = 20M # POST数据大小限制
修改后重启Web服务器和PHP-FPM。
常见问题处理
-
安装后无法加载PHP模块
- 检查模块是否安装:
php -m | grep mysql - Apache:确认
LoadModule php_module在httpd.conf中已启用 - Nginx:检查
fastcgi_pass是否指向正确PHP-FPM套接字或地址
- 检查模块是否安装:
-
PHP-FPM启动失败
查看错误日志:sudo journalctl -u php8.1-fpm,常见原因包括权限错误、配置语法错误或端口冲突。 -
版本切换(多版本共存)
Ubuntu可通过update-alternatives管理:sudo update-alternatives --config php # 切换默认PHP版本
CentOS需手动编译或使用
yum module切换。
安全与优化建议
-
禁用危险函数
在php.ini中设置:disable_functions = exec,passthru,shell_exec,system -
配置文件权限
确保配置文件仅root可读:sudo chmod 640 /etc/php/8.1/fpm/php.ini -
定期更新PHP
Ubuntu:sudo apt upgrade php8.1
CentOS:sudo yum update php
相关问答FAQs
Q1: 如何在Linux服务器上切换已安装的PHP版本?
A1: 对于Ubuntu/Debian系统,若通过PPA安装了多版本PHP,可使用sudo update-alternatives --config php命令选择默认版本,对于CentOS/RHEL,需通过dnf module enable php:版本号启用目标版本后重新安装,切换到PHP 8.0:sudo dnf module enable php:remi-8.0 -y && sudo dnf install php,修改后需重启相关服务(Apache/Nginx/PHP-FPM)。
Q2: 安装PHP时提示“依赖包冲突”如何解决?
A2: 首先尝试更新系统包列表并清理缓存:sudo apt update --fix-missing(Ubuntu)或sudo yum clean all(CentOS),若仍冲突,可能需卸载旧版本PHP:sudo apt purge php*(Ubuntu)或sudo yum remove php*(CentOS),然后重新安装,注意备份配置文件(如php.ini),避免丢失自定义设置。
