很久没有做PHP相关的事情,这几天运行PHP的服务器遭受到Dos攻击,导致服务器不得不关闭80端口,而之前由于地址被写入到二维码中,又不能不让http来访问,于是只好更换服务器了,一通操作下来安装php环境倒了遇到了很多问题,先记录一下centos如何安装php5.6

本文描述基于CentOS 7.2下编译安装PHP 5.6.35

1、安装编译工具、依赖包

[root@Mike ~]# yum install libxml2 libxml2-devel openssl openssl-devel bzip2 bzip2-devel libcurl libcurl-devel libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel gmp gmp-devel libmcrypt libmcrypt-devel readline readline-devel libxslt libxslt-devel -y

2、下载解压PHP

[root@Mike ~]# cd /usr/local/
[root@Mike /usr/local]# wget https://www.php.net/distributions/php-5.6.35.tar.gz
[root@Mike /usr/local]# tar zxvf php-5.6.35.tar.gz && rm -rf php-5.6.35.tar.gz

3、编译安装

[root@Mike /usr/local]# cd php-5.6.35/
[root@Mike /usr/local/php-5.6.35]# 
[root@Mike /usr/local/php-5.6.35]# ./configure --prefix=/usr/local/php --with-config-file-path=/etc --enable-fpm --enable-inline-optimization --disable-debug --disable-rpath --enable-shared --enable-soap --with-libxml-dir --with-xmlrpc --with-openssl --with-mcrypt --with-mhash --with-pcre-regex --with-sqlite3 --with-zlib --enable-bcmath --with-iconv --with-bz2 --enable-calendar --with-curl --with-cdb --enable-dom --enable-exif --enable-fileinfo --enable-filter --with-pcre-dir --enable-ftp --with-gd --with-openssl-dir --with-jpeg-dir --with-png-dir --with-zlib-dir --with-freetype-dir --enable-gd-native-ttf --enable-gd-jis-conv --with-gettext --with-gmp --with-mhash --enable-json --enable-mbstring --enable-mbregex --enable-mbregex-backtrack --with-libmbfl --with-onig --enable-pdo --with-mysqli=mysqlnd --with-pdo-mysql=mysqlnd --with-zlib-dir --with-pdo-sqlite --with-readline --enable-session --enable-shmop --enable-simplexml --enable-sockets --enable-sysvmsg --enable-sysvsem --enable-sysvshm --enable-wddx --with-libxml-dir --with-xsl --enable-zip --enable-mysqlnd-compression-support --with-fpm-group=nginx --with-fpm-user=nginx  --enable-pcntl --with-mysql
[root@Mike /usr/local/php-5.6.35]# make && make install
[root@Mike /usr/local/php-5.6.35]# cp php.ini-production /etc/php.ini
[root@Mike /usr/local/php-5.6.35]# cp /usr/local/php/etc/php-fpm.conf.default /usr/local/php/etc/php-fpm.conf
[root@Mike /usr/local/php-5.6.35]# 
[root@Mike /usr/local/php-5.6.35]# cp sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm
[root@Mike /usr/local/php-5.6.35]# chmod +x /etc/init.d/php-fpm
[root@Mike /usr/local/php-5.6.35]#

备注:如果是安装 PHP7 以上的话会多这一步操作,cp /usr/local/php/etc/php-fpm.d/www.conf.default /usr/local/php/etc/php-fpm.d/www.conf

4、配置环境变量

[root@Mike /usr/local/php-5.6.35]# vim /etc/profile
PATH=$PATH:/usr/local/php/bin
export PATH
[root@Mike /usr/local/php-5.6.35]# source /etc/profile
[root@Mike /usr/local/php-5.6.35]# php -v
PHP 5.6.35 (cli) (built: Nov 11 2020 11:18:52) 
Copyright (c) 1997-2016 The PHP Group
Zend Engine v2.6.0, Copyright (c) 1998-2016 Zend Technologies
[root@Mike /usr/local/php-5.6.35]#

5、启动PHP

[root@Mike /usr/local/php-5.6.35]# /etc/init.d/php-fpm start
Starting php-fpm  done
[root@Mike /usr/local/php-5.6.35]# ss -ntl
State       Recv-Q Send-Q    Local Address:Port   Peer Address:Port      
LISTEN      0      128 127.0.0.1:9000   *:*
LISTEN      0      128 *:80  *:*                  
LISTEN      0      128 *:22  *:*                  
[root@Mike /usr/local/php-5.6.35]#

6、PHP进程数的设置

根据配置的解析,在php-fpm.conf文件中添加如下配置:

[root@Mike /usr/local/php-5.6.35]# cd /usr/local/php/etc/
[root@Mike /usr/local/php/etc]# ll
total 52
-rw-r--r-- 1 root root  1233 Nov 11 11:19 pear.conf
-rw-r--r-- 1 root root 23054 Nov 11 11:21 php-fpm.conf
-rw-r--r-- 1 root root 23054 Nov 11 11:19 php-fpm.conf.default
[root@Mike /usr/local/php/etc]# vim php-fpm.conf
pm.max_children = 100
pm.start_servers = 30
pm.min_spare_servers = 20
pm.max_spare_servers = 100
pm.max_requests = 500
[root@Mike /usr/local/php-5.6.35]# /etc/init.d/php-fpm restart