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便擁有
' q# R3 [8 k8 Z* a3 p2 p# I/ ]優點9 @& C( T+ a$ z+ v$ t
❶記憶體管理、❷以不同身分執行apache(不只有apache),方便網頁空間搬移時 ,網頁經常出現「權限不足」的問題。
# b" M, |+ |/ G' e# k〖安裝〗:
# P, W7 w( t; K: c《1》Apache已安裝
* A: F8 U$ q8 p; F$ T《2》安裝mod_fastcgi

# M0 Q0 l8 f3 V  ]
  1. cd /usr/tmp
    ' f/ S9 i- X4 M2 @- F+ }! t. }
  2. wget [url]http://www.fastcgi.com/dist/mod_fastcgi-current.tar.gz[/url]
    1 w7 @2 ?5 R5 M2 v  p" R  E
  3. tar -zxvf mod_fastcgi-current.tar.gz
    6 w; s5 \( t. j2 U' r% p
  4. cd mod_fastcgi-2.4.6
      K! o" q1 F: a$ e# j7 T
  5. cp Makefile.AP2 Makefile
    ' S' O7 m/ }4 V% z
  6. make top_dir=/usr/lib64/httpd  #我的主機是64bit
    5 _$ n1 m7 ?9 ?5 ?6 t9 M
  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」,於是4 c! F9 S& `1 F
  1. yum install libtool httpd-devel apr apr-devel
複製代碼
再執行一次% c% q, T; D8 Z8 N
  1. make top_dir=/usr/lib64/httpd
    6 \3 p' Y0 u  S' E' f
  2. make install
複製代碼
若安裝成功 , 應該會在 /usr/lib64/httpd/modules/ 下看見 mod_fastcgi.so+ M3 L5 v7 {. |7 l  K
《3》安裝php-fpm
( E* Y& D' l5 q2 N) kphp-fpm , 直接由 remi(http://www.pigo.idv.tw/archives/242) 安裝 , 例如 yum -–enablerepo=remi install php-fpm      
5 B1 Y: O. l" E 環境設定
8 j3 R5 E: N+ F: Z1 l' X7 b《1》Apache改為worker模式(效率較佳):修改/etc/sysconfig/httpd$ k5 ?) F# f- M+ H! e6 q7 e6 _1 Z
  1. <font size="3">#HTTPD=/usr/sbin/httpd.worker    將註解#拿掉</font>
複製代碼
《2》由Apache載入mod_fastcgi.so! z+ `. p6 X9 `
/etc/httpd/conf.d/下新增一檔mod_fastcgi.conf,內容:

. J$ Q( X6 ]; p* ^; ~
  1. LoadModule fastcgi_module modules/mod_fastcgi.so
複製代碼
《3》/etc/httpd/conf.d/php.conf 一定要包含以下片段(若無自行增加)
; J' I7 W1 Q  j1 W4 \" I
  1. <IfModule prefork.c>
    4 V& o% G5 X& v% f- D
  2. #根據不同的 PID 模式給予不同的 PHP 運作模組
    ! w$ W; }% Q. O4 O
  3.   LoadModule php5_module modules/libphp5.so( E% w* H( }- a0 X. |; u
  4. </IfModule># |& J6 f0 w  e# q4 S1 c& i6 B
  5. <IfModule worker.c>
    + O( s* g1 o7 }3 n7 k8 `6 j
  6.   LoadModule php5_module modules/libphp5-zts.so
    + b2 J: I3 o0 [% N3 l( N3 c
  7. </IfModule>
    : t) J0 ^/ F9 p
  8. AddHandler php5-script .php  #所以副檔名一定要是 .php 結尾!' \; L& u- P9 l0 I1 R5 X
複製代碼
《4》設定php-fpm0 B, e- q3 Y* o7 Q
vi /etc/php-fpm.d/www.conf
  1. ;listen = 127.0.0.1:9000
    6 N7 ~0 |$ E, P# v$ T
  2. listen = /var/run/php-fpm.sock1 D2 g6 z" L, h9 a# a9 U( j6 \
  3. ; php-fpm 正常啟動會自動產生php-fpm.sock0 z; y$ ~! ]) O) T; D
複製代碼
並且新增kevin.conf(可copy www.conf),並修改成:
9 M/ Z; U/ W! t' U! C; O9 N
  1. listen = /var/run/php-fpm_av4u.sock6 U2 q+ E- ~& y. {$ w$ E
  2. user = kevin9 S7 O/ p2 g0 g# x* |( I
  3. group = kevin
複製代碼
啟動php-fpm service php-fpm start
! I) n8 h+ K8 g" K5 {- i+ F' V. i) g2 u重啟httpd      
service httpd reload
5 L1 f- ^( k7 L( M8 b結果& K9 k" z2 C2 Y! F9 r
經測試發現跟之前一樣,仍然有權限不足情形(kevin皆chmod  755),可見仍未成功,決定Apache改成nginx(比較容易),再試.................
- B" k* I9 X& z1 m' P3 S+ j$ ^




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