|
|
〖前言〗:我使用php-fpm主要目的是為了,可以用我的Linux帳號(例如kevin)去啟動Apache,如此Apache的權限等同(equivalant)於kevin的權限,如此,我的網站的根目錄(例如 /home/kevin/),只要kevin擁有的權限,apache便擁有。
8 l0 @3 Z+ m: X6 ^, S+ U〖優點〗:! v. c) r3 |+ s z+ S$ r
❶記憶體管理、❷以不同身分執行apache(不只有apache),方便網頁空間搬移時 ,網頁經常出現「權限不足」的問題。/ S" d: ]7 b: M# |
〖安裝〗:3 J, \: K* |, R" Z& P
《1》Apache已安裝
9 K6 Q4 C9 o0 S' _6 i《2》安裝mod_fastcgi ( t$ s w0 W: f7 d0 ~- w
- cd /usr/tmp3 ]* P0 A: |2 @% k
- wget [url]http://www.fastcgi.com/dist/mod_fastcgi-current.tar.gz[/url]
& B6 T0 N- M9 w9 D0 c2 f - tar -zxvf mod_fastcgi-current.tar.gz
7 D) L8 o" S- Y9 ?0 F0 @ - cd mod_fastcgi-2.4.6# V% R0 n7 s6 O8 c
- cp Makefile.AP2 Makefile
% i) b: v3 z, k2 `, V! V/ I8 d. m: ] - make top_dir=/usr/lib64/httpd #我的主機是64bit* E- _( A. O8 e F. Y5 e# z
- 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」,於是
: z) ?/ v) {! A K5 `3 P- yum install libtool httpd-devel apr apr-devel
複製代碼 再執行一次7 G; b8 p/ }( W& N
- make top_dir=/usr/lib64/httpd
& N; u+ x7 P% ^$ h! N; p - make install
複製代碼 若安裝成功 , 應該會在 /usr/lib64/httpd/modules/ 下看見 mod_fastcgi.so( K: A8 T1 r* G, B: f5 y, K
《3》安裝php-fpm+ A3 I- P* J, ~, w! e& c
php-fpm , 直接由 remi(http://www.pigo.idv.tw/archives/242) 安裝 , 例如 yum -–enablerepo=remi install php-fpm
$ w& _ x+ }8 j1 N$ h4 z) H* I& L 〖環境設定〗: V8 _0 m6 c+ E& I& ^
《1》Apache改為worker模式(效率較佳):修改/etc/sysconfig/httpd& u- q' f7 `1 C; }0 M
- <font size="3">#HTTPD=/usr/sbin/httpd.worker 將註解#拿掉</font>
複製代碼 《2》由Apache載入mod_fastcgi.so9 B7 Q8 g8 y2 @# E8 W3 q" L- f( Q
/etc/httpd/conf.d/下新增一檔mod_fastcgi.conf,內容:
% m3 Q' d: C2 w6 f% w# x6 I, o- LoadModule fastcgi_module modules/mod_fastcgi.so
複製代碼 《3》/etc/httpd/conf.d/php.conf 一定要包含以下片段(若無自行增加)8 J: O! R7 }8 k% u( H
- <IfModule prefork.c>
8 u+ K- o H! a' p$ S' S2 U - #根據不同的 PID 模式給予不同的 PHP 運作模組 s( M: t* l( m( h
- LoadModule php5_module modules/libphp5.so
9 V5 c+ a; }- h - </IfModule>
' u! Q& Q1 @/ y - <IfModule worker.c>3 l% B5 u) F" X/ |1 J! T6 a
- LoadModule php5_module modules/libphp5-zts.so% [% i) s; y' K' V9 w3 y
- </IfModule>! B0 J& e0 U( L- J, C! O
- AddHandler php5-script .php #所以副檔名一定要是 .php 結尾!
, v- r, o, X6 M
複製代碼 《4》設定php-fpm% o! A I5 m, ^% K, M
vi /etc/php-fpm.d/www.conf- ;listen = 127.0.0.1:90003 P& C f2 _1 D# K3 Q, |- D
- listen = /var/run/php-fpm.sock; C" k1 ~3 \5 {( T5 z1 V2 z
- ; php-fpm 正常啟動會自動產生php-fpm.sock
7 ? T4 `& `# H2 D, l
複製代碼 並且新增kevin.conf(可copy www.conf),並修改成:
" r; I; K$ c8 J5 r- listen = /var/run/php-fpm_av4u.sock0 n6 i; T' R b
- user = kevin3 g) [. J+ \, D8 i9 y& P$ o
- group = kevin
複製代碼 啟動php-fpm ⇨ service php-fpm start
. Y) V0 o9 X, S# V( d重啟httpd ⇨ service httpd reload
7 N- }: J- \% p* p〖結果〗:0 [1 }& h0 l* @* N1 |
經測試發現跟之前一樣,仍然有權限不足情形(kevin皆chmod 755),可見仍未成功,決定Apache改成nginx(比較容易),再試.................
$ {$ z; c- H# _7 [5 E |
|
|