在 CentOS 系统中安装 PHP 5.4 是一个相对复杂的过程,因为 PHP 5.4 已经是一个较老的版本,官方不再提供直接的包管理器支持,通过手动编译或使用第三方源,仍然可以完成安装,以下是一个详细的步骤指南,包括从下载源码到配置、编译和安装的全过程。
一、准备工作
1. 更新系统软件包
确保你的系统软件包是最新的:
sudo yum update y
2. 安装必要的依赖包
PHP 的编译需要多个开发工具和库,运行以下命令来安装这些依赖项:
sudo yum install y gcc gccc++ make zlib zlibdevel pcre pcredevel libjpeg libjpegdevel libpng libpngdevel freetype freetypedevel libxml2 libxml2devel glibc glibcdevel glib2 glib2devel bzip2 bzip2devel ncurses ncursesdevel curl curldevel e2fsprogs e2fsprogsdevel krb5 krb5devel openssl openssldevel openldap openldapdevel nss_ldap openldapclients openldapservers
二、下载并解压 PHP 源码
1. 下载 PHP 源码
从 PHP 官方博物馆或其他可靠来源下载 PHP 5.4.16 的源码包:
cd /www/server/tools wget https://museum.php.net/php5/php5.4.16.tar.gz
2. 解压源码包
tar zxvf php5.4.16.tar.gz
三、配置编译选项
1. 进入源码目录
cd php5.4.16
2. 运行./configure
脚本进行配置
./configure prefix=/www/server/php/5.4.16 \ withconfigfilepath=/www/server/php/5.4.16 \ withcurl withfreetypedir \ withgd withgettext withiconvdir \ withkerberos withlibdir=lib64 \ withlibxmldir withmysqli withopenssl \ withpcreregex withpdomysql withpdosqlite \ withpear withpngdir withxmlrpc withxsl withzlib \ enablefpm enablebcmath enablelibxml enableinlineoptimization \ enablegdnativettf enablembregex enablembstring enableopcache \ enablepcntl enableshmop enablesoap enablesockets enablesysvsem enablexml enablezip
> 解释:
参数 | 说明 |
prefix=/www/server/php/5.4.16 | 设置 PHP 安装目录 |
withconfigfilepath=/www/server/php/5.4.16 | 指定 php.ini 文件路径 |
withcurl | 启用 cURL 支持 |
withfreetypedir | 启用 FreeType 支持 |
withgd | 启用 GD 图形库支持 |
withgettext | 启用 Gettext 支持 |
withiconvdir | 启用 iconv 支持 |
withkerberos | 启用 Kerberos 支持 |
withlibdir=lib64 | 指定库目录为 lib64 |
withlibXMLdir | 启用 libXML 支持 |
withmysqli | 启用 MySQLi 支持 |
withopenssl | 启用 OpenSSL 支持 |
withpcreregex | 启用 PCRE 正则表达式支持 |
withpdomysql | 启用 PDO MySQL 支持 |
withpdosqlite | 启用 PDO SQLite 支持 |
withpear | 启用 PEAR 支持 |
withpngdir | 启用 PNG 图形库支持 |
withxmlrpc | 启用 XMLRPC 支持 |
withxsl | 启用 XSL 支持 |
withzlib | 启用 zlib 支持 |
enablefpm | 启用 FPM 支持 |
enablebcmath | 启用 BCMath 支持 |
enablelibxml | 启用 libXML 支持 |
enableinlineoptimization | 启用内联优化 |
enablegdnativettf | 启用 GD 本地 TTF 字体支持 |
enablembregex | 启用多字节正则表达式支持 |
enablembstring | 启用多字节字符串支持 |
enableopcache | 启用 Opcache |
enablepcntl | 启用进程控制支持 |
enableshmop | 启用共享内存操作支持 |
enablesoap | 启用 SOAP 支持 |
enablesockets | 启用套接字支持 |
enablesysvsem | 启用 System V 信号量支持 |
enablexml | 启用 XML 支持 |
enablezip | 启用 ZIP 支持 |
如果遇到错误提示缺少某些库,请根据提示安装相应的开发包,如果提示缺少libxslt
,可以安装该库:
sudo yum install libxsltdevel* y
然后重新运行./configure
。
四、编译与安装
1. 编译源码
make && make install
五、配置 PHP
1. 复制配置文件模板并重命名
cp php.iniproduction /www/server/php/5.4.16/php.ini
2. 根据需要编辑php.ini
,例如调整内存限制、上传文件大小等。
六、设置开机启动并启动 PHPFPM
1. 复制启动脚本并添加执行权限
cp ./sapi/fpm/init.d.phpfpm /etc/init.d/phpfpm chmod +x /etc/init.d/phpfpm
2. 修改 PHPFPM 配置文件(可选)
cd /www/server/php/5.4.16/etc cp phpfpm.conf.default phpfpm.conf vi phpfpm.conf
在配置文件中取消pid = run/phpfpm.pid
前的注释。
3. 设置开机启动并启动 PHPFPM
chkconfig add phpfpm chkconfig list service phpfpm start
或者直接使用以下命令启动:
/www/server/php/5.4.16/sbin/phpfpm
停止 PHPFPM:
service phpfpm stop
或使用以下命令:
pkill phpfpm
FAQs相关问题及解答:
Q1: PHP 5.4在CentOS上无法启动怎么办?
A1: PHP 5.4 无法启动,首先检查错误日志以获取更多信息,常见的原因包括配置文件错误、缺少依赖库或权限问题,你可以查看 PHPFPM 的错误日志,通常位于/var/log/phpfpm/phpfpm.log
,确保所有必要的依赖库都已正确安装,并且文件权限设置正确。
Q2: 如何升级已安装的 PHP 版本?
A2: 如果你需要升级已安装的 PHP 版本,可以使用yum
或rpm
包管理器来卸载旧版本并安装新版本,如果你想升级到 PHP 5.6,可以先卸载现有的 PHP,然后添加新的 YUM 源并安装 PHP 5.6,具体步骤如下:
1、卸载现有 PHP:
sudo yum remove php phpcommon phpcli phpfpm
2、添加新的 YUM 源:
rpm Uvh http://mirror.webtatic.com/yum/el7/webtaticrelease.rpm rpm Uvh http://mirror.webtatic.com/yum/el7/epelrelease.rpm
3、安装 PHP 5.6:
sudo yum install php56w php56wcli php56wcommon php56wfpm
4、启动 PHPFPM:
sudo service start phpfpm