周一了,我又TM的開始碼代碼了,各種BUG各種有,讓我抓腮撓耳,我還是只適合做安靜的美男子,上次我們安裝完nginx,今天開始學(xué)習(xí)編譯安裝php,我安裝的要安裝的是php5.6
連接ssh后 進(jìn)入下載文件目錄 /home/jiaruo/Downloads
wget下載php 地址php官方有 我下載的是5.6
<pre>wget http://hk1.php.net/get/php-5.6.27.tar.gz/from/this/mirror
</pre>
下載完畢 我們用ls 命令查看 多了 個(gè)mirror文件 因?yàn)椴皇菈嚎s包,我們把它重命名為php-5.6.27.tar.gz 來(lái)進(jìn)行解壓 <pre> mv mirror php-5.6.27.tar.gz</pre>
在ls查看 果然多了個(gè) php-5.6.27.tar.gz的文件 然后來(lái)進(jìn)行解壓<pre>tar xvf php-5.6.27.tar.gz</pre>
解壓完畢后 ls查看是否多了個(gè)php-5.6.27的文件夾,如果沒有 請(qǐng)重新下載解壓, 進(jìn)入php-5.6.27這個(gè)文件夾 ls 查看 是否有configure 這個(gè)文件 ,有的話 開始檢測(cè)
通常在php安裝的時(shí)候 需要用到gd mysql mbstring 等模塊,所以我們?cè)诰幾g的時(shí)候,先把常用的都安裝上,如果以后還有需要,請(qǐng)重新編譯
<pre>
./configure --prefix=/usr/local/php5.6
--with-gd
--with-freetype-dir
--enable-gd-native-ttf
--enable-mysqlnd
--with-pdo-mysql=mysqlnd
--with-openssl
--with-mcrypt
--enable-mbstring
--enable-zip
--enable-fpm #是讓PHP作為獨(dú)立的進(jìn)程來(lái)運(yùn)行(默認(rèn)占據(jù)9000端口)
</pre>
執(zhí)行上面命令,我這里發(fā)現(xiàn)報(bào)錯(cuò)<pre> error: xml2-config not found. Please check your libxml2 installation.</pre>
意思就是找不到libxml2,找不到我們就安裝被,這還不簡(jiǎn)單,我們使用yum安裝
<pre>
yum install libxml2
yum install libxml2-devel -y
</pre>
執(zhí)行完上面兩條命令后,如果沒報(bào)錯(cuò)我們來(lái)檢查下libxml2是否安裝
<pre>[root@localhost ~]# find / -name "xml2-config"
/usr/bin/xml2-config</pre>
顯示在usr/bin/有個(gè)xml2-config的文件
說明安裝成功 我們重新執(zhí)行上面編譯php的命令
<pre>
./configure --prefix=/usr/local/php5.6
--with-gd
--with-freetype-dir
--enable-gd-native-ttf
--enable-mysqlnd
--with-pdo-mysql=mysqlnd
--with-openssl
--with-mcrypt
--enable-mbstring
--enable-zip
--enable-fpm #是讓PHP作為獨(dú)立的進(jìn)程來(lái)運(yùn)行(默認(rèn)占據(jù)9000端口)
</pre>
一定是在php源碼包執(zhí)行,否則找不到該目錄,執(zhí)行完畢 又出現(xiàn)error<pre>configure: error: Cannot find OpenSSL's <evp.h></pre>
缺少OpenSSL繼續(xù)安裝
<pre>yum install openssl-devel</pre>執(zhí)行完畢,繼續(xù)編譯php ,又報(bào)錯(cuò),我尼瑪
<pre>configure: error: png.h not found.</pre>說是png.h什么玩意找不到
百度下,繼續(xù)安裝<pre>yum install libpng-devel</pre>,安裝完畢,繼續(xù)編譯php,想哭的心都有了,我想安裝個(gè)php就這么費(fèi)勁么,算了 不跟他較勁
<pre>報(bào)錯(cuò):Configure: error: freetype.h not found</pre>繼續(xù)安裝<pre>yum install freetype-devel</pre>我都不想說什么了
又報(bào)錯(cuò),??<pre>configure: error: mcrypt.h not found. Please reinstall libmcrypt.</pre>
百度下<pre>yum install php-mcrypt libmcrypt libmcrypt-devel</pre>
安裝提示找不到改包,說明linux自帶的yum源不存在這個(gè)包我們?nèi)Q個(gè)yum源
<pre>yum install epel-release //擴(kuò)展包更新包
yum update //更新yum源
yum install libmcrypt libmcrypt-devel mcrypt mhash
</pre>上面是三條命令
完事之后繼續(xù)安裝php
提示<pre>Thank you for using PHP.</pre>,繼續(xù)<pre>make && make install</pre>,如果有報(bào)錯(cuò),就解決錯(cuò)誤問題,百度是個(gè)好東西
php5.4之后php作為一個(gè)獨(dú)立的進(jìn)程來(lái)運(yùn)行,所以我們來(lái)啟動(dòng)php,進(jìn)入cd /usr/local/php5.6/目錄 里面有個(gè)sbin的文件夾,里面放的都是可執(zhí)行文件進(jìn)入sbin里面發(fā)現(xiàn)有個(gè)php-fpm 我們直接來(lái)運(yùn)行 直接報(bào)錯(cuò)<pre>
[23-Oct-2016 19:31:07] ERROR: failed to open configuration file '/usr/local/php5.6/etc/php-fpm.conf': No such file or directory (2)
[23-Oct-2016 19:31:07] ERROR: failed to load configuration file '/usr/local/php5.6/etc/php-fpm.conf'
[23-Oct-2016 19:31:07] ERROR: FPM initialization failed
You have new mail in /var/spool/mail/root
</pre>
就是找不到/usr/local/php5.6/etc/php-fpm.conf唄
我們進(jìn)etc文件夾看看 發(fā)現(xiàn)有一個(gè)php-fpm.conf.default 直接copy一份試試在啟動(dòng) <pre>./php-fpm </pre>沒有任何信息,說明啟動(dòng)成功
<pre>ps aux |grep php</pre>
<pre>root 51508 0.0 0.3 169816 3968 ? Ss 19:33 0:00 php-fpm: master process (/usr/local/php5.6/etc/php-fpm.conf)
nobody 51509 0.0 0.3 169816 3520 ? S 19:33 0:00 php-fpm: pool www
nobody 51510 0.0 0.3 169816 3520 ? S 19:33 0:00 php-fpm: pool www</pre>
php進(jìn)程在運(yùn)行

說明php編譯完畢 并且安裝成功,但是nginx和php都是獨(dú)立的程序,目前還沒有任何關(guān)系,需要我們來(lái)把他們兩個(gè)打通在,接下來(lái)就開始打通兩者,寫在下一篇文章里