在Linux系统中安装PHP7可以根据不同的发行版选择对应的包管理器快速安装,也可以根据需求选择源码编译安装来自定义功能模块,以下是具体的操作方法。

使用包管理器安装PHP7
CentOS系统使用yum安装
CentOS默认的基础yum源中没有PHP7版本,需要先添加第三方源,这里以Remi源为例,操作步骤如下:
- 安装Remi源依赖的epel源:
yum install -y epel-release - 安装Remi源:
yum install -y http://rpms.remirepo.net/enterprise/remi-release-7.rpm - 查看可用的PHP7版本:
yum repolist all | grep php - 启用对应的PHP7源,比如启用PHP7.4:
yum-config-manager --enable remi-php74 - 安装PHP7及常用扩展:
yum install -y php php-cli php-fpm php-mysqlnd php-gd php-mbstring php-xml
Ubuntu系统使用apt安装
Ubuntu系统可以通过添加PPA源来安装PHP7,操作步骤如下:
- 安装软件源管理工具:
apt install -y software-properties-common - 添加PHP的PPA源:
add-apt-repository ppa:ondrej/php - 更新软件源缓存:
apt update - 安装PHP7及常用扩展,比如安装PHP7.4:
apt install -y php7.4 php7.4-cli php7.4-fpm php7.4-mysql php7.4-gd php7.4-mbstring php7.4-xml
源码编译安装PHP7
如果需要自定义PHP的功能模块,或者系统没有对应的包管理器源,可以选择源码编译安装,以下是通用步骤:
- 安装编译依赖:
yum install -y gcc make autoconf libxml2-devel openssl-devel curl-devel libjpeg-devel libpng-devel freetype-devel - 下载PHP7源码包,比如下载PHP7.4.33:
wget https://www.php.net/distributions/php-7.4.33.tar.gz - 解压源码包:
tar -zxvf php-7.4.33.tar.gz && cd php-7.4.33 - 配置编译参数,可根据需求调整:
./configure --prefix=/usr/local/php7 --with-config-file-path=/usr/local/php7/etc --enable-fpm --with-mysqli=mysqlnd --with-pdo-mysql=mysqlnd --with-gd --with-jpeg --with-freetype --enable-mbstring --enable-xml --with-curl --with-openssl
- 编译并安装:
make && make install - 复制配置文件:
cp php.ini-production /usr/local/php7/etc/php.ini && cp /usr/local/php7/etc/php-fpm.conf.default /usr/local/php7/etc/php-fpm.conf && cp /usr/local/php7/etc/php-fpm.d/www.conf.default /usr/local/php7/etc/php-fpm.d/www.conf
安装后验证与配置
安装完成后可以通过以下方式验证是否安装成功:
- 查看PHP版本:
php -v
- 启动php-fpm服务,包管理器安装的启动命令:
systemctl start php-fpm,编译安装的启动命令:/usr/local/php7/sbin/php-fpm - 设置开机自启:
systemctl enable php-fpm - 创建测试文件验证PHP解析,在Web服务根目录创建test.php:
<?php phpinfo(); ?>
访问该文件如果能看到PHP信息页面,说明安装配置成功。
常见问题说明
如果安装过程中提示缺少依赖,根据报错信息安装对应的依赖包即可。如果php-fpm启动失败,可以查看错误日志,包管理器安装的日志路径一般为/var/log/php-fpm.log,编译安装的日志路径在/usr/local/php7/var/log/目录下。如果Web服务无法解析PHP,需要检查Web服务(如Nginx、Apache)是否正确配置了PHP解析规则,确保请求能转发到php-fpm处理。