PHP源码安装及配置——以fastCGI的方式与httpd整合
? ? 在前一篇博文中介紹了LAMP的安裝及配置。這里專門介紹PHP以fastCGI的方式與httpd整合的情況下,具體如何編譯及配置。而且假定httpd、mysql均如前一篇博文介紹的安裝配置完畢。php也采取一樣版本的源碼包php-5.6.1.tar.bz2。
1. ?編譯安裝php
# tar xf php-5.6.1.tar.bz2
# cd php-5.6.1
# ./configure --prefix=/usr/local/php --enable-sockets --enable-mbstring --enable-xml --enable-fpm --with-bz2 --with-openssl --with-freetype-dir --with-jpeg-dir --with-png-dir --with-zlib --with-mcrypt --with-mysql=/usr/local/mysql --with-mysqli=/usr/local/mysql/bin/mysql_config --with-config-file-path=/etc/php --with-config-file-scan-dir=/etc/php.d
# make && make install
注:編譯時(shí)請(qǐng)確保機(jī)器的內(nèi)存大于1G,或者在./configure 的選項(xiàng)中加上“--disable-fileinfo”,否則可能出現(xiàn)編譯失敗的情況。
2. ?為php提供配置文件
# cp php.ini-production /etc/php.ini
3. ?配置php-fpm
a) 為php-fpm提供配置文件
? ? ?# cp /usr/local/php/etc/php-fpm.conf.default /usr/local/php/etc/php-fpm.conf
b) 編輯php-fpm的配置文件,調(diào)整相關(guān)的運(yùn)行參數(shù)作優(yōu)化。當(dāng)然使用默認(rèn)值也能正常運(yùn)行。
? ? ?# vim /usr/local/php/etc/php-fpm.conf
? ? ?配置fpm的相關(guān)選項(xiàng)為你所需要的值,并啟用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
c) 為php-fpm提供SysV init腳本,并將其添加至服務(wù)列表
? ? ? ?# 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
4. ?啟動(dòng)php-fpm服務(wù),測(cè)試運(yùn)行狀態(tài)
# service php-fpm start
# netstat -tnlp | grep php-fpm
默認(rèn)情況下,fpm監(jiān)聽(tīng)在127.0.0.1的9000端口
5. ?修改httpd的主配置文件httpd.conf
a) 啟用httpd的相關(guān)模塊
? ? LoadModule proxy_module modules/mod_proxy.so
? ? LoadModule proxy_fcgi_module modules/mod_proxy_fcgi.so
b) 在相應(yīng)的位置添加如下行
? ? AddType application/x-httpd-php ?.php
? ? AddType application/x-httpd-php-source ?.phps
c) 修改DirectoryIndex 的定義為:
? ? DirectoryIndex ?index.php ?index.html
6. ?配置虛擬主機(jī)支持使用fcgi
在相應(yīng)的虛擬主機(jī)中添加類似如下兩行:
ProxyRequests Off
? ? ? ProxyPassMatch ^/(.*\.php)$ fcgi://127.0.0.1:9000/PATH/TO/DOCUMENT_ROOT/$1
參數(shù)選項(xiàng)含義解釋
ProxyRequests Off:關(guān)閉正向代理
ProxyPassMatch:把以.php結(jié)尾的文件請(qǐng)求發(fā)送到php-fpm進(jìn)程,php-fpm至少需要知道運(yùn)行的目錄和URI,所以這里直接在fcgi://127.0.0.1:9000后指明了這兩個(gè)參數(shù),其它的參數(shù)的傳遞已經(jīng)被mod_proxy_fcgi.so進(jìn)行了封裝,不需要手動(dòng)指定。
舉例:
<VirtualHost *:80>
? ?DocumentRoot "/www/htdocs/test.com"
? ?ServerName www.test.com
? ?ServerAlias test.com
? ?ProxyRequests Off
? ?ProxyPassMatch ^/(.*\.php)$ fcgi://127.0.0.1:9000/www/htdocs/test.com/$1
? ?<Directory "/www/htdocs/test.com">
? ? ? ?Options none
? ? ? ?AllowOverride none
? ? ? ?Require all granted
? ?</Directory>
</VirtualHost>
轉(zhuǎn)載于:https://blog.51cto.com/deshanrenjian/1561648
總結(jié)
以上是生活随笔為你收集整理的PHP源码安装及配置——以fastCGI的方式与httpd整合的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: hibernate annotation
- 下一篇: 动态规划算法php,php算法学习之动态