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便擁有
# C9 L9 G; s. j5 h. _6 U, P  t4 c1 _) ^優點
# p/ W  y! L( f1 U7 S9 ^8 B❶記憶體管理、❷以不同身分執行apache(不只有apache),方便網頁空間搬移時 ,網頁經常出現「權限不足」的問題。0 D4 H  I7 m) d
〖安裝〗:
/ ]7 l. l# B5 W: E《1》Apache已安裝
% j4 g7 ?) r8 d' Y5 L; g5 _《2》安裝mod_fastcgi

& b1 {, D" ?, D) k) Y) Y
  1. cd /usr/tmp
    ( E# p0 f: P: h9 G
  2. wget [url]http://www.fastcgi.com/dist/mod_fastcgi-current.tar.gz[/url]
    6 a+ N0 I6 Y; @
  3. tar -zxvf mod_fastcgi-current.tar.gz
    8 _1 B- ?2 M+ ?* y+ d% I
  4. cd mod_fastcgi-2.4.6
    $ m$ I( f9 J4 C  E7 e2 ~# ]
  5. cp Makefile.AP2 Makefile
    " ]$ x2 O7 a( T2 L
  6. make top_dir=/usr/lib64/httpd  #我的主機是64bit7 m  c/ [, u& S7 v! u7 F: f5 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」,於是
7 u, r$ {3 W1 ]
  1. yum install libtool httpd-devel apr apr-devel
複製代碼
再執行一次
% J, \/ f  V( k/ g) F' b$ _# V
  1. make top_dir=/usr/lib64/httpd
    8 }4 l$ d& _1 {* K2 s
  2. make install
複製代碼
若安裝成功 , 應該會在 /usr/lib64/httpd/modules/ 下看見 mod_fastcgi.so
# r# y3 }: i3 a" b+ H' w  k
《3》安裝php-fpm  c; I. G' S4 S+ I  u* J+ ^
php-fpm , 直接由 remi(http://www.pigo.idv.tw/archives/242) 安裝 , 例如 yum -–enablerepo=remi install php-fpm      0 G7 p" W1 Z) Q6 s6 i& s
環境設定4 g# r$ `$ a: S8 q1 j" ^, {
《1》Apache改為worker模式(效率較佳):修改/etc/sysconfig/httpd
4 f) C7 W/ q7 z- }( D# H* M9 G9 G+ |
  1. <font size="3">#HTTPD=/usr/sbin/httpd.worker    將註解#拿掉</font>
複製代碼
《2》由Apache載入mod_fastcgi.so
* d  W, @' v2 G5 O/etc/httpd/conf.d/下新增一檔mod_fastcgi.conf,內容:
/ p, _* H$ K& |3 ~$ U+ f
  1. LoadModule fastcgi_module modules/mod_fastcgi.so
複製代碼
《3》/etc/httpd/conf.d/php.conf 一定要包含以下片段(若無自行增加)
; A5 M- k% x5 ?9 P  L  k1 ?
  1. <IfModule prefork.c>% \' W" s% y" l2 Q3 ^
  2. #根據不同的 PID 模式給予不同的 PHP 運作模組
    3 y. P. S2 g' r8 M& n4 ?( Y  \$ ?( S3 }
  3.   LoadModule php5_module modules/libphp5.so( i$ n  C5 u4 P. Y
  4. </IfModule>
    6 y& |" |% n) H3 B! O
  5. <IfModule worker.c>
    $ G# t* p* d+ B, v
  6.   LoadModule php5_module modules/libphp5-zts.so; u  n9 m5 @. z7 |0 J
  7. </IfModule>4 n0 X! d+ P  [" z4 F4 B
  8. AddHandler php5-script .php  #所以副檔名一定要是 .php 結尾!% Y8 N) R$ |* @* z+ A, L
複製代碼
《4》設定php-fpm
- F4 t. j9 j' k$ Z, pvi /etc/php-fpm.d/www.conf
  1. ;listen = 127.0.0.1:9000- U: g- y1 U9 _6 U& Y  U9 C5 ~
  2. listen = /var/run/php-fpm.sock
    4 p2 ~' e, [9 s
  3. ; php-fpm 正常啟動會自動產生php-fpm.sock* F9 a# ~, k. r7 L6 U# v! x" s
複製代碼
並且新增kevin.conf(可copy www.conf),並修改成:4 P" r8 z( A5 X# O; Z6 {; q1 ^& d7 ~
  1. listen = /var/run/php-fpm_av4u.sock
    $ J. c  R' y5 Y# Z! W  w5 k
  2. user = kevin
    ! [7 E4 G& w" F) P, {" G' g, T
  3. group = kevin
複製代碼
啟動php-fpm service php-fpm start0 a+ ~. z3 \" ]0 k: z& a) X
重啟httpd      
service httpd reload
& S/ z) N& r+ Q4 d9 a6 ?! k, p結果" Z' Y8 c& b5 p0 v
經測試發現跟之前一樣,仍然有權限不足情形(kevin皆chmod  755),可見仍未成功,決定Apache改成nginx(比較容易),再試.................
# l  M. O$ X' \/ v




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