第一步:下载PHP5.6.32的安装包
PHP旧版本的下载地址:https://museum.php.net/php5/
PHP官网下载地址:https://www.php.net/downloads.php
字符集转换库下载地址:http://ftp.gnu.org/gnu/libiconv/
1) 准备工作
[root@localhost ~]# mkdir /download #创建包存放目录
[root@localhost download]# cd /download
[root@localhost download]# tar -xzf php-5.6.32.tar.gz -C /usr/local/
[root@localhost download]# groupadd www
[root@localhost download]# useradd -g www www
2) 安装依赖
[root@localhost download]# yum install zlib-devel libxml2-devel libjpeg-devel libjpeg-turbo-devel libiconv-devel gcc epel* -y
[root@localhost download]# yum install freetype-devel libpng-devel gd-devel libcurl-devel libxslt-devel libxslt-devel openssl openssl-devel -y
3)安装加密相关软件依赖
[root@localhost download]# yum -y install libmcrypt-devel mhash mcrypt
4)编译安装字符集转换库
[root@localhost download]# tar -xzf libiconv-1.14.tar.gz -C /usr/local/
[root@localhost download]# cd /usr/local/libiconv-1.14/
[root@localhost libiconv-1.14]# ./configure --prefix=/usr/local/libiconv #指定程序存放路径
[root@localhost libiconv-1.14]# cd srclib/
[root@localhost srclib]# sed -i -e '/gets is a security/d' ./stdio.in.h #不执行,直接make会报错
[root@localhost srclib]# cd ..
[root@localhost libiconv-1.14]# make
[root@localhost libiconv-1.14]# make install
[root@localhost libiconv-1.14]# cd ..
5)进行编译安装
[root@localhost ~]# cd /usr/local/php-5.6.32
执行下面一条语句时注意:由于--with-mysql后面指定的路径是不同机器上的MySQL,这时会出现报错1所示,也给出了解决方式。
[root@localhost php-5.6.32]# ./configure --prefix=/usr/local/php-5.6.32 --with-mysql --enable-fpm --with-pdo-mysql=mysqlnd --with-iconv-dir=/usr/local/libiconv --with-freetype-dir --with-jpeg-dir --with-gettext --with-png-dir --with-zlib --with-libxml-dir=/usr --enable-xml --disable-rpath --enable-bcmath --enable-shmop --enable-sysvsem --enable-inline-optimization --with-curl --enable-mbregex --enable-fpm --enable-mbstring --with-mcrypt --with-gd --enable-gd-native-ttf --with-openssl --with-mhash --enable-pcntl --enable-sockets --with-xmlrpc --enable-soap --enable-short-tags --enable-static --with-xsl --with-fpm-user=www --with-fpm-group=www --enable-ftp --enable-opcache=no
#若出现证书openssl问题,需安装openssl和openssl-devel,前面已添加安装 ;若出现mcrypt.h的问题,则可以看报错4
[root@bogon php-5.6.32]# make
[root@bogon php-5.6.32]# make install
6) 复制配置文件,改名为php.ini
[root@bogon php-5.6.32]# cp php.ini-development /usr/local/php-5.6.32/lib/php.ini
7)修改php.ini文件里的时区
[root@bogon php-5.6.32]# cd /usr/local/php-5.6.32/lib
[root@bogon lib]# vim php.ini
date.timezone =Asia/Shanghai
8) 另行编译扩展
[root@bogon lib]# cd /usr/local/php-5.6.32/ext/sockets
[root@bogon sockets]# /usr/local/php-5.6.32/bin/phpize #可能会产生报错3
[root@bogon sockets]# ./configure --prefix=/usr/local/php-5.6.32/lib --with-php-config=/usr/local/php-5.6.32/bin/php-config --enable-sockets
[root@bogon sockets]# make
[root@bogon sockets]# make install
9) 将PHP加入系统环境变量
[root@bogon sockets]# cd /etc/profile.d/
[root@bogon sockets]# vim php.sh
export PATH=$PATH:/usr/local/php-5.6.32/bin/:/usr/local/php-5.6.32/sbin/
[root@bogon profile.d]# source php.sh
10) 查看版本
[root@bogon profile.d]# php -v
PHP 5.6.32 (cli) (built: Apr 24 2020 17:06:13)
Copyright (c) 1997-2016 The PHP Group
Zend Engine v2.6.0, Copyright (c) 1998-2016 Zend Technologies
11)启动php
[root@localhost etc]# cp /usr/local/php-5.6.32/etc/php-fpm.conf.default /usr/local/php-5.6.32/etc/php-fpm.conf
[root@localhost sbin]# /usr/local/php-5.6.32/sbin/php-fpm
12)设置开机自启:
[root@localhost init.d]# cp /usr/local/php-5.6.32/sapi/fpm/init.d.php-fpm.in /etc/init.d/php-fpm
[root@localhost init.d]# chmod +x php-fpm
[root@localhost init.d]# chkconfig --add php-fpm
[root@localhost init.d]# chkconfig php-fpm on
[root@localhost init.d]# /etc/init.d/php-fpm start
若使用service服务启动:
[root@localhost init.d]# vim php-fpm
修改以下内容:
php_fpm_BIN=/usr/local/php-5.6.32/sbin/php-fpm
php_fpm_CONF=/usr/local/php-5.6.32/etc/php-fpm.conf
php_fpm_PID=/usr/local/php-5.6.32/var/run/php-fpm.pid
[root@localhost init.d]# chmod +x php-fpm
[root@localhost init.d]# chkconfig --add php-fpm
[root@localhost init.d]# chkconfig php-fpm on
[root@localhost init.d]# service php-fpm start
13)实验测试,写一个php脚本进行访问
此实验是在LNMP编译安装环境下执行的:
[root@localhost nginx]# cd /usr/local/nginx/html/ #编译安装nginx的html目录
[root@localhost html]# vim yy.php
写入:
<?php
phpinfo();
?>
[root@localhost php-5.6.32]# cd /usr/local/php-5.6.32/etc/
[root@localhost etc]# vim php-fpm.conf
修改ip地址:
listen = 192.168.217.135:9000
[root@localhost php-5.6.32]# cd /usr/local/php-5.6.32/sbin/
[root@localhost sbin]# ./php-fpm #重启php
[root@localhost sbin]# curl -I 192.168.217.135/yy.php #访问
或者使用浏览器访问:
192.168.217.135/yy.php
报错1:
make“libiconv”时报错如下:
make[2]: *** [progname.o] 错误 1
make[2]: 离开目录“/usr/local/libiconv-1.14/srclib”
make[1]: *** [all] 错误 2
make[1]: 离开目录“/usr/local/libiconv-1.14/srclib”
make: *** [all] 错误 2
解决方法:
[root@bogon srclib]# sed -i -e '/gets is a security/d' ./stdio.in.h
报错2:
在编译安装php服务时报错:
configure: error: Cannot find MySQL header files under /application/mysql.
Note that the MySQL client library is not bundled anymore!
解决方法:
1、一般方法:
在本机器上(php)安装mysql,再安装php,然后把mysql删除掉,不删除也可以,只要不启动mysql服务即可。
注:mysql只需要下载包,并解压,放在/usr/local/mysql那不动它就是了,不需要初始化,不需要启动,php需要的仅仅是那些库文件。
2、快速简单方法:
yum install mysql-libs mysql-devel
注:在--with-mysql的时候,后面不用指定路径了,将路径去掉即可。
报错3:
image.png
解决方式:
yum install -y autoconf
报错4:
编译安装php报错:configure: error: mcrypt.h not found. Please reinstall libmcrypt。
原因是centos源不能安装libmcrypt-devel,由于版权的原因没有自带mcrypt的包。
解决方法:
使用php mcrypt 前必须先安装Libmcrypt
libmcrypt源码安装方法:
wget ftp://mcrypt.hellug.gr/pub/crypto/mcrypt/attic/libmcrypt/libmcrypt-2.5.7.tar.gz
tar -zxvf libmcrypt-2.5.7.tar.gz
cd libmcrypt-2.5.7
./configure –prefix=/usr/local
make
make install
再去编译安装就可以了。
实验结果显示:
编译安装php完成:
image.png image.png
image.png image.png
访问ip时:
image.png浏览器访问时:
image.png
网友评论