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便擁有
. d/ N( S" Q- P% C優點1 ~' x- n# v  R' `3 x
❶記憶體管理、❷以不同身分執行apache(不只有apache),方便網頁空間搬移時 ,網頁經常出現「權限不足」的問題。3 f0 {" t6 l9 A6 s6 ~
〖安裝〗:( }+ J( E" q* K$ W  |8 }. C, V5 U! X
《1》Apache已安裝
6 A# _0 [' i4 l! H  F% _《2》安裝mod_fastcgi

- A7 b4 U. G4 s4 V  k
  1. cd /usr/tmp6 p# z" {1 W/ G* P' ?" H
  2. wget [url]http://www.fastcgi.com/dist/mod_fastcgi-current.tar.gz[/url]
    / A/ \8 L# e) d6 f- J1 _) j2 ^0 q  E
  3. tar -zxvf mod_fastcgi-current.tar.gz
    + x% J7 A/ C0 g; f* s
  4. cd mod_fastcgi-2.4.65 u$ q* U2 ^. Z+ n. A% Y' Y
  5. cp Makefile.AP2 Makefile* J; G7 q- _( R" o! W
  6. make top_dir=/usr/lib64/httpd  #我的主機是64bit1 q8 H% i$ v$ G5 P
  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」,於是
% P3 m! x, ]4 I  _6 `2 G" S) |
  1. yum install libtool httpd-devel apr apr-devel
複製代碼
再執行一次
9 r/ N3 }9 O" Q! M! P8 \0 A
  1. make top_dir=/usr/lib64/httpd
    ! K  J, ^/ H2 A: A' B
  2. make install
複製代碼
若安裝成功 , 應該會在 /usr/lib64/httpd/modules/ 下看見 mod_fastcgi.so$ [4 G' h8 [- ~* ]  a
《3》安裝php-fpm
6 V7 A( x6 R& Q; M; Y# tphp-fpm , 直接由 remi(http://www.pigo.idv.tw/archives/242) 安裝 , 例如 yum -–enablerepo=remi install php-fpm      ( n; O: t( ^6 A! ?: v  N
環境設定" c  f" a# b) J6 D! F0 Y" S3 Z; B
《1》Apache改為worker模式(效率較佳):修改/etc/sysconfig/httpd6 E; b# G6 \+ a$ Z! X7 t6 A7 @
  1. <font size="3">#HTTPD=/usr/sbin/httpd.worker    將註解#拿掉</font>
複製代碼
《2》由Apache載入mod_fastcgi.so
. ^, V  t+ R( k, G% H/etc/httpd/conf.d/下新增一檔mod_fastcgi.conf,內容:

1 e& R1 _- u4 X% C1 T. E/ a, F" v
  1. LoadModule fastcgi_module modules/mod_fastcgi.so
複製代碼
《3》/etc/httpd/conf.d/php.conf 一定要包含以下片段(若無自行增加)
" N6 ^# z: W( N7 e7 M+ g" _7 }# a
  1. <IfModule prefork.c>; B/ ]4 Q. s$ V; Z" B" U
  2. #根據不同的 PID 模式給予不同的 PHP 運作模組
    7 Q: |  l! N1 |4 Y- \. S: L. K
  3.   LoadModule php5_module modules/libphp5.so
      p$ v- k8 D( w" \0 y3 ?3 ~
  4. </IfModule>. u! N, c# G0 y, i; V  o
  5. <IfModule worker.c>
    : b2 m' A, O# A
  6.   LoadModule php5_module modules/libphp5-zts.so
    4 U- m) ~5 R$ x. P- x
  7. </IfModule>
    : @% I3 E/ n6 n0 Z/ H, N* y  A
  8. AddHandler php5-script .php  #所以副檔名一定要是 .php 結尾!* c( A$ X. l* A2 Y
複製代碼
《4》設定php-fpm
$ o" H+ o! r4 w4 S$ x" F6 Nvi /etc/php-fpm.d/www.conf
  1. ;listen = 127.0.0.1:9000, o+ W6 I0 F" @1 q2 z; }
  2. listen = /var/run/php-fpm.sock
    ! _) h) T, i  @' q
  3. ; php-fpm 正常啟動會自動產生php-fpm.sock
    ( r8 H0 \( L: U
複製代碼
並且新增kevin.conf(可copy www.conf),並修改成:: J( @9 [; t# d0 P3 ]+ J+ C( k
  1. listen = /var/run/php-fpm_av4u.sock
    1 e* f. w) ^9 C: c; K
  2. user = kevin% ]. r% z' S8 ~0 `) w
  3. group = kevin
複製代碼
啟動php-fpm service php-fpm start! Z8 R, J3 r- J  O, b/ i/ L
重啟httpd      
service httpd reload  D4 p8 m) g3 K( t9 s, i2 Y
結果) e7 H, s( H; K! f' c3 r
經測試發現跟之前一樣,仍然有權限不足情形(kevin皆chmod  755),可見仍未成功,決定Apache改成nginx(比較容易),再試.................0 X7 G& v7 U& m9 n1 c. Q- C3 Y$ H





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