52AV手機A片王|52AV.ONE

標題: Apache + mod_fastcgi + php-fpm(不同身分的使用者可執行Apache) [打印本頁]

作者: coav4u    時間: 2015-1-10 07:37
標題: Apache + mod_fastcgi + php-fpm(不同身分的使用者可執行Apache)
前言我使用php-fpm主要目的是為了可以用我的Linux帳號(例如kevin)去啟動Apache如此Apache的權限等同(equivalant)於kevin的權限如此我的網站的根目錄(例如 /home/kevin/),只要kevin擁有的權限apache便擁有* R) O6 ?1 A& }3 O
優點4 S) z% k0 q" n- w4 h& {
❶記憶體管理、❷以不同身分執行apache(不只有apache),方便網頁空間搬移時 ,網頁經常出現「權限不足」的問題。
- v7 C* }8 W2 W2 W2 k, L/ ^" k  q〖安裝〗:
$ U: s7 B+ K9 y《1》Apache已安裝
  Q) {" Z+ q$ V( T《2》安裝mod_fastcgi
. Y; e% O9 I; ^) r& J  }! S
  1. cd /usr/tmp
    + `$ ^# h5 m0 ^6 \4 m
  2. wget [url]http://www.fastcgi.com/dist/mod_fastcgi-current.tar.gz[/url]. p1 V2 \+ y1 M8 I: ?8 V
  3. tar -zxvf mod_fastcgi-current.tar.gz! a3 k, F8 a3 f8 \/ R8 u: q& M: d
  4. cd mod_fastcgi-2.4.6
    ; e1 H+ s8 o3 I: y
  5. cp Makefile.AP2 Makefile0 p* X9 n2 e6 W! Y( {: W
  6. make top_dir=/usr/lib64/httpd  #我的主機是64bit0 ^% I; d; U/ {. y* l! ~+ i2 I! J
  7. 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」,於是; y. _+ [4 y+ [' W2 E, y& }& [
  1. yum install libtool httpd-devel apr apr-devel
複製代碼
再執行一次
+ }4 K1 d: @$ ~: H
  1. make top_dir=/usr/lib64/httpd* y  n8 r# w) B" I" {# {6 [
  2. make install
複製代碼
若安裝成功 , 應該會在 /usr/lib64/httpd/modules/ 下看見 mod_fastcgi.so
8 W: Y3 i9 o6 M/ V( \! l' T
《3》安裝php-fpm
# F5 }! R8 u2 bphp-fpm , 直接由 remi(http://www.pigo.idv.tw/archives/242) 安裝 , 例如 yum -–enablerepo=remi install php-fpm      ( C% K' u6 F# Q
環境設定
9 [# S  u& u% z: g5 X9 w6 V《1》Apache改為worker模式(效率較佳):修改/etc/sysconfig/httpd
9 v' {) y. S, |' G; X5 ]
  1. <font size="3">#HTTPD=/usr/sbin/httpd.worker    將註解#拿掉</font>
複製代碼
《2》由Apache載入mod_fastcgi.so
' w& f- _" e) a; R  H' j! Y( q/etc/httpd/conf.d/下新增一檔mod_fastcgi.conf,內容:
$ V! b: Q( B( ]- D+ ?' j. @
  1. LoadModule fastcgi_module modules/mod_fastcgi.so
複製代碼
《3》/etc/httpd/conf.d/php.conf 一定要包含以下片段(若無自行增加)* ~" t0 X  {2 Q8 O* B
  1. <IfModule prefork.c>
    ' u+ w/ z, ]6 E0 o$ R# I) |
  2. #根據不同的 PID 模式給予不同的 PHP 運作模組
    4 g9 z+ x8 I, N2 s  h" v/ h
  3.   LoadModule php5_module modules/libphp5.so
      m- g; n- j, M8 [# V5 q' [0 p
  4. </IfModule>
    # R9 V1 u: N! ]% M, Y0 {  K: i
  5. <IfModule worker.c># y& V- O" D3 ^9 H
  6.   LoadModule php5_module modules/libphp5-zts.so
    " X3 \/ V2 A1 o% W
  7. </IfModule># K2 B, Q, `$ O* L. p
  8. AddHandler php5-script .php  #所以副檔名一定要是 .php 結尾!
    ; ~' @" C3 Z4 ^) ~+ G
複製代碼
《4》設定php-fpm! |! c" j+ C9 V2 P6 v
vi /etc/php-fpm.d/www.conf
  1. ;listen = 127.0.0.1:9000/ L5 @6 r. U7 T* f- J
  2. listen = /var/run/php-fpm.sock. R' ?7 y8 r) a  M' D
  3. ; php-fpm 正常啟動會自動產生php-fpm.sock
    $ D/ s5 x! ?; k8 z
複製代碼
並且新增kevin.conf(可copy www.conf),並修改成:  \' V7 j! z4 V  m9 l9 V) V
  1. listen = /var/run/php-fpm_av4u.sock
    8 z+ {. L5 j& P* G1 n, ]
  2. user = kevin- t! u3 j$ N" X
  3. group = kevin
複製代碼
啟動php-fpm service php-fpm start) g) ^1 h4 U) Z. }
重啟httpd      
service httpd reload
6 X3 W- o$ R5 D! n1 H6 u# H6 V結果
5 Y& u2 ?0 T5 Z4 [% \2 }, _' a經測試發現跟之前一樣,仍然有權限不足情形(kevin皆chmod  755),可見仍未成功,決定Apache改成nginx(比較容易),再試.................
, E  a6 ^& k6 r4 W' Z




歡迎光臨 52AV手機A片王|52AV.ONE (https://www.itech.casa/) Powered by Discuz! X3.2