|
|
〖前言〗:我使用php-fpm主要目的是為了,可以用我的Linux帳號(例如kevin)去啟動Apache,如此Apache的權限等同(equivalant)於kevin的權限,如此,我的網站的根目錄(例如 /home/kevin/),只要kevin擁有的權限,apache便擁有。/ [; c3 y% k7 i
〖優點〗:' p5 z# n; Z- M1 i9 D" a
❶記憶體管理、❷以不同身分執行apache(不只有apache),方便網頁空間搬移時 ,網頁經常出現「權限不足」的問題。( _2 W/ Y0 O* l3 s) l
〖安裝〗:
( ` y; N+ B$ F《1》Apache已安裝2 o, v# N) {* X/ d1 v
《2》安裝mod_fastcgi
1 t! \: p8 u3 S8 D6 Y- cd /usr/tmp1 W3 q7 x% a( e+ F
- wget [url]http://www.fastcgi.com/dist/mod_fastcgi-current.tar.gz[/url]3 h: N; O3 W1 V! A8 a9 w- a
- tar -zxvf mod_fastcgi-current.tar.gz* d% ~6 |3 M6 C8 c. t0 w
- cd mod_fastcgi-2.4.6* U8 W0 F; K. _8 N% I
- cp Makefile.AP2 Makefile
" Y9 R8 a7 Q+ U. q) k - make top_dir=/usr/lib64/httpd #我的主機是64bit8 ]7 f* l- W( r' O
- 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」,於是" a5 }1 H0 a) N+ \# [
- yum install libtool httpd-devel apr apr-devel
複製代碼 再執行一次3 o' ]/ T9 v' k5 P; b/ |
- make top_dir=/usr/lib64/httpd
9 u6 ?/ s4 g2 \ - make install
複製代碼 若安裝成功 , 應該會在 /usr/lib64/httpd/modules/ 下看見 mod_fastcgi.so
6 c/ m4 y$ {; g- Z8 o0 A+ s7 p9 \《3》安裝php-fpm
4 O! Z5 T7 k+ h& ?( o6 {: Sphp-fpm , 直接由 remi(http://www.pigo.idv.tw/archives/242) 安裝 , 例如 yum -–enablerepo=remi install php-fpm " J H" z9 S i' \: M0 A
〖環境設定〗:! ^. g" A) R5 w7 u& l6 l! E
《1》Apache改為worker模式(效率較佳):修改/etc/sysconfig/httpd8 \6 K6 V9 J( e/ w
- <font size="3">#HTTPD=/usr/sbin/httpd.worker 將註解#拿掉</font>
複製代碼 《2》由Apache載入mod_fastcgi.so4 `4 T3 Y4 B7 q, a2 y+ ^, K
/etc/httpd/conf.d/下新增一檔mod_fastcgi.conf,內容:6 A4 Q; K% r+ c7 j
- LoadModule fastcgi_module modules/mod_fastcgi.so
複製代碼 《3》/etc/httpd/conf.d/php.conf 一定要包含以下片段(若無自行增加)) z% P" T( s. @; |* U- _0 ~4 `
- <IfModule prefork.c>
' _( @, g2 v" a7 S F' g3 b - #根據不同的 PID 模式給予不同的 PHP 運作模組# m; w0 g+ X: E
- LoadModule php5_module modules/libphp5.so# Y1 F1 G' T, X
- </IfModule>+ O4 I! q' u' D' `+ T
- <IfModule worker.c>& k2 Q/ W5 E8 T# f3 z* @* U
- LoadModule php5_module modules/libphp5-zts.so% ?& D9 { q: Z- N& p2 t* G
- </IfModule>: H9 p+ y% ?0 A& Y
- AddHandler php5-script .php #所以副檔名一定要是 .php 結尾!. H N; b) n3 J' q3 w0 q
複製代碼 《4》設定php-fpm
/ n% h$ `3 u# u( Mvi /etc/php-fpm.d/www.conf- ;listen = 127.0.0.1:90006 Y% y# q# @2 B* X. }: k0 Y
- listen = /var/run/php-fpm.sock6 }: U, p; U0 [8 Y4 @
- ; php-fpm 正常啟動會自動產生php-fpm.sock1 q8 v: @. _' w0 [, \- w* V
複製代碼 並且新增kevin.conf(可copy www.conf),並修改成:
- t: \ T' J* @- K+ V- listen = /var/run/php-fpm_av4u.sock
2 h; L, i% s4 n/ ~/ i, [. l6 x - user = kevin
/ }: g7 `* t4 x - group = kevin
複製代碼 啟動php-fpm ⇨ service php-fpm start
6 ]; M1 C, k. c重啟httpd ⇨ service httpd reload
' P* `4 c9 |* w. S2 p〖結果〗:: ` c2 O9 p+ n+ L
經測試發現跟之前一樣,仍然有權限不足情形(kevin皆chmod 755),可見仍未成功,決定Apache改成nginx(比較容易),再試.................
* ~9 Z+ E* k6 p |
|
|