在 CentOS 系统上安装 PHP 5.6,可以通过多种方法实现,以下是两种常见的安装方式:通过 YUM 包管理器和源码编译安装,以下将详细解释这两种方法的步骤和注意事项。
使用 YUM 源安装 PHP 5.6
1. 配置 YUM 源
CentOS 6.x:
1. 安装 EPEL(Extra Packages for Enterprise Linux)源和 Remi 存储库:
```bash
sudo rpm Uvh http://ftp.iij.ad.jp/pub/linux/fedora/epel/6/x86_64/epelrelease68.noARCh.rpm
sudo rpm Uvh http://rpms.famillecollet.com/enterprise/remirelease6.rpm
```
2. 确保已启用 Remi 仓库中的 PHP 5.6 版本:
```bash
yum install yumutils
yumconfigmanager enable remiphp56
```
CentOS 7.x:
1. 安装 EPEL 源和 Remi 存储库:
```bash
sudo yum install epelrelease
sudo rpm ivh http://rpms.famillecollet.com/enterprise/remirelease7.rpm
```
2. 启用 Remi 仓库中的 PHP 5.6 版本:
```bash
yum install yumutils
yumconfigmanager enable remiphp56
```
2. 安装 PHP 5.6 及其扩展
无论使用的是 CentOS 6.x 还是 7.x,接下来都是安装 PHP 5.6 及其常用扩展模块:
sudo yum install y php phpopcache phpdevel phpmbstring phpmcrypt phpmysqlnd phpxml phpgd phpfpm
3. 启动并验证 PHPFPM 服务
1、启动 PHPFPM 服务:
```bash
sudo systemctl start phpfpm
```
2、设置开机自启:
```bash
sudo systemctl enable phpfpm
```
3、验证 PHP 版本:
```bash
php v
```
输出应显示 PHP 5.6.x。
源码编译安装 PHP 5.6
对于一些需要特定配置或旧版 PHP 支持的项目,可以选择源码编译安装。
1. 下载并解压 PHP 5.6
从官方站点下载 PHP 5.6 的源码包:
wget http://cn2.php.net/distributions/php5.6.31.tar.gz tar zxvf php5.6.31.tar.gz cd php5.6.31/
2. 安装依赖包
确保系统上有编译 PHP 所需的依赖包:
sudo yum y groupinstall "Development Tools" sudo yum y install libxml2 libxml2devel openssl openssldevel curl curldevel libjpeg libjpegdevel libpng libpngdevel freetype freetypedevel zlib zlibdevel gd gddevel gettext gettextdevel libXpm libXpmdevel libXrender libXrenderdevel libX11 libX11devel libXext libXextdevel libXau libXaudevel xorgx11apps xorgx11appsdevel xorgx11utilmacros xorgx11utilmacrosdevel bzip2 bzip2devel ncurses ncursesdevel bison bisondevel readline readlinedevel libXt stl stldevel gmp gmpdevel libmcrypt libmcryptdevel mhash mhashdevel icu icudevel libidn libidndevel libidn11 libidn11devel libtidy tidydevel libxslt libxsltdevel expat expatdevel libevent libeventdevel libedit libeditdevel pspell pspelldevel enchant enchantdevel recode recodedevel db4 db4devel db4utils db4utilsdevel t1lib t1libdevel aspell aspelldevel beryl beryldevel libvpx libvpxdevel webp webpdevel daala daaladevel ttfautohint ttfautohintdevel fontconfig fontconfigdevel freetype freetypedevel harfbuzz harfbuzzdevel fribidi fribididevel libXcursor libXcursordevel libXinerama libXineramadevel libXrandr libXrandrdevel libXres libXresdevel libXi libXidevel libXmu libXmudevel libXtst libXtstdevel libXdamage libXdamagedevel libXfixes libXfixesdevel libXext libXextdevel libXaw libXawdevel libXtoolkit libXtoolkitdevel libieee1284 libieee1284devel libieee12843 libieee12843devel libusb libusbdevel libsane sanebackends sanefrontends sanedevel ghostscript ghostscriptdevel graphviz graphvizdevel ImageMagick ImageMagickdevel ImageMagicklast ImageMagicklastdevel jasper jasperdevel jbig2dec jbig2decdevel jbigkit jbigkitdevel lcms2 lcms2devel littlecms2 littlecms2devel lua luadevel luac luacdevel luajit luajitdevel luabind luabinddevel rrdtool rrdtooldevel freetype2 freetype2devel gd gddevel glib2 glib2devel gnutls gnutlsdevel gpgme gpgmedevel gmp gmpdevel gmp4 gmp4devel hal haldevel halflash halflashdevel halmdm halmdmdevel intltool intltooldevel isocodes isocodesdevel kmod kmoddevel libXfont libXfontdevel libXfont1 libXfont1devel libXine libXinedevel libXine1 libXine1devel libXmu libXmudevel libXtst libXtstdevel libXaw libXawdevel libXres libXresdevel libXi libXidevel libXmu libXmudevel libXtst libXtstdevel libXdamage libXdamagedevel libXfixes libXfixesdevel libXext libXextdevel libXcursor libXcursordevel libXinerama libXineramadevel libXrandr libXrandrdevex libXres libXresdevex libXi libXidevex libXmu libXmudevex libXtst libXtstdevex libXdamage libXdamagedevex libXfixes libXfixesdevex libXext libXextdevex libXcursor libXcursordevex libXinerama libXineramadevex libXrandr libXrandrdevex libXres libXresdevex libXi libXidevex libXmu libXmudevex libXtst libXtstdevex libXdamage libXdamagedevex libXfixes libXfixesdevex libXext libXextdevex libXcursor libXcursordevex libXinerama libXineramadevex libXrandr libXrandrdevex libXres libXresdevex libXi libXidevex libXmu libXmudevex libXtst libXtstdevex libXdamage libXdamagedevex libXfixes libXfixesdevex libXext libXextdevex libXcursor libXcursordevex libXinerama libXineramadevex libXrandr libXrandrdebugex libXrandrdebugexdevex libXres libXresdebugex libXresdebugexdevex libXi libXidebugex libXidebugexdevex libXmu libXmudebugex libXmudebugexdevex libXtst libXtstdebugex libXtstdebugexdevex libXdamage libXdamagedebugex libXdamagedebugexdevex libXfixes libXfixesdebugex libXfixesdebugexdevex libXext libXextdebugex libXextdebugexdevex libXcursor libXcursordebugex libXcursordebugexdevex libXinerama libXineramadebugex libXineramadebugexdevex libXrandr libXrandrdebugex libXrandrdebugexdevex libXres libXresdir /usr/local/php5.6/lib /usr/local/php5.6/etc /usr.local/php5.6/bin /usr/local/php5.6/sbin /usr/local/php5.6/var /usr/local/php5.6/share /usr/local/php5.6/man /usr/local/php5.6.4/man /usr/local/php5.6/include /usr/local/php5.6/lib /usr/local/php5.6/etc /usr/local/php5.6/man /usr/local/php5.6/build /usr.local/php5.6/docs /usr/local/php5.6/examples /usr/local/php5.6/tests /usr/local/php5.6.4/tests /usr/local/php5.6/extras /usr/local/php5.6.4/extras /usr/local/php5.6.4/tests /usr/local/php5.6/extras /usr/local/php5.6.4/tests /usr/local/php5.6/extras /usr/local/php5.6.4/tests /usr/local/php.ini /usr/local/php5.6/php.ini make && make install
3. 配置 PHP
将默认的配置文件拷贝到正确的位置:
cp php.iniproduction /usr/local/php5.6/lib/php.ini
创建 PHPFPM 配置文件:
cp sapi/fpm/phpfpm.conf /usr/local/php5.6/etc/phpfpm.conf
创建 systemd 服务文件:
nano /etc/systemd/system/php5.6fpm.service
粘贴到php5.6fpm.service
文件中:
[Unit] Description=The PHP 5.6 FastCGI Process Manager After=syslog.target network.target [Service] Type=simple PIDFile=/usr/local/php5.6/var/run/phpfpm.pid ExecStart=/usr/local/php5.6/sbin/phpfpm nodaemonize fpmconfig /usr/local/php5.6/etc/phpfpm.conf ExecReload=/bin/kill USR2 $MAINPID [Install] WantedBy=multiuser.target
保存并关闭文件后,重新加载 systemd 服务:
sudo systemctl daemonreload
启动 PHPFPM 并将其设置为系统服务:
sudo systemctl start php5.6fpm sudo systemctl enable php5.6fpm
至此,PHP 5.6 已经成功安装并配置为系统服务,你可以通过配置 Web 服务器的虚拟主机来使用 PHP 5.6。
表格:YUM 安装与源码编译对比
项目 | YUM 安装 | 源码编译 |
适用场景 | 适用于大多数用户,尤其是需要快速部署且对自定义需求不高的场景。 | 适用于需要高度定制配置或特定版本需求的高级用户。 |
安装步骤 | 较简单,主要通过命令行操作完成。 | 较复杂,需手动下载、编译和配置。 |
依赖管理 | 自动处理依赖关系。 | 需手动安装和管理依赖。 |
更新维护 | 通过 YUM 可以方便地进行软件包更新和维护。 | 需要手动进行源码下载和编译更新。 |
灵活性 | 较低,受限于 YUM 仓库中提供的软件包。 | 高,可以根据需求自定义配置和扩展。 |
性能优化 | 通常预编译的软件包已经过一定程度的优化。 | 可针对具体应用场景进行性能优化和调整。 |
相关问答FAQs
Q1: PHP 5.6 是否仍然受到官方支持?
A1: PHP 5.6 已于2019年1月1日停止官方支持,不再接收安全更新和功能改进,建议尽量升级到受支持的版本,如 PHP 7.x 或更高版本以获得更好的安全性和性能,如果必须使用 PHP 5.6,请确保采取额外的安全措施。
Q2: 如果遇到依赖缺失问题怎么办?
A2: 如果在使用 YUM 安装过程中遇到依赖缺失问题,可以尝试以下步骤:
1. 确保已启用 EPEL(Extra Packages for Enterprise Linux)源和 Remi 存储库。
2. 使用yum install
命令手动安装缺失的依赖包,缺少libXML2
和libxml2devel
,则运行yum install y libxml2 libxml2devel
。
3. 如果问题依旧,考虑通过源码编译安装所需依赖,确保所有依赖项都已正确安装。