LAMP-fpm
配置apache-2.4.23以fpm方式的php-5.6.26
一、apache、MySQL的安裝與前一部分相同;請根據(jù)其進行安裝;
http://jiayimeng.blog.51cto.com/10604001/1858857
二、編譯安裝php-5.6.26
1、解決依賴關(guān)系:
請配置好yum源(可以是本地系統(tǒng)光盤)后執(zhí)行如下命令:
| 1 2 3 | [root@centfils?~]#?yum?-y?groupinstall?"X?Software?Development"? [root@centfils?~]#?yum?install?libmcrypt?libmcrypt-devel?-y [root@centfils?~]#?yum?install?mhash?mhash-devel?-y |
2、編譯安裝php-5.4.26
首先下載源碼包至本地目錄
| 1 2 3 4 5 6 7 8 9 10 11 12 | #?tar?xf?php-5.6.26.tar.bz2 #?cd?php-5.6.26 #?./configure?--prefix=/usr/local/php5?--with-mysql=/usr/local/mysql?--with-openssl?--with-mysqli=/usr/local/mysql/bin/mysql_config?--enable-mbstring?--with-freetype-dir?--with-jpeg-dir?--with-png-dir?--with-zlib?--with-libxml-dir=/usr?--enable-xml??--enable-sockets?--enable-fpm?--with-mcrypt??--with-config-file-path=/etc?--with-config-file-scan-dir=/etc/php.d?--with-bz2 說明:如果使用PHP5.3以上版本,為了鏈接MySQL數(shù)據(jù)庫,可以指定mysqlnd,這樣在本機就不需要先安裝MySQL或MySQL開發(fā)包了。mysqlnd從php?5.3開始可用,可以編譯時綁定到它(而不用和具體的MySQL客戶端庫綁定形成依賴),但從PHP?5.4開始它就是默認設(shè)置了。 #?./configure?--with-mysql=mysqlnd?--with-pdo-mysql=mysqlnd?--with-mysqli=mysqlnd [root@centfils?php-5.6.26]#?make?&&?make?install 為php提供配置文件: #?cp?php.ini-production?/etc/php.ini |
3、配置php-fpm
?
為php-fpm提供SysV init腳本,并將其添加至服務(wù)列表:
| 1 2 3 4 | #?cp?sapi/fpm/init.d.php-fpm??/etc/rc.d/init.d/php-fpm #?chmod?+x?/etc/rc.d/init.d/php-fpm #?chkconfig?--add?php-fpm #?chkconfig?php-fpm?on |
為php-fpm提供配置文件:
| 1 | #?cp?/usr/local/php/etc/php-fpm.conf.default?/usr/local/php/etc/php-fpm.conf |
| 1 2 3 4 5 6 7 8 9 10 11 | 編輯php-fpm的配置文件: #?vim?/usr/local/php/etc/php-fpm.conf 配置fpm的相關(guān)選項為你所需要的值,并啟用pid文件(如下最后一行): pm.max_children?=?50 pm.start_servers?=?5 pm.min_spare_servers?=?2 pm.max_spare_servers?=?8 pid?=?/usr/local/php/var/run/php-fpm.pid? 接下來就可以啟動php-fpm了: #?service?php-fpm?start |
| 1 2 3 4 5 6 | 使用如下命令來驗正(如果此命令輸出有中幾個php-fpm進程就說明啟動成功了): #?ps?aux?|?grep?php-fpm 默認情況下,fpm監(jiān)聽在127.0.0.1的9000端口,也可以使用如下命令驗正其是否已經(jīng)監(jiān)聽在相應(yīng)的套接字。 #?netstat?-tnlp?|?grep?php-fpm tcp????????0??????0?127.0.0.1:9000??????????????0.0.0.0:*???????????????????LISTEN??????689/php-fpm |
三、配置httpd-2.4.9
1、啟用httpd的相關(guān)模塊
在Apache httpd 2.4以后已經(jīng)專門有一個模塊針對FastCGI的實現(xiàn),此模塊為mod_proxy_fcgi.so,它其實是作為mod_proxy.so模塊的擴充,因此,這兩個模塊都要加載
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_fcgi_module modules/mod_proxy_fcgi.so
2、配置虛擬主機支持使用fcgi
在相應(yīng)的虛擬主機中添加類似如下兩行。
? ProxyRequests Off
? ProxyPassMatch ^/(.*\.php)$ fcgi://127.0.0.1:9000/PATH/TO/DOCUMENT_ROOT/$1
http://www.magedu.com/admin/index.php
/web/host1/admin/index.php
fcgi://127.0.0.1:9000/web/hosts/admin/index.php
例如:
<VirtualHost *:80>
? ? DocumentRoot "/www/magedu.com"
? ? ServerName magedu.com
? ? ServerAlias www.magedu.com
? ProxyRequests Off
? ProxyPassMatch ^/(.*\.php)$ fcgi://127.0.0.1:9000/www/magedu.com/$1
? ? <Directory "/www/magedu.com">
? ? ? ? Options none
? ? ? ? AllowOverride none
? ? ? ? Require all granted
? ? </Directory>
</VirtualHost>
ProxyRequests Off:關(guān)閉正向代理
ProxyPassMatch:把以.php結(jié)尾的文件請求發(fā)送到php-fpm進程,php-fpm至少需要知道運行的目錄和URI,所以這里直接在fcgi://127.0.0.1:9000后指明了這兩個參數(shù),其它的參數(shù)的傳遞已經(jīng)被mod_proxy_fcgi.so進行了封裝,不需要手動指定。
3、編輯apache配置文件httpd.conf,讓apache能識別php格式的頁面,并支持php格式的主頁
| 1 2 3 4 5 6 7 8 9 10 | ?#?vim?/etc/httpd/httpd.conf ?1、添加如下二行 ???AddType?application/x-httpd-php??.php ???AddType?application/x-httpd-php-source??.phps ?2、定位至DirectoryIndex?index.html? ???修改為: ????DirectoryIndex??index.php??index.html 補充:Apache?httpd?2.4以前的版本中,要么把PHP作為Apache的模塊運行,要么添加一個第三方模塊支持PHP-FPM實現(xiàn)。 |
本文轉(zhuǎn)自 元嬰期 51CTO博客,原文鏈接:http://blog.51cto.com/jiayimeng/1858917
總結(jié)
- 上一篇: 魔兽克罗刀哪里出 《魔兽争霸III
- 下一篇: linux云自动化运维基础知识23(DD