|
〖前言〗:我使用php-fpm主要目的是為了,可以用我的Linux帳號(例如kevin)去啟動Apache,如此Apache的權限等同(equivalant)於kevin的權限,如此,我的網站的根目錄(例如 /home/kevin/),只要kevin擁有的權限,apache便擁有。
* c/ b7 U4 x3 X5 a/ h& t〖優點〗:
+ k0 r3 X* F. r, R q- ^❶記憶體管理、❷以不同身分執行apache(不只有apache),方便網頁空間搬移時 ,網頁經常出現「權限不足」的問題。
- T9 n7 w# H, ^4 b1 M〖安裝〗:1 ? w6 j) m" m/ [
《1》Apache已安裝
' l1 }: B" J" L) z7 ~《2》安裝mod_fastcgi 0 o9 U5 E5 I" F. c/ C% p
- cd /usr/tmp
1 b4 \6 t: p- y q! j4 d" U - wget [url]http://www.fastcgi.com/dist/mod_fastcgi-current.tar.gz[/url]; k3 b8 p( x3 q
- tar -zxvf mod_fastcgi-current.tar.gz
- d( P; }, o' ]; z; I) f) C - cd mod_fastcgi-2.4.6
2 q2 e7 L: D, H% g4 d5 O; _ - cp Makefile.AP2 Makefile+ H4 l" K! H/ b
- make top_dir=/usr/lib64/httpd #我的主機是64bit
* H# t d9 I* Q# [) o; P+ [ - 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」,於是+ N0 r1 L/ M# t; |* E ], u: {
- yum install libtool httpd-devel apr apr-devel
複製代碼 再執行一次( f/ V0 F! S0 z% J
- make top_dir=/usr/lib64/httpd
( m" g( n6 e6 F4 ~& A8 l - make install
複製代碼 若安裝成功 , 應該會在 /usr/lib64/httpd/modules/ 下看見 mod_fastcgi.so7 ^: B5 w6 i' z `7 a" _- ^9 j
《3》安裝php-fpm
/ o7 q+ N+ a- ~% h& h5 r4 Wphp-fpm , 直接由 remi(http://www.pigo.idv.tw/archives/242) 安裝 , 例如 yum -–enablerepo=remi install php-fpm
% n& R) h- ]; S C R 〖環境設定〗:9 F- g8 p% u1 ~ O3 R
《1》Apache改為worker模式(效率較佳):修改/etc/sysconfig/httpd
6 n, q$ j9 h8 P3 O1 C- <font size="3">#HTTPD=/usr/sbin/httpd.worker 將註解#拿掉</font>
複製代碼 《2》由Apache載入mod_fastcgi.so; t; v, g Z4 W# v2 Q6 w; x
/etc/httpd/conf.d/下新增一檔mod_fastcgi.conf,內容:: A" x5 ]4 O: Z# s+ u
- LoadModule fastcgi_module modules/mod_fastcgi.so
複製代碼 《3》/etc/httpd/conf.d/php.conf 一定要包含以下片段(若無自行增加). P: A u9 c, y; T( x: z/ @
- <IfModule prefork.c>5 H4 G2 `1 }6 C, [) P
- #根據不同的 PID 模式給予不同的 PHP 運作模組4 k! q! l( b3 W( D; f3 A9 X
- LoadModule php5_module modules/libphp5.so8 F. h' F' g+ e8 t; d% d6 l
- </IfModule>% W$ S: C! z( h, i5 N
- <IfModule worker.c>! ~! M0 D0 S7 Z0 `
- LoadModule php5_module modules/libphp5-zts.so
& Y1 [: Y5 S4 x0 _ - </IfModule>
, l* M7 P @2 l @ - AddHandler php5-script .php #所以副檔名一定要是 .php 結尾!
# t5 ?" ]: N. U
複製代碼 《4》設定php-fpm
: [" u8 B/ m6 \ u7 Evi /etc/php-fpm.d/www.conf- ;listen = 127.0.0.1:9000& q/ N+ }5 C4 x/ t$ j# e
- listen = /var/run/php-fpm.sock' f) }. R% ^! [
- ; php-fpm 正常啟動會自動產生php-fpm.sock* [" s$ `6 ]* r2 R5 }0 u
複製代碼 並且新增kevin.conf(可copy www.conf),並修改成:
# d6 n. K/ j4 v. H% v* p- listen = /var/run/php-fpm_av4u.sock
7 d8 v3 o4 p7 a2 z5 L1 _9 I" @ - user = kevin( {- k) M7 ]2 o& n4 `
- group = kevin
複製代碼 啟動php-fpm ⇨ service php-fpm start
5 [% a, `7 V! ^% ^$ H- h重啟httpd ⇨ service httpd reload
* @2 ]+ G& V" Q y. H* G〖結果〗:: l, i% f1 f! n+ X% c0 k& N+ r
經測試發現跟之前一樣,仍然有權限不足情形(kevin皆chmod 755),可見仍未成功,決定Apache改成nginx(比較容易),再試.................
u; I2 m( P ~) `+ P' o6 A' I |
|
-->
|