|
|
tid=201&〖前言〗:我使用php-fpm主要目的是為了,可以用我的Linux帳號(例如kevin)去啟動Apache,如此Apache的權限等同(equivalant)於kevin的權限,如此,我的網站的根目錄(例如 /home/kevin/),只要kevin擁有的權限,apache便擁有。* E2 C7 `% t) e9 d y5 z* r
〖優點〗:
9 x; v$ L! U {2 G0 g z❶記憶體管理、❷以不同身分執行apache(不只有apache),方便網頁空間搬移時 ,網頁經常出現「權限不足」的問題。
. @1 y# ?5 t2 y" f; J〖安裝〗:
3 y2 V$ N1 m9 I9 ^+ t《1》Apache已安裝
3 v- ~) Q L, f* \+ U7 _" g《2》安裝mod_fastcgi / `/ N9 H5 o9 {2 ~
- cd /usr/tmp
/ }' ] \4 K6 x& u& Y2 y9 B$ [9 o% A - wget [url]http://www.fastcgi.com/dist/mod_fastcgi-current.tar.gz[/url]
3 ^8 r+ D( T2 p, U1 v. d8 x - tar -zxvf mod_fastcgi-current.tar.gz
! O6 h" u t5 p4 [4 h, s+ b2 n - cd mod_fastcgi-2.4.6
$ K& M/ W6 q' C% L6 A ] - cp Makefile.AP2 Makefile) [3 S$ I2 H& v5 |; k& @
- make top_dir=/usr/lib64/httpd #我的主機是64bit3 Q7 c. g- j2 Q$ ]1 t9 j) U% j
- 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」,於是. X/ a; L% D) O b- ^7 x; Z
- yum install libtool httpd-devel apr apr-devel
複製代碼 再執行一次6 n" d7 A* Y) H% m9 W
- make top_dir=/usr/lib64/httpd7 C7 N* p. n* F
- make install
複製代碼 若安裝成功 , 應該會在 /usr/lib64/httpd/modules/ 下看見 mod_fastcgi.so
! d6 f, @0 M- F- z) ?% @7 a% Q《3》安裝php-fpm
- x) b/ e/ \$ k9 E' s. C$ |php-fpm , 直接由 remi(http://www.pigo.idv.tw/archives/242) 安裝 , 例如 yum -–enablerepo=remi install php-fpm 4 G& G J A& n( Y& e6 O( @$ g
〖環境設定〗:9 f- b& b8 i1 S
《1》Apache改為worker模式(效率較佳):修改/etc/sysconfig/httpd
: K2 U2 `3 o& _& P- <font size="3">#HTTPD=/usr/sbin/httpd.worker 將註解#拿掉</font>
複製代碼 《2》由Apache載入mod_fastcgi.so- I" E0 z( A" N+ p0 V% H7 C1 g+ a
/etc/httpd/conf.d/下新增一檔mod_fastcgi.conf,內容:
; \* f( s* w% U/ s- LoadModule fastcgi_module modules/mod_fastcgi.so
複製代碼 《3》/etc/httpd/conf.d/php.conf 一定要包含以下片段(若無自行增加)
, j7 b6 N5 V; _# ]& J3 T* [. a- <IfModule prefork.c>" j& R9 q) T; V
- #根據不同的 PID 模式給予不同的 PHP 運作模組9 I+ P3 M) d, e, i* |+ e
- LoadModule php5_module modules/libphp5.so# K, h& q) {8 w% P: T- z, M
- </IfModule>$ P* X2 f; E8 {3 A* v/ N7 M% Y. {+ B$ N
- <IfModule worker.c>
* d" T' _& ]' U1 r* `# y4 E- c - LoadModule php5_module modules/libphp5-zts.so
" z" ?3 J0 D. P. K8 X& W6 y - </IfModule>
+ W" z5 P3 h, S" S - AddHandler php5-script .php #所以副檔名一定要是 .php 結尾!& a/ m% b E$ a/ b1 m$ t+ d8 F
複製代碼 《4》設定php-fpm
. V0 @$ c' J2 s& c4 |4 u6 B6 Svi /etc/php-fpm.d/www.conf- ;listen = 127.0.0.1:9000- e4 l z9 T7 l0 l; C: r
- listen = /var/run/php-fpm.sock0 S' I' E$ R2 g
- ; php-fpm 正常啟動會自動產生php-fpm.sock
& ^0 M$ W' E# ^7 u% s* w
複製代碼 並且新增kevin.conf(可copy www.conf),並修改成:$ F0 l5 g$ H" K4 m
- listen = /var/run/php-fpm_av4u.sock% ?# @; ^; R5 X+ s: I
- user = kevin
) x2 n7 j! l& R x8 @ j, \/ C# y - group = kevin
複製代碼 啟動php-fpm ⇨ service php-fpm start& S( ^6 j6 N" R3 D( {3 C5 \
重啟httpd ⇨ service httpd reload2 N3 J, W4 ~ C; q+ q; k. O
〖結果〗:
: Q; N5 Z* {2 K經測試發現跟之前一樣,仍然有權限不足情形(kevin皆chmod 755),可見仍未成功,決定Apache改成nginx(比較容易),再試.................
- f5 O- V' l+ v4 S ~5 i |
|