PHP5.6在CentOS中的编译安装

下载

首先需要去官网下载源码,官网地址为

由于我这边从官网下载比较慢,就找了一个国内的,速度比较快 地址: http://mirrors.sohu.com/php/php-5.6.31.tar.gz

wget http://mirrors.sohu.com/php/php-5.6.31.tar.gz

编译和安装

  1. yum更新

yum update

  1. 安装相关依赖项

yum install openssl openssl-devel libxml2-devel libxml2 bzip2 bzip2-devel curl-devel php-mcrypt libmcrypt libmcrypt-devel readline-devel

  1. 遇到的问题

configure: error: mcrypt.h not found. Please reinstall libmcrypt.

解决办法:

yum install libmcrypt-devel

configure: error: Please reinstall readline - I cannot find readline.h

解决办法:

yum install readline-devel

由于用到了openssl 因此还需要编译安装openssl再来执行编译

下载openssl 源码 https://www.openssl.org/source/openssl-1.0.2k.tar.gz

通过以下几步命令安装openssl

[root@hcss-ecs-dd6b openssl]# tar -zxvf openssl-1.0.2k.tar.gz
[root@hcss-ecs-dd6b openssl]# cd openssl-1.0.2k
[root@hcss-ecs-dd6b openssl-1.0.2k]# ./config
yum remove -y openssl 
[root@hcss-ecs-dd6b openssl-1.0.2k]# make && make install

建立软连接

ln -s /usr/local/ssl/bin/openssl /usr/local/bin/openssl

再通过配置参数,执行configure命令

./configure --prefix=/usr/local/php --with-config-file-path=/usr/local/php/etc --enable-inline-optimization --disable-debug --disable-rpath  --enable-shared --enable-opcache --enable-fpm --with-fpm-user=www --with-fpm-group=www --with-mysql=mysqlnd --with-mysqli=mysqlnd --with-pdo-mysql=mysqlnd --with-gettext --enable-mbstring --with-iconv --with-mcrypt --with-mhash --with-openssl=/usr/local/ssl --enable-bcmath --enable-soap --with-libxml-dir --enable-pcntl --enable-shmop --enable-sysvmsg --enable-sysvsem --enable-sysvshm --enable-sockets --with-curl --with-zlib --enable-zip --with-bz2 --with-readline

注意这里 --with-openssl=/usr/local/ssl 目录为 /usr/local/ssl 即 /usr/local/ssl/bin/openssl 的前缀部分

执行完成后,再执行 make && make install 即安装完成。

配置文件

执行以下命令,来确保配置文件能够正确找到并使用

[root@hcss-ecs-dd6b php-5.6.31]# cp ./php.ini-production  /usr/local/php/etc/php.ini
[root@hcss-ecs-dd6b php-5.6.31]# cp ./sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm
[root@hcss-ecs-dd6b php-5.6.31]# cp /usr/local/php/etc/php-fpm.conf.default  /usr/local/php/etc/php-fpm.conf

授权执行文件

chmod 755 /etc/init.d/php-fpm

添加服务项

chkconfig --add php-fpm

添加开机启动

chkconfig php-fpm on

遇到问题: Starting php-fpm [08-Jun-2024 17:36:35] ERROR: [pool www] cannot get uid for user 'www'

执行以下命令,添加用户组和用户,即可解决问题

[root@hcss-ecs-dd6b php-5.6.31]# groupadd www
[root@hcss-ecs-dd6b php-5.6.31]# useradd -g www -s /sbin/nologin www

启动服务,一切正常

service php-fpm start

完成