52AV手機A片王|52AV.one

 找回密碼
 立即註冊
查看: 1971|回復: 0

[網頁伺服器] Apache + mod_fastcgi + php-fpm(不同身分的使用者可執行Apache)

[複製鏈接]
發表於 2015-1-10 07:37:43 | 顯示全部樓層 |閱讀模式
tid=201&前言我使用php-fpm主要目的是為了可以用我的Linux帳號(例如kevin)去啟動Apache如此Apache的權限等同(equivalant)於kevin的權限如此我的網站的根目錄(例如 /home/kevin/),只要kevin擁有的權限apache便擁有* E2 C7 `% t) e9 d  y5 z* r
優點
9 x; v$ L! U  {2 G0 g  z❶記憶體管理、❷以不同身分執行apache(不只有apache),方便網頁空間搬移時 ,網頁經常出現「權限不足」的問題。
. @1 y# ?5 t2 y" f; J〖安裝〗:
3 y2 V$ N1 m9 I9 ^+ t《1》Apache已安裝
3 v- ~) Q  L, f* \+ U7 _" g《2》安裝mod_fastcgi
/ `/ N9 H5 o9 {2 ~
  1. cd /usr/tmp
    / }' ]  \4 K6 x& u& Y2 y9 B$ [9 o% A
  2. wget [url]http://www.fastcgi.com/dist/mod_fastcgi-current.tar.gz[/url]
    3 ^8 r+ D( T2 p, U1 v. d8 x
  3. tar -zxvf mod_fastcgi-current.tar.gz
    ! O6 h" u  t5 p4 [4 h, s+ b2 n
  4. cd mod_fastcgi-2.4.6
    $ K& M/ W6 q' C% L6 A  ]
  5. cp Makefile.AP2 Makefile) [3 S$ I2 H& v5 |; k& @
  6. make top_dir=/usr/lib64/httpd  #我的主機是64bit3 Q7 c. g- j2 Q$ ]1 t9 j) U% j
  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」,於是. X/ a; L% D) O  b- ^7 x; Z
  1. yum install libtool httpd-devel apr apr-devel
複製代碼
再執行一次6 n" d7 A* Y) H% m9 W
  1. make top_dir=/usr/lib64/httpd7 C7 N* p. n* F
  2. make install
複製代碼
若安裝成功 , 應該會在 /usr/lib64/httpd/modules/ 下看見 mod_fastcgi.so
! d6 f, @0 M- F- z) ?% @7 a% Q
《3》安裝php-fpm
- x) b/ e/ \$ k9 E' s. C$ |php-fpm , 直接由 remi(http://www.pigo.idv.tw/archives/242) 安裝 , 例如 yum -–enablerepo=remi install php-fpm      4 G& G  J  A& n( Y& e6 O( @$ g
環境設定9 f- b& b8 i1 S
《1》Apache改為worker模式(效率較佳):修改/etc/sysconfig/httpd
: K2 U2 `3 o& _& P
  1. <font size="3">#HTTPD=/usr/sbin/httpd.worker    將註解#拿掉</font>
複製代碼
《2》由Apache載入mod_fastcgi.so- I" E0 z( A" N+ p0 V% H7 C1 g+ a
/etc/httpd/conf.d/下新增一檔mod_fastcgi.conf,內容:

; \* f( s* w% U/ s
  1. LoadModule fastcgi_module modules/mod_fastcgi.so
複製代碼
《3》/etc/httpd/conf.d/php.conf 一定要包含以下片段(若無自行增加)
, j7 b6 N5 V; _# ]& J3 T* [. a
  1. <IfModule prefork.c>" j& R9 q) T; V
  2. #根據不同的 PID 模式給予不同的 PHP 運作模組9 I+ P3 M) d, e, i* |+ e
  3.   LoadModule php5_module modules/libphp5.so# K, h& q) {8 w% P: T- z, M
  4. </IfModule>$ P* X2 f; E8 {3 A* v/ N7 M% Y. {+ B$ N
  5. <IfModule worker.c>
    * d" T' _& ]' U1 r* `# y4 E- c
  6.   LoadModule php5_module modules/libphp5-zts.so
    " z" ?3 J0 D. P. K8 X& W6 y
  7. </IfModule>
    + W" z5 P3 h, S" S
  8. AddHandler php5-script .php  #所以副檔名一定要是 .php 結尾!& a/ m% b  E$ a/ b1 m$ t+ d8 F
複製代碼
《4》設定php-fpm
. V0 @$ c' J2 s& c4 |4 u6 B6 Svi /etc/php-fpm.d/www.conf
  1. ;listen = 127.0.0.1:9000- e4 l  z9 T7 l0 l; C: r
  2. listen = /var/run/php-fpm.sock0 S' I' E$ R2 g
  3. ; php-fpm 正常啟動會自動產生php-fpm.sock
    & ^0 M$ W' E# ^7 u% s* w
複製代碼
並且新增kevin.conf(可copy www.conf),並修改成:$ F0 l5 g$ H" K4 m
  1. listen = /var/run/php-fpm_av4u.sock% ?# @; ^; R5 X+ s: I
  2. user = kevin
    ) x2 n7 j! l& R  x8 @  j, \/ C# y
  3. group = kevin
複製代碼
啟動php-fpm service php-fpm start& S( ^6 j6 N" R3 D( {3 C5 \
重啟httpd      
service httpd reload2 N3 J, W4 ~  C; q+ q; k. O
結果
: Q; N5 Z* {2 K經測試發現跟之前一樣,仍然有權限不足情形(kevin皆chmod  755),可見仍未成功,決定Apache改成nginx(比較容易),再試.................
- f5 O- V' l+ v4 S  ~5 i
回復

使用道具 舉報

您需要登錄後才可以回帖 登錄 | 立即註冊

本版積分規則



中文酷站排行榜

本區塊內容依據『電腦網路內容分級處理辦法』為限制級網站,限定年滿18歲以上或達當地國家法定年齡人士方可進入,且願接受本站各項條款,未滿18歲 謝絕進入瀏覽。為防範未滿18歲之未成年網友瀏覽網路上限制級內容的圖文資訊,建議您可進行網路內容分級組織ICRA分級服務的安裝與設定。 (為還給愛護 本站的網友一個純淨的論壇環境,本站設有管理員)

QQ|小黑屋|手機板| 52AV手機A片王

GMT+8, 2026-3-23 22:21 , Processed in 0.066940 second(s), 16 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回復 返回頂部 返回列表