PHP-5.6.32编译安装

第一步:下载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 
写入:

[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

你可能感兴趣的:(PHP-5.6.32编译安装)