coav4u 發表於 2015-1-10 07:37:43

Apache + mod_fastcgi + php-fpm(不同身分的使用者可執行Apache)

〖前言〗:我使用php-fpm主要目的是為了,可以用我的Linux帳號(例如kevin)去啟動Apache,如此Apache的權限等同(equivalant)於kevin的權限,如此,我的網站的根目錄(例如 /home/kevin/),只要kevin擁有的權限,apache便擁有。
〖優點〗:
❶記憶體管理、❷以不同身分執行apache(不只有apache),方便網頁空間搬移時 ,網頁經常出現「權限不足」的問題。
〖安裝〗:
《1》Apache已安裝
《2》安裝mod_fastcgi
cd /usr/tmp
wget http://www.fastcgi.com/dist/mod_fastcgi-current.tar.gz
tar -zxvf mod_fastcgi-current.tar.gz
cd mod_fastcgi-2.4.6
cp Makefile.AP2 Makefile
make top_dir=/usr/lib64/httpd#我的主機是64bit
make install當執行至 make top_dir=/usr/lib64/httpd 時出現錯誤 : No rule to make target '/usr/lib64/httpd/build/special.mk' ,原因是缺少套件「libtool」「httpd-devel」「apr-devel」及「apr」,於是
yum install libtool httpd-devel apr apr-devel再執行一次
make top_dir=/usr/lib64/httpd
make install若安裝成功 , 應該會在 /usr/lib64/httpd/modules/ 下看見 mod_fastcgi.so
《3》安裝php-fpm
php-fpm , 直接由 remi(http://www.pigo.idv.tw/archives/242) 安裝 , 例如 yum -–enablerepo=remi install php-fpm    
〖環境設定〗:
《1》Apache改為worker模式(效率較佳):修改/etc/sysconfig/httpd
<font size="3">#HTTPD=/usr/sbin/httpd.worker    將註解#拿掉</font>《2》由Apache載入mod_fastcgi.so
/etc/httpd/conf.d/下新增一檔mod_fastcgi.conf,內容:
LoadModule fastcgi_module modules/mod_fastcgi.so《3》/etc/httpd/conf.d/php.conf 一定要包含以下片段(若無自行增加)
<IfModule prefork.c>
#根據不同的 PID 模式給予不同的 PHP 運作模組
LoadModule php5_module modules/libphp5.so
</IfModule>
<IfModule worker.c>
LoadModule php5_module modules/libphp5-zts.so
</IfModule>
AddHandler php5-script .php#所以副檔名一定要是 .php 結尾!
《4》設定php-fpm
vi /etc/php-fpm.d/www.conf;listen = 127.0.0.1:9000
listen = /var/run/php-fpm.sock
; php-fpm 正常啟動會自動產生php-fpm.sock
並且新增kevin.conf(可copy www.conf),並修改成:
listen = /var/run/php-fpm_av4u.sock
user = kevin
group = kevin啟動php-fpm ⇨ service php-fpm start
重啟httpd       ⇨ service httpd reload
〖結果〗:
經測試發現跟之前一樣,仍然有權限不足情形(kevin皆chmod755),可見仍未成功,決定Apache改成nginx(比較容易),再試.................
頁: [1]
查看完整版本: Apache + mod_fastcgi + php-fpm(不同身分的使用者可執行Apache)