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便擁有
+ P- Y( j. X+ r( w優點( \& @2 E/ z# T/ B; S
❶記憶體管理、❷以不同身分執行apache(不只有apache),方便網頁空間搬移時 ,網頁經常出現「權限不足」的問題。. |1 U$ z9 m& s& [9 B, ]6 v+ U* w
〖安裝〗:
& P% b, y0 w' ]8 e0 w《1》Apache已安裝
! Q' ~% q2 G% U2 r( Z# o: }4 v《2》安裝mod_fastcgi

. t0 r% f" H* k3 g
  1. cd /usr/tmp
    + ?* H8 c( Y/ v6 ^) y
  2. wget [url]http://www.fastcgi.com/dist/mod_fastcgi-current.tar.gz[/url]
    ) x" p3 U% a  P. G3 {# j2 R
  3. tar -zxvf mod_fastcgi-current.tar.gz
    " [- T$ O) l! X# `* x+ \) U4 j9 y
  4. cd mod_fastcgi-2.4.6
    ' T' @6 _& P+ H/ O9 O6 ~" ?
  5. cp Makefile.AP2 Makefile
      }5 X( y: E7 i& b3 [  k& a2 L
  6. make top_dir=/usr/lib64/httpd  #我的主機是64bit: X& C0 d; ?- W" r4 W
  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」,於是. c8 P2 C+ }$ u7 N
  1. yum install libtool httpd-devel apr apr-devel
複製代碼
再執行一次% K9 n. t5 i( S4 u8 C# L
  1. make top_dir=/usr/lib64/httpd
    0 [0 Q% n6 H" p" S1 U
  2. make install
複製代碼
若安裝成功 , 應該會在 /usr/lib64/httpd/modules/ 下看見 mod_fastcgi.so+ A$ Y. r, m' P- V. z) r& L7 F1 o% U
《3》安裝php-fpm' y% q) A7 w# t
php-fpm , 直接由 remi(http://www.pigo.idv.tw/archives/242) 安裝 , 例如 yum -–enablerepo=remi install php-fpm      
+ D2 B9 ]% ]- a: {  t 環境設定/ y# p$ T4 q" [; f; T
《1》Apache改為worker模式(效率較佳):修改/etc/sysconfig/httpd3 S; T# q6 F+ f+ }( Y' N, J
  1. <font size="3">#HTTPD=/usr/sbin/httpd.worker    將註解#拿掉</font>
複製代碼
《2》由Apache載入mod_fastcgi.so- J% c2 B$ W( u3 d* p6 K2 r7 {
/etc/httpd/conf.d/下新增一檔mod_fastcgi.conf,內容:

6 y' Q3 P; _( A4 L+ q! r/ r
  1. LoadModule fastcgi_module modules/mod_fastcgi.so
複製代碼
《3》/etc/httpd/conf.d/php.conf 一定要包含以下片段(若無自行增加)
- s% O" K  k: D! R5 u
  1. <IfModule prefork.c>) l  X8 J9 w3 i: g0 ]" y. F$ F
  2. #根據不同的 PID 模式給予不同的 PHP 運作模組
    5 }/ L7 A1 G$ ~1 F" {# s5 b) I! O% w( s
  3.   LoadModule php5_module modules/libphp5.so! ~2 _" t1 I* \! j( n
  4. </IfModule>, O0 {- v0 j# o" X% J5 B
  5. <IfModule worker.c>
    " \- _( l+ P! i7 G5 |4 f7 Z
  6.   LoadModule php5_module modules/libphp5-zts.so1 }$ ^% l& ~4 G: u
  7. </IfModule>
    $ N9 ?2 {6 A/ \( b. N& [
  8. AddHandler php5-script .php  #所以副檔名一定要是 .php 結尾!
    , O4 C! h) W5 d) A$ `
複製代碼
《4》設定php-fpm
) p& M4 }% ^! K! Pvi /etc/php-fpm.d/www.conf
  1. ;listen = 127.0.0.1:9000
    & E4 i0 I0 ~. R
  2. listen = /var/run/php-fpm.sock
    6 U) z& p3 x! r6 X
  3. ; php-fpm 正常啟動會自動產生php-fpm.sock
      H. `7 O3 E, v7 K
複製代碼
並且新增kevin.conf(可copy www.conf),並修改成:( y& @/ J; L# |! X/ a! E
  1. listen = /var/run/php-fpm_av4u.sock
    + \' I* d6 P" S3 ^6 e! h& z. R4 v
  2. user = kevin7 D2 `" L7 X4 G
  3. group = kevin
複製代碼
啟動php-fpm service php-fpm start
% o- M* @( d# a& ]; I1 x: h重啟httpd      
service httpd reload& ~7 O& ^. U! r" z2 A7 v- E
結果
0 y) P' r+ C& }; [經測試發現跟之前一樣,仍然有權限不足情形(kevin皆chmod  755),可見仍未成功,決定Apache改成nginx(比較容易),再試.................5 ~" @: }4 c0 b! G! O





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