PHP官網www.php.net
; 當前主流版本爲5.6/7.1php
[root@localhost src]# wget http://cn2.php.net/distributions/php-5.6.30.tar.gz [root@localhost src]# tar -zxvf php-5.6.30.tar.gz
# libmcrypt-devel包在epel倉庫內,若是系統內尚未安裝過epel倉庫,執行yum install -y epel-release進行安裝 #[root@localhost php-5.6.30]# yum install -y epel-release [root@localhost php-5.6.30]# yum install -y libxml2-devel openssl-devel bzip2-devel libjpeg-devel libpng-devel freetype-devel libmcrypt-devel [root@localhost php-5.6.30]# ./configure --prefix=/usr/local/php --with-apxs2=/usr/local/apache2.4/bin/apxs --with-config-file-path=/usr/local/php/etc --with-mysql=/usr/local/mysql --with-pdo-mysql=/usr/local/mysql --with-mysqli=/usr/local/mysql/bin/mysql_config --with-libxml-dir --with-gd --with-jpeg-dir --with-png-dir --with-freetype-dir --with-iconv-dir --with-zlib-dir --with-bz2 --with-openssl --with-mcrypt --enable-soap --enable-gd-native-ttf --enable-mbstring --enable-sockets --enable-exif [root@localhost php-5.6.30]# echo $? 0 [root@localhost php-5.6.30]# make [root@localhost php-5.6.30]# make install
查看php編譯信息mysql
[root@localhost php-5.6.30]# /usr/local/php/bin/php -i # 正常狀況下使用php.ini-production,開發環境能夠使用php.ini-development [root@localhost php-5.6.30]# cp php.ini-production /usr/local/php/etc/php.ini
php軟件是以模塊的形式安裝進apache的,在/usr/local/apache2.4/conf/httpd.conf文件內的sql
查看php是否被apache加載apache
[root@localhost php-5.6.30]# cat /usr/local/apache2.4/conf/httpd.conf | grep php LoadModule php5_module modules/libphp5.so
一個apache服務器內能夠同時安裝php5和php7,可是隻能運行其中一個,另一個須要註釋掉apache配置文件內對應的LoadModule行vim
下載、安裝PHP7服務器
[root@localhost src]# wget http://cn2.php.net/distributions/php-7.1.6.tar.gz [root@localhost src]# tar -zxvf php-7.1.6.tar.gz
編譯安裝php7
# php7內已經移除了--with-mysql參數 [root@localhost src]# ./configure --prefix=/usr/local/php --with-apxs2=/usr/local/apache2.4/bin/apxs --with-config-file-path=/usr/local/php/etc --with-pdo-mysql=/usr/local/mysql --with-mysqli=/usr/local/mysql/bin/mysql_config --with-libxml-dir --with-gd --with-jpeg-dir --with-png-dir --with-freetype-dir --with-iconv-dir --with-zlib-dir --with-bz2 --with-openssl --with-mcrypt --enable-soap --enable-gd-native-ttf --enable-mbstring --enable-sockets --enable-exif [root@localhost src]# make && make install
apache生成php7模塊socket
[root@localhost src]# ls /usr/local/apache2.4/modules/libphp7.so
查看php7所加載的模塊ui
[root@localhost src]# /usr/local/php7/bin/php -m
apache服務器能夠存在2種版本的php,經過在apache的配置文件中註釋掉相應的行來關閉某個版本的php模塊spa
[root@localhost src]# vim /usr/local/apache2.4/conf/httpd.conf 在LoadModule行前加#註釋
編譯時沒法執行apxs腳本
Sorry, I cannot run apxs. Possible reasons follow: 1. Perl is not installed 2. apxs was not found. Try to pass the path using --with-apxs2=/path 3. Apache was not built using --enable-so (the apxs usage page is di The output of /usr/local/apache/bin/apxs follows: ./configure: /usr/local/apache/bin/apxs: /replace/with/path/to/perl/ configure: error: Aborting
解決方法:
該報錯是因爲perl解釋器路徑無效 -- 「/replace/with/path/to/perl/」 修改/usr/local/apache/bin/apxs文件,將首行改成#!/usr/bin/apxs -w
相關依賴包未安裝
configure: error: xml2-config not found. Please check your libxml2 installation. 解決:安裝libxml2包 yum install -y libxml2-devel
configure: eror: Cannot find OpenSSL's <evp.h> 解決:安裝openssl包 yum install -y openssl-devel
configure: error: Please reinstall the BZip2 distribution 解決:安裝bzip2包 yum install -y bzip2-devel
configure: error: jpeglib.h not found. 解決:安裝libjpeg包(libjpeg-turbo-devel) yum install -y libjpeg-devel
configure: error: png.h not found. 解決:安裝libpng包 yum install -y libpng-devel
configure: error: freetype-config not found. 解決:安裝freetype包 yum install -y freetype-devel
缺乏libmcrypt包
configure: error: mcrypt.h not found. Please reinstall libmcrypt. 解決:安裝libmcrypt包(在epel擴展源內,未安裝需yum install -y epel-release) yum install -y libmcrypt-devel