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便擁有5 `- b/ m7 q( ^5 U9 S
優點5 h) U* _5 m  X, p
❶記憶體管理、❷以不同身分執行apache(不只有apache),方便網頁空間搬移時 ,網頁經常出現「權限不足」的問題。2 n+ y' t' s6 G" [, d2 X2 n
〖安裝〗:4 R1 q" A3 e) V0 F. |- U
《1》Apache已安裝8 o  @" T2 B$ R3 R8 W+ |
《2》安裝mod_fastcgi

- w, e$ b! \" z, p
  1. cd /usr/tmp
    5 `* x; w0 z, F2 f3 u
  2. wget [url]http://www.fastcgi.com/dist/mod_fastcgi-current.tar.gz[/url]1 e0 O1 O0 ^+ Q! a) E
  3. tar -zxvf mod_fastcgi-current.tar.gz% ?1 o) T8 A+ H3 S$ ^3 T
  4. cd mod_fastcgi-2.4.6
    ) g) M! k- _8 I
  5. cp Makefile.AP2 Makefile& H* J3 j# g/ {9 k4 Z$ w' z
  6. make top_dir=/usr/lib64/httpd  #我的主機是64bit
    , e1 n( J4 _" {
  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 F7 Q" `1 s' c" Y" F! r" G/ e
  1. yum install libtool httpd-devel apr apr-devel
複製代碼
再執行一次
& S/ _& K2 |  b! R  n
  1. make top_dir=/usr/lib64/httpd- @, X  \0 j9 p) v# b' a* \
  2. make install
複製代碼
若安裝成功 , 應該會在 /usr/lib64/httpd/modules/ 下看見 mod_fastcgi.so
: I; T& _7 C  Z; l  x& P
《3》安裝php-fpm) e- E" G; }" {0 a% N, {, f/ l( G( Z1 P
php-fpm , 直接由 remi(http://www.pigo.idv.tw/archives/242) 安裝 , 例如 yum -–enablerepo=remi install php-fpm      
2 |; }- v/ M9 W" ? 環境設定
) \8 @+ x) X9 W$ k! X4 ]; d《1》Apache改為worker模式(效率較佳):修改/etc/sysconfig/httpd
) {+ R9 h  F: Z
  1. <font size="3">#HTTPD=/usr/sbin/httpd.worker    將註解#拿掉</font>
複製代碼
《2》由Apache載入mod_fastcgi.so
( d/ w4 t! S$ q9 S% C; v% A/etc/httpd/conf.d/下新增一檔mod_fastcgi.conf,內容:
5 e$ Y% ]% a+ b  m) v/ ?* H
  1. LoadModule fastcgi_module modules/mod_fastcgi.so
複製代碼
《3》/etc/httpd/conf.d/php.conf 一定要包含以下片段(若無自行增加)
1 g% F) j1 L( ?' o! B2 b) T6 f
  1. <IfModule prefork.c>
    7 x3 s0 e; C7 `
  2. #根據不同的 PID 模式給予不同的 PHP 運作模組
    2 }; `1 Z2 A  y
  3.   LoadModule php5_module modules/libphp5.so& t: {3 Y3 R  D- M4 [9 _
  4. </IfModule>
    4 ?* U& |3 T+ U5 A! w" i6 d# H
  5. <IfModule worker.c>8 W- u& W( f2 |7 }# |6 R0 Z
  6.   LoadModule php5_module modules/libphp5-zts.so: G3 Z) f  C$ j1 H& I
  7. </IfModule>0 U: B5 q  C) W8 M7 o+ V& o+ T* q5 D7 R
  8. AddHandler php5-script .php  #所以副檔名一定要是 .php 結尾!
    8 E0 e+ G5 {7 N, `; h$ w
複製代碼
《4》設定php-fpm! o' G2 \: e, j
vi /etc/php-fpm.d/www.conf
  1. ;listen = 127.0.0.1:9000: q' x, c" }+ D! M
  2. listen = /var/run/php-fpm.sock
    1 }6 h5 R! `$ g$ B$ p. M
  3. ; php-fpm 正常啟動會自動產生php-fpm.sock
    : d; o6 K$ |$ s/ d8 n
複製代碼
並且新增kevin.conf(可copy www.conf),並修改成:
, J* J, S' t. g9 E) x  o8 j! S
  1. listen = /var/run/php-fpm_av4u.sock
    0 Z+ h9 ~6 ]& M% J" I6 `0 y- v/ a
  2. user = kevin# a" @3 ?  I+ [' y
  3. group = kevin
複製代碼
啟動php-fpm service php-fpm start$ i+ K' f; `1 g5 M
重啟httpd      
service httpd reload; q/ O2 d) I5 ~7 p* \% t0 m) C
結果
* e5 O) z# {* \; H$ ^6 s經測試發現跟之前一樣,仍然有權限不足情形(kevin皆chmod  755),可見仍未成功,決定Apache改成nginx(比較容易),再試.................! A; Q/ b) R. Y4 c  C





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