So aktualisieren Sie die MySQL-Version und die PHP-Version
下載解壓
去php官方下載頁(yè)面,隨便選擇一個(gè)你的服務(wù)器所在國(guó)家的鏡像,鼠標(biāo)右鍵復(fù)制鏈接。
$?wget?http://am1.php.net/get/php-7.0.0.tar.gz/from/this/mirror
解壓下載到的壓縮包
$ tar xf php-7.0.0.tar.gz$cd php-7.0.0
安裝前配置
解決依賴(lài)包
yum?-y?install?libxml2?libxml2-devel?openssl?openssl-devel?curl-devel?libjpeg-devel?libpng-devel?freetype-devel?libmcrypt-devel
利用linux的make安裝方式,我們需要在make之前對(duì)軟件的編譯進(jìn)行配置。這里需要留意,如果編譯之前沒(méi)有配置對(duì)應(yīng)的選項(xiàng),會(huì)導(dǎo)致不生成某些模塊,后面可能會(huì)遇到問(wèn)題。
./configure?--prefix=/usr/local/php7?\--with-config-file-path=/usr/local/php7/etc?\--with-config-file-scan-dir=/usr/local/php7/etc/php.d?\--with-apxs2=/usr/local/apache/bin/apxs?\--with-mcrypt=/usr/include?\--enable-mysqlnd?\--with-mysqli?\--with-pdo-mysql?\--with-gd?\--with-iconv?\--with-zlib?\--enable-xml?\--enable-shmop?\--enable-sysvsem?\--enable-inline-optimization?\--enable-mbregex?\--enable-mbstring?\--enable-ftp?\--enable-gd-native-ttf?\--with-openssl?\--enable-pcntl?\--enable-sockets?\--with-xmlrpc?\--enable-zip?\--enable-soap?\--without-pear?\--with-gettext?\--enable-session?\--with-curl?\--with-jpeg-dir?\--with-freetype-dir?\--enable-opcache
上面的這段配置,藍(lán)色選項(xiàng)根據(jù)你的服務(wù)器部署,修改成為你自己的實(shí)際路徑。
編譯安裝
原本在linux中,在configure之后,只需要make就可以進(jìn)行編譯了,但是由于不同的環(huán)境,會(huì)出現(xiàn)不同的錯(cuò)誤,比如我的服務(wù)器上,出現(xiàn)了提示libiconv錯(cuò)誤,我在往上還看到libmcrypt錯(cuò)誤。所以,在編譯的時(shí)候,我們可能需要根據(jù)編譯中出現(xiàn)的情況,安裝對(duì)應(yīng)的一些模塊或軟件環(huán)境。如果編譯錯(cuò)誤后無(wú)法繼續(xù)編譯,可以使用make clean再來(lái)編譯。
我再編譯的時(shí)候,出現(xiàn)了libiconv錯(cuò)誤,同時(shí),我們的服務(wù)器是雙核的,所以,我用了下面的命令進(jìn)行編譯:
$?gmake?-j2?ZEND_EXTRA_LIBS='-liconv'
-j2表示用雙核cup去編譯,編譯速度更快??傊?,編譯中出現(xiàn)了什么錯(cuò)誤,就到網(wǎng)上去查怎么解決。
完成編譯之后,進(jìn)行安裝即可。
$ make install
配置apache
如果上面的編譯安裝正常,由于我們配置了apxs選項(xiàng),所以在編譯的時(shí)候,make會(huì)對(duì)apache的apxs進(jìn)行調(diào)用操作,結(jié)果就是在apache的安裝目錄下的modules目錄下生成libphp7.so,并在apache的配置文件httpd.conf中增加一行
LoadModule?php7_module????????modules/libphp7.so
一看就明白了,就是讓apache去加載一個(gè)新的libphp7.so模塊。但是我們?nèi)匀灰獙?duì)httpd.conf進(jìn)行修改,重新配置apache。找到LoadModule php,你會(huì)發(fā)現(xiàn),竟然出現(xiàn)了兩行LoadModule,同時(shí)加載了php5和php7,如下:
LoadModule php5_module??????? modules/libphp5.soLoadModule php7_module??????? modules/libphp7.so
我們把第一行給注釋掉,而且還要增加一個(gè)PHPIniDir的配置項(xiàng),即修改為如下:
#LoadModule?php5_module????????modules/libphp5.soLoadModule?php7_module????????modules/libphp7.soPHPIniDir???/usr/local/php7/etc
重啟apache,現(xiàn)在可以寫(xiě)一個(gè)phpinfo去試試看了。
php的配置文件
在php默認(rèn)安裝狀態(tài)下你可能發(fā)現(xiàn) ?/usr/local/php7下沒(méi)有etc目錄,也就沒(méi)有php.ini文件。這是正常的,不過(guò)你可以自己創(chuàng)建php.ini,也可以從php源碼目錄中找到兩個(gè)php.ini-xxx文件,拷貝一個(gè)過(guò)去,改名為php.ini即可。
cd?~/php-7.0.0mkdir?/usr/local/php7/etccp?php.ini-production?/usr/local/php7/etc/php.ini
如果你的服務(wù)器上面還安裝了mysql,其實(shí)不用再做其他配置,我們?cè)赾onfigure的時(shí)候,讓php7也支持mysql,如果你原來(lái)的lamp環(huán)境中已經(jīng)可以正常連接mysql了,那么現(xiàn)在php7其實(shí)也可以正常連接mysql,mysql不需要做任何配置修改。