|
tid=201&〖前言〗:我使用php-fpm主要目的是為了,可以用我的Linux帳號(例如kevin)去啟動Apache,如此Apache的權限等同(equivalant)於kevin的權限,如此,我的網站的根目錄(例如 /home/kevin/),只要kevin擁有的權限,apache便擁有。
5 ~. n! S) K" R$ |〖優點〗:; J& V/ H9 Q0 [6 `
❶記憶體管理、❷以不同身分執行apache(不只有apache),方便網頁空間搬移時 ,網頁經常出現「權限不足」的問題。- I, b4 L/ D# H* g
〖安裝〗:
% j# W0 r% C& Z9 g) o1 D9 l! X《1》Apache已安裝
2 \' k- S0 {7 s《2》安裝mod_fastcgi
) M) H1 g1 J' m5 }- cd /usr/tmp
/ V9 K/ t, {, x! r5 z1 i - wget [url]http://www.fastcgi.com/dist/mod_fastcgi-current.tar.gz[/url]
, i' p: o1 m* m" [* K# G: x - tar -zxvf mod_fastcgi-current.tar.gz
, N+ Y' P$ P, \( N# i - cd mod_fastcgi-2.4.6& w: }1 f0 F2 D7 p9 A
- cp Makefile.AP2 Makefile
( V' T4 p8 Z. Q Y - make top_dir=/usr/lib64/httpd #我的主機是64bit, j* N. F- l- C8 }* `
- 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」,於是
v! ~3 H/ r' v- yum install libtool httpd-devel apr apr-devel
複製代碼 再執行一次0 M& I0 B+ Z! V5 L! s$ L
- make top_dir=/usr/lib64/httpd
, Q; e* n3 I% l( `! I1 E - make install
複製代碼 若安裝成功 , 應該會在 /usr/lib64/httpd/modules/ 下看見 mod_fastcgi.so. k; }! R! x6 c) ?/ A
《3》安裝php-fpm
3 S/ p2 k& j6 j+ Dphp-fpm , 直接由 remi(http://www.pigo.idv.tw/archives/242) 安裝 , 例如 yum -–enablerepo=remi install php-fpm ; ^* b+ y: I; r- h' O' q+ J* t& e
〖環境設定〗:
J% Q. n; Q' {* }# P" {4 T) b9 t《1》Apache改為worker模式(效率較佳):修改/etc/sysconfig/httpd
3 x+ q7 R3 K' f) d; z5 B- <font size="3">#HTTPD=/usr/sbin/httpd.worker 將註解#拿掉</font>
複製代碼 《2》由Apache載入mod_fastcgi.so* p! c7 m" S8 \4 x( a. z; R
/etc/httpd/conf.d/下新增一檔mod_fastcgi.conf,內容:
6 D; c3 F' A3 E7 d$ r' c- LoadModule fastcgi_module modules/mod_fastcgi.so
複製代碼 《3》/etc/httpd/conf.d/php.conf 一定要包含以下片段(若無自行增加)3 f) _1 T! ?! Y2 ^3 L( ]7 x8 ?
- <IfModule prefork.c>
B; w) E/ ^. Y - #根據不同的 PID 模式給予不同的 PHP 運作模組
4 v8 K) {/ s/ u. c$ n6 i - LoadModule php5_module modules/libphp5.so
5 e' G8 c3 d5 E2 X - </IfModule>
+ y3 M& K4 M- _% d% [9 D - <IfModule worker.c>! |5 ?: s- T& P/ ~
- LoadModule php5_module modules/libphp5-zts.so1 e* z1 F, K2 e! J" t
- </IfModule>1 u& `1 v8 p6 y- d! ~
- AddHandler php5-script .php #所以副檔名一定要是 .php 結尾!# f9 i- d! A' o& ^! b" Y8 J
複製代碼 《4》設定php-fpm
7 B2 z8 @# p5 o; @vi /etc/php-fpm.d/www.conf- ;listen = 127.0.0.1:9000
4 }$ _# g0 S) x& _ - listen = /var/run/php-fpm.sock
3 h C" S2 d5 d" A: C7 e. | - ; php-fpm 正常啟動會自動產生php-fpm.sock
4 s7 t# V- T" ]* D
複製代碼 並且新增kevin.conf(可copy www.conf),並修改成:
0 v9 h, _$ a+ ~( \$ ^# o6 O- listen = /var/run/php-fpm_av4u.sock3 V, v9 J) J% M0 y- H
- user = kevin
$ |. {/ N; l T, G) K0 U - group = kevin
複製代碼 啟動php-fpm ⇨ service php-fpm start9 s$ `2 \/ G6 d& [
重啟httpd ⇨ service httpd reload) F! U& \# v: G+ d* C. |
〖結果〗:
5 i: J2 a2 P0 [+ ?經測試發現跟之前一樣,仍然有權限不足情形(kevin皆chmod 755),可見仍未成功,決定Apache改成nginx(比較容易),再試................., ]+ U3 @- `) u! h
|
|