|
tid=201&〖前言〗:我使用php-fpm主要目的是為了,可以用我的Linux帳號(例如kevin)去啟動Apache,如此Apache的權限等同(equivalant)於kevin的權限,如此,我的網站的根目錄(例如 /home/kevin/),只要kevin擁有的權限,apache便擁有。
5 f9 s9 u& p' p〖優點〗:
+ {0 j' A5 p5 K/ ]. k& }' {❶記憶體管理、❷以不同身分執行apache(不只有apache),方便網頁空間搬移時 ,網頁經常出現「權限不足」的問題。) [+ r* j; O7 T' |$ g5 }
〖安裝〗:* ^6 d8 {- G2 L, P# g" a
《1》Apache已安裝( N% j5 Y5 g' B. F4 \
《2》安裝mod_fastcgi
' M4 C j% _% c- cd /usr/tmp0 m G+ E) a7 s6 b9 G
- wget [url]http://www.fastcgi.com/dist/mod_fastcgi-current.tar.gz[/url]
" o) p) k( G* F - tar -zxvf mod_fastcgi-current.tar.gz
0 J) B1 ^1 s/ a9 E u- m8 p. Q, t - cd mod_fastcgi-2.4.6
8 Q& |. w4 H C! m. y; n; u A2 w+ f - cp Makefile.AP2 Makefile
$ x4 z. d' I9 S8 J5 h0 ^: u - make top_dir=/usr/lib64/httpd #我的主機是64bit
% F! m( @' @% U0 j2 i - 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」,於是
- V6 G! Q1 N0 a" x; v6 v1 x- yum install libtool httpd-devel apr apr-devel
複製代碼 再執行一次
2 o' C, \4 J& L3 t4 Z1 Y B- make top_dir=/usr/lib64/httpd2 a5 c! T1 ]& S& W
- make install
複製代碼 若安裝成功 , 應該會在 /usr/lib64/httpd/modules/ 下看見 mod_fastcgi.so
0 V& X8 ], h' [$ e9 E《3》安裝php-fpm
3 T3 n" J B1 R3 uphp-fpm , 直接由 remi(http://www.pigo.idv.tw/archives/242) 安裝 , 例如 yum -–enablerepo=remi install php-fpm
6 q. D: D0 y8 J. ~6 ]6 E 〖環境設定〗:
/ O R3 y; k; ?9 n" D6 k《1》Apache改為worker模式(效率較佳):修改/etc/sysconfig/httpd
9 S1 b; i% x! T! Z8 c- <font size="3">#HTTPD=/usr/sbin/httpd.worker 將註解#拿掉</font>
複製代碼 《2》由Apache載入mod_fastcgi.so
: C n% W. D. y- i; t/etc/httpd/conf.d/下新增一檔mod_fastcgi.conf,內容:5 I0 I5 @/ Z9 G- g. Y
- LoadModule fastcgi_module modules/mod_fastcgi.so
複製代碼 《3》/etc/httpd/conf.d/php.conf 一定要包含以下片段(若無自行增加)2 X1 C, e8 D3 f/ I; I4 o2 S
- <IfModule prefork.c>
- y6 K1 h) i9 v4 D' F6 _$ h L7 g - #根據不同的 PID 模式給予不同的 PHP 運作模組
9 Z+ X( \- ]6 u6 D( M" @ - LoadModule php5_module modules/libphp5.so
( m& x' L3 q! P - </IfModule>" V9 p6 N# K+ n, ? v8 U+ ^( d
- <IfModule worker.c>5 D1 e0 u, `. }9 O: \
- LoadModule php5_module modules/libphp5-zts.so( i& K5 U1 D" s6 B; g& Z Y
- </IfModule>/ k7 ^9 k7 M% s4 q" y& y9 \. D6 J
- AddHandler php5-script .php #所以副檔名一定要是 .php 結尾!
7 W' V) A, k8 j
複製代碼 《4》設定php-fpm
8 N; G& O0 j0 B( Z- I+ U+ Vvi /etc/php-fpm.d/www.conf- ;listen = 127.0.0.1:9000+ B. j" w% t( F0 l' H7 V
- listen = /var/run/php-fpm.sock
8 _& @6 h6 n/ j' {5 v n - ; php-fpm 正常啟動會自動產生php-fpm.sock
2 P8 P# O5 ^9 c6 F5 R
複製代碼 並且新增kevin.conf(可copy www.conf),並修改成:
3 ~9 J2 b- ] S' ?7 v$ x- listen = /var/run/php-fpm_av4u.sock
! v- c) W- f) g! W5 n% h+ C - user = kevin
2 o' o# V$ @4 b7 g6 r7 c - group = kevin
複製代碼 啟動php-fpm ⇨ service php-fpm start
2 w7 y3 O- _7 B' n4 H! A重啟httpd ⇨ service httpd reload
' B1 d& ~! w' o4 D6 z〖結果〗:5 H5 o# p, ^, T5 I( `3 w
經測試發現跟之前一樣,仍然有權限不足情形(kevin皆chmod 755),可見仍未成功,決定Apache改成nginx(比較容易),再試.................( G0 Q* c3 w/ M) l
|
|