|
|
tid=201&〖前言〗:我使用php-fpm主要目的是為了,可以用我的Linux帳號(例如kevin)去啟動Apache,如此Apache的權限等同(equivalant)於kevin的權限,如此,我的網站的根目錄(例如 /home/kevin/),只要kevin擁有的權限,apache便擁有。
' z/ |! y) ?+ `2 f* T% n. x〖優點〗:0 h G8 j8 Y4 ]' Q' [" O
❶記憶體管理、❷以不同身分執行apache(不只有apache),方便網頁空間搬移時 ,網頁經常出現「權限不足」的問題。& \: G& p2 g9 Z4 y5 T# ~" h
〖安裝〗:* X: e8 g+ j w5 O1 B5 E! h1 Y8 v
《1》Apache已安裝; `. Q# O1 _ u3 @& C# a" c+ k
《2》安裝mod_fastcgi
. ^9 ~# x( p5 r8 q: F5 z- cd /usr/tmp
7 X4 h! e/ E( C! J: J# O$ A - wget [url]http://www.fastcgi.com/dist/mod_fastcgi-current.tar.gz[/url]
" V9 I% v9 { d3 R; `, a- y/ m$ e- ] - tar -zxvf mod_fastcgi-current.tar.gz1 K" N/ @* ^5 u5 F1 j
- cd mod_fastcgi-2.4.6
$ ~" M! s; f5 F1 F& Z - cp Makefile.AP2 Makefile: I: }( Q+ L5 c/ z
- make top_dir=/usr/lib64/httpd #我的主機是64bit
: {( J/ A4 |) r# F3 s3 E - 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( X, D1 A5 _+ N& K- yum install libtool httpd-devel apr apr-devel
複製代碼 再執行一次
7 u m1 \* P4 w# e4 N- make top_dir=/usr/lib64/httpd0 ^' q! ^$ O, n, O/ j( H
- make install
複製代碼 若安裝成功 , 應該會在 /usr/lib64/httpd/modules/ 下看見 mod_fastcgi.so4 N) h9 A* ` _
《3》安裝php-fpm N7 v. f$ t1 [/ S
php-fpm , 直接由 remi(http://www.pigo.idv.tw/archives/242) 安裝 , 例如 yum -–enablerepo=remi install php-fpm 8 Y0 P* t& K9 T& F; F+ A# k0 }* U
〖環境設定〗:
9 x& y, a0 w9 R- C' ]9 s. h《1》Apache改為worker模式(效率較佳):修改/etc/sysconfig/httpd7 r+ S1 g5 ] K5 q
- <font size="3">#HTTPD=/usr/sbin/httpd.worker 將註解#拿掉</font>
複製代碼 《2》由Apache載入mod_fastcgi.so, x( M! c/ H$ j0 a" N; L9 t. P5 i5 N
/etc/httpd/conf.d/下新增一檔mod_fastcgi.conf,內容:- j; k& m$ v% r$ N
- LoadModule fastcgi_module modules/mod_fastcgi.so
複製代碼 《3》/etc/httpd/conf.d/php.conf 一定要包含以下片段(若無自行增加)( I4 Y1 @' I, y* y
- <IfModule prefork.c>
, d% C$ ^* |! o' B0 T2 G - #根據不同的 PID 模式給予不同的 PHP 運作模組
* _; Q/ d6 L: @' U% o - LoadModule php5_module modules/libphp5.so
8 f$ f2 f( r, K; t y" j/ } - </IfModule>
" \9 ~$ J! {& y - <IfModule worker.c>
- P" Y) I; Z" f3 U, | - LoadModule php5_module modules/libphp5-zts.so
* |9 O! h+ s4 q' J$ ^8 H - </IfModule>( U) c- a4 m. ~7 t
- AddHandler php5-script .php #所以副檔名一定要是 .php 結尾!" J+ S9 A, R: d- H0 p: r' \) h
複製代碼 《4》設定php-fpm
$ S0 r2 g! K6 h* [9 Fvi /etc/php-fpm.d/www.conf- ;listen = 127.0.0.1:90009 g' j/ Z- i: f W4 m( V
- listen = /var/run/php-fpm.sock
/ f% b% K# H4 u, x - ; php-fpm 正常啟動會自動產生php-fpm.sock' D3 M' I9 `5 z7 Y, O/ s$ G
複製代碼 並且新增kevin.conf(可copy www.conf),並修改成:- ^: q# V$ U* |& ^* ]
- listen = /var/run/php-fpm_av4u.sock
7 p0 r6 G8 J/ @9 Q2 x* x - user = kevin( F9 f& }) |$ Y: p& O0 _
- group = kevin
複製代碼 啟動php-fpm ⇨ service php-fpm start
+ S/ ~( L" H7 n+ I* M, D, `重啟httpd ⇨ service httpd reload
, j5 k/ Q( }4 ^; }- e" q/ t〖結果〗:8 M7 o# K9 j/ x4 Z S O: f
經測試發現跟之前一樣,仍然有權限不足情形(kevin皆chmod 755),可見仍未成功,決定Apache改成nginx(比較容易),再試.................% d% g. M+ K& H3 G, R% f' r
|
|