|
〖前言〗:我使用php-fpm主要目的是為了,可以用我的Linux帳號(例如kevin)去啟動Apache,如此Apache的權限等同(equivalant)於kevin的權限,如此,我的網站的根目錄(例如 /home/kevin/),只要kevin擁有的權限,apache便擁有。- z0 f7 r* b$ r6 X* y0 u) V
〖優點〗:$ U5 W# c: u. ~ K! O$ T& \4 c
❶記憶體管理、❷以不同身分執行apache(不只有apache),方便網頁空間搬移時 ,網頁經常出現「權限不足」的問題。! ]9 Y! z" m* k0 F4 c% ~( {1 X+ N
〖安裝〗:
, _0 d8 q5 @1 \《1》Apache已安裝
% q8 L2 H# W7 w《2》安裝mod_fastcgi
; B% j& b6 Z4 o. Z0 m. C) j- cd /usr/tmp) z& m/ V/ K" I; B; C' Y5 a5 f
- wget [url]http://www.fastcgi.com/dist/mod_fastcgi-current.tar.gz[/url]5 y) @7 J2 X6 D4 j
- tar -zxvf mod_fastcgi-current.tar.gz w9 o8 ?6 F. X0 F; w0 q' T
- cd mod_fastcgi-2.4.6
) \; g4 {/ m$ V3 B- |5 Q - cp Makefile.AP2 Makefile
. F ]* [% v$ o0 M - make top_dir=/usr/lib64/httpd #我的主機是64bit
! I' H5 m$ P- c7 f - 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」,於是
' B7 ~! b. q* _- yum install libtool httpd-devel apr apr-devel
複製代碼 再執行一次
& j! A1 w: M& y1 `+ ?( U- make top_dir=/usr/lib64/httpd6 H; Y8 N4 J- n" F5 C+ _! L( E& t
- make install
複製代碼 若安裝成功 , 應該會在 /usr/lib64/httpd/modules/ 下看見 mod_fastcgi.so/ ]" f0 g: f$ t" ]+ e
《3》安裝php-fpm8 E7 b3 _( W+ P1 G ~6 w4 L
php-fpm , 直接由 remi(http://www.pigo.idv.tw/archives/242) 安裝 , 例如 yum -–enablerepo=remi install php-fpm
0 y2 p9 ]4 l, ?7 p; n, [8 Z 〖環境設定〗:) R: C5 m( V! ^
《1》Apache改為worker模式(效率較佳):修改/etc/sysconfig/httpd
- J( `* i, Q* g% N/ M" ?4 P/ f- <font size="3">#HTTPD=/usr/sbin/httpd.worker 將註解#拿掉</font>
複製代碼 《2》由Apache載入mod_fastcgi.so& R3 K* ]: h0 s! J+ M( y
/etc/httpd/conf.d/下新增一檔mod_fastcgi.conf,內容:( g; b/ H% A) I
- LoadModule fastcgi_module modules/mod_fastcgi.so
複製代碼 《3》/etc/httpd/conf.d/php.conf 一定要包含以下片段(若無自行增加)! U( ]$ j5 X# ^% t$ i% D/ v
- <IfModule prefork.c>
4 C# h. }5 C0 [3 e! y - #根據不同的 PID 模式給予不同的 PHP 運作模組
4 y- t5 }6 X5 g - LoadModule php5_module modules/libphp5.so
8 w; O$ s$ z; |$ ?( G7 E - </IfModule>
+ k: l: o" j& \! V* P: v" } - <IfModule worker.c>0 n7 @0 F' k* A T' b! D" E0 y
- LoadModule php5_module modules/libphp5-zts.so) P" r' f( e# L. j( J6 b' ?2 a* T
- </IfModule>; z$ f* W0 p/ T
- AddHandler php5-script .php #所以副檔名一定要是 .php 結尾!% _3 e; f0 z1 ]$ i9 d. s
複製代碼 《4》設定php-fpm
/ [8 E3 D. p' t) q$ q7 ivi /etc/php-fpm.d/www.conf- ;listen = 127.0.0.1:9000; ~7 K' l$ W- W) S- V$ ^' o
- listen = /var/run/php-fpm.sock, Y! e: U9 l8 |' A
- ; php-fpm 正常啟動會自動產生php-fpm.sock
' T, C: I+ I3 n$ Z4 F( _- \
複製代碼 並且新增kevin.conf(可copy www.conf),並修改成:1 w y# b+ c& r
- listen = /var/run/php-fpm_av4u.sock" `7 w' ^* X, ^7 e; H8 o8 v9 `
- user = kevin
- { p: V9 P m. S) h( A1 w$ E0 H - group = kevin
複製代碼 啟動php-fpm ⇨ service php-fpm start7 }( Z( s( I* n2 U2 w
重啟httpd ⇨ service httpd reload
; a# d/ J& _. S, R9 k; |) L〖結果〗:
9 D- k6 [- Z: e! p# k% c經測試發現跟之前一樣,仍然有權限不足情形(kevin皆chmod 755),可見仍未成功,決定Apache改成nginx(比較容易),再試.................
8 ~- v" {5 ^0 ?5 Q9 | |
|
-->
|