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便擁有
9 r: N# A9 ?) x, a6 N- ~7 x  k優點! A! D7 g# D; Y! w
❶記憶體管理、❷以不同身分執行apache(不只有apache),方便網頁空間搬移時 ,網頁經常出現「權限不足」的問題。
$ V1 r5 A6 {2 E2 o( n- S2 `/ u〖安裝〗:
3 T+ a& z5 G5 C7 j- ~% |《1》Apache已安裝
0 f$ t- K6 X  K* t《2》安裝mod_fastcgi
- [5 s, `# h6 J8 f
  1. cd /usr/tmp
    ' ~" @/ T4 L+ U
  2. wget [url]http://www.fastcgi.com/dist/mod_fastcgi-current.tar.gz[/url]
    $ b1 q& j/ Z: \$ L: d8 t  ]
  3. tar -zxvf mod_fastcgi-current.tar.gz
    ) J) O2 k: u7 x8 L$ r0 Y! T
  4. cd mod_fastcgi-2.4.6
    8 E. M7 `. V1 M, J
  5. cp Makefile.AP2 Makefile
    - Y) R! {# F) n7 N; x( x; L
  6. make top_dir=/usr/lib64/httpd  #我的主機是64bit5 R; {6 ]* s8 X$ l6 P, P: 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」,於是
! D1 g( H1 l' K/ |( X6 k! l
  1. yum install libtool httpd-devel apr apr-devel
複製代碼
再執行一次3 y- C; s4 b8 p- q/ ~1 @6 q4 [
  1. make top_dir=/usr/lib64/httpd5 D$ V1 D5 B/ n
  2. make install
複製代碼
若安裝成功 , 應該會在 /usr/lib64/httpd/modules/ 下看見 mod_fastcgi.so
, S9 D! x# d) `5 j; {: D$ t: C. m
《3》安裝php-fpm
0 o' o9 d4 _; H9 H$ j% W$ W  s8 x) jphp-fpm , 直接由 remi(http://www.pigo.idv.tw/archives/242) 安裝 , 例如 yum -–enablerepo=remi install php-fpm      % I' j2 F8 u7 D1 d
環境設定4 y0 V$ \  n" T
《1》Apache改為worker模式(效率較佳):修改/etc/sysconfig/httpd+ |+ B) n! ^3 a: V
  1. <font size="3">#HTTPD=/usr/sbin/httpd.worker    將註解#拿掉</font>
複製代碼
《2》由Apache載入mod_fastcgi.so2 x8 i7 y& U$ ^
/etc/httpd/conf.d/下新增一檔mod_fastcgi.conf,內容:

7 C$ h1 ^$ M8 D( ?
  1. LoadModule fastcgi_module modules/mod_fastcgi.so
複製代碼
《3》/etc/httpd/conf.d/php.conf 一定要包含以下片段(若無自行增加)
: t* Y0 Z5 q+ M; T9 J# t
  1. <IfModule prefork.c>
    1 A1 N. ?: e  w/ \+ ^* \
  2. #根據不同的 PID 模式給予不同的 PHP 運作模組7 p- M7 w1 H! G- b* s: `8 E9 s
  3.   LoadModule php5_module modules/libphp5.so
    0 C3 l" r$ c9 d& ^$ ^
  4. </IfModule>
    * k0 Z+ w& U8 @% r* j3 h
  5. <IfModule worker.c>5 R  E# z* h% U: b. d
  6.   LoadModule php5_module modules/libphp5-zts.so
    ) y4 S4 f+ d6 y" H
  7. </IfModule>$ U& g2 o( i$ @" D/ q6 g0 {. A! H
  8. AddHandler php5-script .php  #所以副檔名一定要是 .php 結尾!
    9 r6 D/ K8 I6 i$ t
複製代碼
《4》設定php-fpm
8 _4 J8 R* ~& y0 ~$ Dvi /etc/php-fpm.d/www.conf
  1. ;listen = 127.0.0.1:9000' R  D- f# P/ P  h" P3 H3 p* E
  2. listen = /var/run/php-fpm.sock9 o$ l! F) m! {' N, X0 `9 v
  3. ; php-fpm 正常啟動會自動產生php-fpm.sock
    / h, R: z& ~# _/ w, @) Z, V7 J2 r+ Q
複製代碼
並且新增kevin.conf(可copy www.conf),並修改成:, l  u' x1 z' Z+ S0 r
  1. listen = /var/run/php-fpm_av4u.sock
    8 Q' A2 A+ S) E: d: D+ {6 e
  2. user = kevin
    , s" m) r. \  W/ _, b) O3 L
  3. group = kevin
複製代碼
啟動php-fpm service php-fpm start
& t+ H- u8 u  u3 o# d重啟httpd      
service httpd reload- A9 D3 `9 ?" \+ |: f, ~( m
結果
" I7 S0 n8 G: }經測試發現跟之前一樣,仍然有權限不足情形(kevin皆chmod  755),可見仍未成功,決定Apache改成nginx(比較容易),再試.................
. S% T1 d+ [. E" J$ L! A3 T) O




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