|
〖前言〗:我使用php-fpm主要目的是為了,可以用我的Linux帳號(例如kevin)去啟動Apache,如此Apache的權限等同(equivalant)於kevin的權限,如此,我的網站的根目錄(例如 /home/kevin/),只要kevin擁有的權限,apache便擁有。
2 |3 d9 Y+ B- }- M0 l2 d; b! P8 W〖優點〗:% F9 [8 V: A K8 Z A
❶記憶體管理、❷以不同身分執行apache(不只有apache),方便網頁空間搬移時 ,網頁經常出現「權限不足」的問題。& N% I. K$ y# r$ {; d% b: w! F5 ]
〖安裝〗:& f. V7 p: \7 L! ?
《1》Apache已安裝( l1 j9 c6 e' w
《2》安裝mod_fastcgi : S: Z8 N1 Y/ `5 H* |' ?
- cd /usr/tmp
3 H( ?3 _" q3 a8 t5 v& X; U# p - wget [url]http://www.fastcgi.com/dist/mod_fastcgi-current.tar.gz[/url]" P8 g7 i g0 ^
- tar -zxvf mod_fastcgi-current.tar.gz
7 y+ o2 Q u* a! C5 u - cd mod_fastcgi-2.4.6$ G7 @% N8 b/ y6 X
- cp Makefile.AP2 Makefile# @- B$ p1 ?0 A7 K. F' o
- make top_dir=/usr/lib64/httpd #我的主機是64bit3 J+ p& ?6 Q; {& c U0 M/ P& S
- 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」,於是# I/ t7 w( v3 N7 R0 \
- yum install libtool httpd-devel apr apr-devel
複製代碼 再執行一次
. u0 M J- _) K$ D k1 C- make top_dir=/usr/lib64/httpd" t% p2 n4 |/ f" N3 X8 R3 w2 z
- make install
複製代碼 若安裝成功 , 應該會在 /usr/lib64/httpd/modules/ 下看見 mod_fastcgi.so+ q" `& w8 X! V
《3》安裝php-fpm' O# u) A; U7 s- p( h2 j$ A
php-fpm , 直接由 remi(http://www.pigo.idv.tw/archives/242) 安裝 , 例如 yum -–enablerepo=remi install php-fpm * ?7 F( v' }! z5 P f1 u2 K, k I% \
〖環境設定〗:& i6 J7 @5 V( S) z4 K1 p; X! b
《1》Apache改為worker模式(效率較佳):修改/etc/sysconfig/httpd6 ]- G+ f* W* u" ?- q' U \
- <font size="3">#HTTPD=/usr/sbin/httpd.worker 將註解#拿掉</font>
複製代碼 《2》由Apache載入mod_fastcgi.so* p& W/ X+ v- g6 P
/etc/httpd/conf.d/下新增一檔mod_fastcgi.conf,內容:
( S* b, J+ U/ k4 L' {- LoadModule fastcgi_module modules/mod_fastcgi.so
複製代碼 《3》/etc/httpd/conf.d/php.conf 一定要包含以下片段(若無自行增加)# R0 g4 U6 S$ r* ^. o+ N# M2 y5 @
- <IfModule prefork.c>. S4 g+ S1 M1 X c! s! p
- #根據不同的 PID 模式給予不同的 PHP 運作模組: i: V. w3 v+ n9 w
- LoadModule php5_module modules/libphp5.so( t. U1 D/ Q4 B1 v
- </IfModule>
5 L8 G! P [8 ~, _2 g - <IfModule worker.c>
9 V; ^: `6 [* O3 f7 o+ o4 v! ? - LoadModule php5_module modules/libphp5-zts.so
& \. k0 W" c5 _( T% ?2 ] - </IfModule>
. P+ I: ~1 Z. A1 a9 y* A' L+ Z - AddHandler php5-script .php #所以副檔名一定要是 .php 結尾!
6 Q" m$ ~- ~ { _3 c3 D
複製代碼 《4》設定php-fpm& E+ D0 A. b' F0 E& I
vi /etc/php-fpm.d/www.conf- ;listen = 127.0.0.1:9000
. }, v- u7 |7 P" H0 N$ _/ g - listen = /var/run/php-fpm.sock0 I$ q5 N# u, ]1 f: F9 E: `
- ; php-fpm 正常啟動會自動產生php-fpm.sock: f$ P: `, `3 m1 t0 [
複製代碼 並且新增kevin.conf(可copy www.conf),並修改成:+ u( G4 ]7 o) E3 e
- listen = /var/run/php-fpm_av4u.sock+ Q6 Z0 @# _ \" ], n
- user = kevin8 e z" U! r6 o# C1 p' D G
- group = kevin
複製代碼 啟動php-fpm ⇨ service php-fpm start
3 A' `# G1 j3 K: `1 S重啟httpd ⇨ service httpd reload4 S" m4 N% O7 }. s& a2 Y
〖結果〗:& n1 L& u3 g7 ^" Y. e
經測試發現跟之前一樣,仍然有權限不足情形(kevin皆chmod 755),可見仍未成功,決定Apache改成nginx(比較容易),再試.................
& O: v; ^. ^3 O! W f1 s4 I |
|
-->
|