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
编译和安装
- yum更新
yum update
- 安装相关依赖项
yum install openssl openssl-devel libxml2-devel libxml2 bzip2 bzip2-devel curl-devel php-mcrypt libmcrypt libmcrypt-devel readline-devel
- 遇到的问题
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
完成