|
〖前言〗:我使用php-fpm主要目的是為了,可以用我的Linux帳號(例如kevin)去啟動Apache,如此Apache的權限等同(equivalant)於kevin的權限,如此,我的網站的根目錄(例如 /home/kevin/),只要kevin擁有的權限,apache便擁有。
6 S2 v( x8 r6 o, p) u4 w〖優點〗:
; `; v# o/ R9 A❶記憶體管理、❷以不同身分執行apache(不只有apache),方便網頁空間搬移時 ,網頁經常出現「權限不足」的問題。
% s* o. N3 z" Q; o8 H〖安裝〗:3 n: G' a( n$ q
《1》Apache已安裝
' @4 |" t8 R, B《2》安裝mod_fastcgi
( _& }4 _) a7 ]+ X" `- cd /usr/tmp& [( n% e# X7 i5 {: B8 \
- wget [url]http://www.fastcgi.com/dist/mod_fastcgi-current.tar.gz[/url]/ q5 ?) j; h) Z5 M: }/ Z) ]
- tar -zxvf mod_fastcgi-current.tar.gz/ C/ h% `$ i% _, j
- cd mod_fastcgi-2.4.6
0 \' C( O! D1 w6 |8 ^ - cp Makefile.AP2 Makefile, i5 V# E4 x4 B1 Y. ^/ w: W
- make top_dir=/usr/lib64/httpd #我的主機是64bit
' T b: |" z( r& l# l - 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」,於是% B5 `, M6 E! D) h: z- }/ c
- yum install libtool httpd-devel apr apr-devel
複製代碼 再執行一次
8 R H O, h. M8 h* X8 m- make top_dir=/usr/lib64/httpd, v1 V2 s% M7 e1 l3 d# _
- make install
複製代碼 若安裝成功 , 應該會在 /usr/lib64/httpd/modules/ 下看見 mod_fastcgi.so- C) M1 Y" |, i% y
《3》安裝php-fpm! f0 g* i. r9 j$ c
php-fpm , 直接由 remi(http://www.pigo.idv.tw/archives/242) 安裝 , 例如 yum -–enablerepo=remi install php-fpm + X1 L! f7 K% R+ F; u0 a P
〖環境設定〗:/ M7 u( _' R+ i& _! ?3 e
《1》Apache改為worker模式(效率較佳):修改/etc/sysconfig/httpd
1 y/ x: c" I9 E- <font size="3">#HTTPD=/usr/sbin/httpd.worker 將註解#拿掉</font>
複製代碼 《2》由Apache載入mod_fastcgi.so5 ~ I* `7 z3 j. z
/etc/httpd/conf.d/下新增一檔mod_fastcgi.conf,內容:: v" J) G9 A9 Q2 {
- LoadModule fastcgi_module modules/mod_fastcgi.so
複製代碼 《3》/etc/httpd/conf.d/php.conf 一定要包含以下片段(若無自行增加)
" J% S# k& S6 N- <IfModule prefork.c>
# s. C3 P* y+ u ]5 a+ G" { - #根據不同的 PID 模式給予不同的 PHP 運作模組
0 ^. _) ] g8 H+ C7 e! D8 {& V - LoadModule php5_module modules/libphp5.so$ O3 N( N/ `+ f* G8 B3 e* y3 B
- </IfModule>
3 i$ v* F8 ]9 T7 ` - <IfModule worker.c>: z' ^4 C, t9 g
- LoadModule php5_module modules/libphp5-zts.so3 ~4 f% m3 v6 u% m1 g" ]: l
- </IfModule>
) w& P9 O: R: C& U' W5 Q9 Y- { - AddHandler php5-script .php #所以副檔名一定要是 .php 結尾!9 H5 z; j7 y. W
複製代碼 《4》設定php-fpm# {% T& l% f* B, J3 @/ t; G
vi /etc/php-fpm.d/www.conf- ;listen = 127.0.0.1:9000
3 l2 Q1 X9 V7 Y8 l3 T# U! c - listen = /var/run/php-fpm.sock' S0 Y- ~4 Q9 U1 p
- ; php-fpm 正常啟動會自動產生php-fpm.sock
/ b, H" ^: F6 t
複製代碼 並且新增kevin.conf(可copy www.conf),並修改成:
5 e, J7 _7 u" _+ q9 s- listen = /var/run/php-fpm_av4u.sock
1 n6 z% R, C: u6 M0 f y3 ?9 K$ C - user = kevin" J) S! ^5 r: H' R# j$ |6 F$ U7 l6 J
- group = kevin
複製代碼 啟動php-fpm ⇨ service php-fpm start
- F8 J7 [9 N, c7 g重啟httpd ⇨ service httpd reload
6 L6 v3 w/ ?3 Q" V- O- b〖結果〗:5 `3 [; d! ~" p
經測試發現跟之前一樣,仍然有權限不足情形(kevin皆chmod 755),可見仍未成功,決定Apache改成nginx(比較容易),再試.................! u$ z# e! {0 T/ q
|
|
-->
|