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便擁有
" G- m  H: ~) {% T+ n  a% O, X0 l9 m  ^優點
; u% I) \- h: \: F; u; ~❶記憶體管理、❷以不同身分執行apache(不只有apache),方便網頁空間搬移時 ,網頁經常出現「權限不足」的問題。6 u1 ]) b- R% K
〖安裝〗:
/ ?6 K1 Z, {; o; a2 c《1》Apache已安裝- W& Y1 P, Z2 J
《2》安裝mod_fastcgi
, i. m, p+ P6 Y. c( m
  1. cd /usr/tmp
    ) \( _: u1 Z" b! @' z  O- A
  2. wget [url]http://www.fastcgi.com/dist/mod_fastcgi-current.tar.gz[/url]1 A9 M3 D% n) q6 H" r7 _
  3. tar -zxvf mod_fastcgi-current.tar.gz5 N; S& s5 ?# @2 ~
  4. cd mod_fastcgi-2.4.6* b4 A; p( I0 \% J5 Z, h
  5. cp Makefile.AP2 Makefile3 `& a( r# Y2 \
  6. make top_dir=/usr/lib64/httpd  #我的主機是64bit
    1 G) u1 M8 v$ R
  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」,於是6 S$ Q# S( @: `
  1. yum install libtool httpd-devel apr apr-devel
複製代碼
再執行一次8 X" H9 i* N" z
  1. make top_dir=/usr/lib64/httpd
    & n% c! t/ T  W$ P) {+ |% i- h
  2. make install
複製代碼
若安裝成功 , 應該會在 /usr/lib64/httpd/modules/ 下看見 mod_fastcgi.so
& g# G; p& ~# Y6 ?: l$ `
《3》安裝php-fpm
4 ?* g5 R9 ]1 \$ n9 ephp-fpm , 直接由 remi(http://www.pigo.idv.tw/archives/242) 安裝 , 例如 yum -–enablerepo=remi install php-fpm      
3 T' G( S0 R) S/ j" V# S 環境設定' |5 }- f! W3 v4 ], ]$ o. u& T# S9 X
《1》Apache改為worker模式(效率較佳):修改/etc/sysconfig/httpd
) R# o  U$ w( X4 e: V/ u2 r. ]4 R* J
  1. <font size="3">#HTTPD=/usr/sbin/httpd.worker    將註解#拿掉</font>
複製代碼
《2》由Apache載入mod_fastcgi.so
% _: V7 U/ p! P0 |/ b/etc/httpd/conf.d/下新增一檔mod_fastcgi.conf,內容:
/ O  s9 |: |+ q9 t, i0 C
  1. LoadModule fastcgi_module modules/mod_fastcgi.so
複製代碼
《3》/etc/httpd/conf.d/php.conf 一定要包含以下片段(若無自行增加)
5 D- H, F3 p2 p. o: n, ]1 O
  1. <IfModule prefork.c>
    , T# e" b3 d+ e( x3 H
  2. #根據不同的 PID 模式給予不同的 PHP 運作模組
    5 j( ?: v  g- d, k/ ^
  3.   LoadModule php5_module modules/libphp5.so
    / @& P" m0 z, p5 l) t/ ?9 f
  4. </IfModule>9 l2 G! X$ o' D& `, s2 |
  5. <IfModule worker.c>( D& P1 S- O. K. F2 [  `8 \# [/ ^
  6.   LoadModule php5_module modules/libphp5-zts.so
    ( @7 }! F( n& `
  7. </IfModule>
    3 b: S3 I0 u4 S2 W
  8. AddHandler php5-script .php  #所以副檔名一定要是 .php 結尾!% I  y' G: S( E1 K0 z4 l9 h
複製代碼
《4》設定php-fpm
$ v$ t3 o" j; N$ O( y) s+ R- `vi /etc/php-fpm.d/www.conf
  1. ;listen = 127.0.0.1:9000
    , H1 f2 _$ C6 F+ I
  2. listen = /var/run/php-fpm.sock
    * v- i/ [: {5 t* |2 `! q1 Q
  3. ; php-fpm 正常啟動會自動產生php-fpm.sock
    6 Y* x% C4 e. c3 f' I8 R" C, m
複製代碼
並且新增kevin.conf(可copy www.conf),並修改成:
# F! w# K; R: w  k: r+ l
  1. listen = /var/run/php-fpm_av4u.sock
    3 p) }  m4 u/ X0 C- N0 O( Q
  2. user = kevin
    1 e* j4 Y0 s/ e4 z9 p8 a8 r7 M$ ?
  3. group = kevin
複製代碼
啟動php-fpm service php-fpm start% W7 T3 q2 Y% \0 j: H/ h
重啟httpd      
service httpd reload& ]4 P' U  g5 ], f, F
結果
0 _# i. ~8 J! h6 u% i經測試發現跟之前一樣,仍然有權限不足情形(kevin皆chmod  755),可見仍未成功,決定Apache改成nginx(比較容易),再試.................( ]' B: N* O. o$ f





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