PHP源码安装是自定义PHP运行环境的有效方式,适合需要特定功能模块或者适配特殊服务器场景的开发者,整个过程主要分为环境准备、依赖安装、编译配置、编译安装、配置验证几个核心步骤。
一、安装前准备
首先需要确认服务器系统版本,本文以CentOS 7系统为例,其他Linux发行版操作逻辑类似,仅包管理命令有差异。同时需要提前下载对应版本的PHP源码包,建议选择稳定版本,比如PHP 8.1系列,下载完成后上传到服务器指定目录,比如/usr/local/src。
二、安装依赖组件
编译PHP源码需要依赖多个系统组件,缺少依赖会导致配置或者编译过程报错,执行以下命令安装基础依赖:
# 安装基础编译工具和常用依赖 yum install -y gcc gcc-c++ make autoconf libxml2 libxml2-devel openssl openssl-devel curl curl-devel libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel libzip libzip-devel
如果后续需要添加特定功能模块,比如MySQL支持、GD库支持,还需要提前安装对应的依赖组件,避免后续重新编译。
三、解压并配置编译参数
进入源码包所在目录,解压源码包后进入解压后的目录,执行配置命令指定安装路径和功能模块:
# 解压源码包 cd /usr/local/src tar -zxvf php-8.1.27.tar.gz cd php-8.1.27 # 配置编译参数,指定安装路径为/usr/local/php,开启常用模块 ./configure --prefix=/usr/local/php --with-config-file-path=/usr/local/php/etc --enable-fpm --with-openssl --with-curl --enable-mbstring --with-zip --with-mysqli --with-pdo-mysql
配置过程中如果提示缺少依赖,根据报错信息安装对应的依赖包后重新执行配置命令即可。配置完成后会显示Thank you for using PHP的提示,说明配置阶段完成。
四、编译并安装
配置完成后执行编译和安装命令,编译过程会根据服务器性能持续几分钟到十几分钟不等:
# 编译,-j参数可以指定并行编译的线程数,加快编译速度 make -j 4 # 安装 make install
安装完成后,PHP会被部署到之前指定的/usr/local/php目录下。
五、配置PHP环境
安装完成后需要复制默认的配置文件,并且配置PHP-FPM服务,方便后续管理:
# 复制php.ini配置文件 cp php.ini-production /usr/local/php/etc/php.ini # 复制php-fpm配置文件 cp /usr/local/php/etc/php-fpm.conf.default /usr/local/php/etc/php-fpm.conf cp /usr/local/php/etc/php-fpm.d/www.conf.default /usr/local/php/etc/php-fpm.d/www.conf # 复制php-fpm服务文件到系统服务目录 cp sapi/fpm/php-fpm.service /usr/lib/systemd/system/ # 重新加载系统服务 systemctl daemon-reload
六、启动并验证安装
启动PHP-FPM服务,并且创建测试文件验证PHP是否安装成功:
# 启动php-fpm服务并设置开机自启 systemctl start php-fpm systemctl enable php-fpm # 查看php版本,验证安装是否成功 /usr/local/php/bin/php -v
如果输出版本信息,说明PHP源码安装成功。可以创建测试文件/usr/local/nginx/html/info.php(如果是LNMP环境),内容如下:
<?php phpinfo(); ?>
访问服务器IP加上/info.php,如果能看到PHP的配置信息页面,说明PHP已经可以正常解析脚本,整个安装流程完成。
常见问题说明
- 编译时报错缺少
oniguruma库:可以手动安装oniguruma依赖后再重新配置编译 - PHP-FPM启动失败:可以查看
/usr/local/php/var/log/php-fpm.log日志文件排查错误原因 - 需要添加新模块:可以重新执行配置命令加上对应的模块参数,然后重新编译安装即可