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便擁有
8 H- t! X+ R8 G優點( }, R* h& o) k$ d; F
❶記憶體管理、❷以不同身分執行apache(不只有apache),方便網頁空間搬移時 ,網頁經常出現「權限不足」的問題。; f) B, o0 K  U% J) x% t9 r& e! C* [
〖安裝〗:  [/ A* B( B$ S0 @
《1》Apache已安裝
3 M1 i; r. _8 a; |; x6 L* r《2》安裝mod_fastcgi
0 N; C# Y6 G% j1 i: X
  1. cd /usr/tmp
    " p& D6 J* q+ r7 f: r
  2. wget [url]http://www.fastcgi.com/dist/mod_fastcgi-current.tar.gz[/url]* m! N  P% O7 {4 s5 g, q
  3. tar -zxvf mod_fastcgi-current.tar.gz5 y, Z: `1 ?; B- {
  4. cd mod_fastcgi-2.4.63 K$ m* y& M; t. Q
  5. cp Makefile.AP2 Makefile
    - y7 K  @; z3 P1 f
  6. make top_dir=/usr/lib64/httpd  #我的主機是64bit
    . y8 v1 K  P8 ?9 w8 `
  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」,於是
" i/ V* q- p' F2 G- u0 Q! E
  1. yum install libtool httpd-devel apr apr-devel
複製代碼
再執行一次8 Y  Z8 a& I- Y2 j
  1. make top_dir=/usr/lib64/httpd
    # D& ~1 u$ J# z' U/ X5 N
  2. make install
複製代碼
若安裝成功 , 應該會在 /usr/lib64/httpd/modules/ 下看見 mod_fastcgi.so4 E1 }' c3 ]1 n% M, k' K1 Q
《3》安裝php-fpm
) x- E- ^9 H  N6 v% g, X0 }php-fpm , 直接由 remi(http://www.pigo.idv.tw/archives/242) 安裝 , 例如 yum -–enablerepo=remi install php-fpm      * V+ s6 v3 L& m0 ~* @/ l& X
環境設定8 ~- H; M: j7 ^
《1》Apache改為worker模式(效率較佳):修改/etc/sysconfig/httpd
- x9 m$ Z; q* s3 S
  1. <font size="3">#HTTPD=/usr/sbin/httpd.worker    將註解#拿掉</font>
複製代碼
《2》由Apache載入mod_fastcgi.so/ Z% E' W; h- ]: ~+ d
/etc/httpd/conf.d/下新增一檔mod_fastcgi.conf,內容:

& f& \2 }$ O8 i4 X4 ^
  1. LoadModule fastcgi_module modules/mod_fastcgi.so
複製代碼
《3》/etc/httpd/conf.d/php.conf 一定要包含以下片段(若無自行增加)
' v/ O! \0 n- t1 p. S
  1. <IfModule prefork.c>
    , W- f# W# ^$ I: M. P; \( E* P
  2. #根據不同的 PID 模式給予不同的 PHP 運作模組: {2 D7 S" P5 ^7 T
  3.   LoadModule php5_module modules/libphp5.so3 M  K* Y# j3 |
  4. </IfModule>
    $ n0 s- P4 W# G. g8 l+ P
  5. <IfModule worker.c>
    1 Q: ^$ T; c" L3 a3 o6 ]( n+ _
  6.   LoadModule php5_module modules/libphp5-zts.so+ @6 _) d* p+ i1 m) Y- |! g% j
  7. </IfModule>
    6 I' G2 s$ |( \6 Z; u
  8. AddHandler php5-script .php  #所以副檔名一定要是 .php 結尾!
    3 h& E) N/ m0 k/ o
複製代碼
《4》設定php-fpm4 L- J8 l+ r+ {$ Y. e
vi /etc/php-fpm.d/www.conf
  1. ;listen = 127.0.0.1:9000' J' J, h& z1 P  a8 \# S9 o0 r; Y* W' s
  2. listen = /var/run/php-fpm.sock
    , G/ t! J4 T8 }
  3. ; php-fpm 正常啟動會自動產生php-fpm.sock
    ' H+ s& Y* v' Y$ l. m
複製代碼
並且新增kevin.conf(可copy www.conf),並修改成:
0 m; F; z# F; p, G
  1. listen = /var/run/php-fpm_av4u.sock
    / c+ i& ]$ n$ `( O' Y: h$ Z$ @3 e
  2. user = kevin  F/ E: U2 o. R3 v3 A# |) k+ g+ m
  3. group = kevin
複製代碼
啟動php-fpm service php-fpm start
0 e7 w% J* P3 \, c3 [" ?2 ?- E# {9 `重啟httpd      
service httpd reload% g! E" ]# ^/ g" A& h8 b
結果9 \# c% \4 Q3 l, X3 H" L$ B
經測試發現跟之前一樣,仍然有權限不足情形(kevin皆chmod  755),可見仍未成功,決定Apache改成nginx(比較容易),再試.................
7 q% c8 C: \* i6 p- Q3 M( z  c




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