第一步:下載PHP5.6.32的安裝包
PHP舊版本的下載地址:https://museum.php.net/php5/
PHP官網(wǎng)下載地址:https://www.php.net/downloads.php
字符集轉(zhuǎn)換庫(kù)下載地址:http://ftp.gnu.org/gnu/libiconv/
1) 準(zhǔn)備工作
[root@localhost ~]# mkdir /download #創(chuàng)建包存放目錄
[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)安裝加密相關(guān)軟件依賴
[root@localhost download]# yum -y install libmcrypt-devel mhash mcrypt
4)編譯安裝字符集轉(zhuǎn)換庫(kù)
[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 #不執(zhí)行好爬,直接make會(huì)報(bào)錯(cuò)
[root@localhost srclib]# cd ..
[root@localhost libiconv-1.14]# make
[root@localhost libiconv-1.14]# make install
[root@localhost libiconv-1.14]# cd ..
5)進(jìn)行編譯安裝
[root@localhost ~]# cd /usr/local/php-5.6.32
執(zhí)行下面一條語(yǔ)句時(shí)注意:由于--with-mysql后面指定的路徑是不同機(jī)器上的MySQL,這時(shí)會(huì)出現(xiàn)報(bào)錯(cuò)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
#若出現(xiàn)證書openssl問(wèn)題坐桩,需安裝openssl和openssl-devel软棺,前面已添加安裝 ;若出現(xiàn)mcrypt.h的問(wèn)題,則可以看報(bào)錯(cuò)4
[root@bogon php-5.6.32]# make
[root@bogon php-5.6.32]# make install
6) 復(fù)制配置文件意述,改名為php.ini
[root@bogon php-5.6.32]# cp php.ini-development /usr/local/php-5.6.32/lib/php.ini
7)修改php.ini文件里的時(shí)區(qū)
[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) 另行編譯擴(kuò)展
[root@bogon lib]# cd /usr/local/php-5.6.32/ext/sockets
[root@bogon sockets]# /usr/local/php-5.6.32/bin/phpize #可能會(huì)產(chǎn)生報(bào)錯(cuò)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加入系統(tǒng)環(huán)境變量
[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)啟動(dòng)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)設(shè)置開機(jī)自啟:
[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服務(wù)啟動(dòng):
[root@localhost init.d]# vim php-fpm
修改以下內(nèi)容:
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)實(shí)驗(yàn)測(cè)試,寫一個(gè)php腳本進(jìn)行訪問(wèn)
此實(shí)驗(yàn)是在LNMP編譯安裝環(huán)境下執(zhí)行的:
[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 #訪問(wèn)
或者使用瀏覽器訪問(wèn):
192.168.217.135/yy.php
報(bào)錯(cuò)1:
make“l(fā)ibiconv”時(shí)報(bào)錯(cuò)如下:
make[2]: *** [progname.o] 錯(cuò)誤 1
make[2]: 離開目錄“/usr/local/libiconv-1.14/srclib”
make[1]: *** [all] 錯(cuò)誤 2
make[1]: 離開目錄“/usr/local/libiconv-1.14/srclib”
make: *** [all] 錯(cuò)誤 2
解決方法:
[root@bogon srclib]# sed -i -e '/gets is a security/d' ./stdio.in.h
報(bào)錯(cuò)2:
在編譯安裝php服務(wù)時(shí)報(bào)錯(cuò):
configure: error: Cannot find MySQL header files under /application/mysql.
Note that the MySQL client library is not bundled anymore!
解決方法:
1吮蛹、一般方法:
在本機(jī)器上(php)安裝mysql荤崇,再安裝php,然后把mysql刪除掉潮针,不刪除也可以术荤,只要不啟動(dòng)mysql服務(wù)即可。
注:mysql只需要下載包每篷,并解壓瓣戚,放在/usr/local/mysql那不動(dòng)它就是了端圈,不需要初始化,不需要啟動(dòng)子库,php需要的僅僅是那些庫(kù)文件枫笛。
2、快速簡(jiǎn)單方法:
yum install mysql-libs mysql-devel
注:在--with-mysql的時(shí)候刚照,后面不用指定路徑了刑巧,將路徑去掉即可。
報(bào)錯(cuò)3:
解決方式:
yum install -y autoconf
報(bào)錯(cuò)4:
編譯安裝php報(bào)錯(cuò):configure: error: mcrypt.h not found. Please reinstall libmcrypt无畔。
原因是centos源不能安裝libmcrypt-devel啊楚,由于版權(quán)的原因沒(méi)有自帶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
再去編譯安裝就可以了浑彰。
實(shí)驗(yàn)結(jié)果顯示:
編譯安裝php完成:
訪問(wèn)ip時(shí):
瀏覽器訪問(wèn)時(shí):