《PHP實戰(zhàn):Linux下從零開始安裝配置Nginx服務(wù)器+PHP開發(fā)環(huán)境》要點:
本文介紹了PHP實戰(zhàn):Linux下從零開始安裝配置Nginx服務(wù)器+PHP開發(fā)環(huán)境,希望對您有用。如果有疑問,可以聯(lián)系我們。
Nginx是俄羅斯人編寫的十分輕量級的HTTP服務(wù)器,以變亂驅(qū)動的方式編寫,所以有非常好的性能,同時也是一個非常高效的反向代理、負載平衡.其擁有匹配Lighttpd的性能,同時還沒有Lighttpd的內(nèi)存泄漏問題,而且Lighttpd的mod_proxy也有一些問題并且很久沒有更新.PHP教程
因此我打算用其替代Apache應(yīng)用于Linux服務(wù)器上.但是Nginx并不支持cgi方式運行,原因是可以減少因此帶來的一些程序上的漏洞.那么我們必需使用FastCGI方式來執(zhí)行PHP程序.PHP教程
下面是我成功地配置Nginx + PHP5 FastCGI的過程PHP教程
首先安裝或編譯NginxPHP教程
安裝NginxPHP教程
源碼包可以在官方主頁上下載.Ubuntu 7.10可以直接通過apt安裝,也可以從這里下載最新的deb包:PHP教程
sudo apt-get install nginx
如果要自己編譯的話,需要確保自己已經(jīng)有編譯器和PCRE的庫(用于Nginx的rewrite模塊,如果不需要這個模塊可以在configure時使用./configure Cwithout-rewrite),編譯辦法如下:PHP教程
wget http://sysoev.ru/nginx/nginx-0.5.34.tar.gz tar zxvf nginx-0.5.34.tar.gz cd nginx-0.5.34 ./configure #默認配置安裝路徑為/usr/local/nginx 可以追加--prefix=/usr設(shè)置到/usr make && make install # install要求有root權(quán)限
Ubuntu安裝之后的文件布局大致為:PHP教程
而自己利用默認配置編譯的,則放在/usr/local/nginx下,以下是目錄結(jié)構(gòu):PHP教程
下面可以啟動nginx來看看效果(請確保80端口沒有其他服務(wù)在使用):PHP教程
Ubuntu請運行:PHP教程
sudo /etc/init.d/nginx start
其他請運行:PHP教程
/usr/local/nginx/sbin/nginx
然后就可以通過http://localhost/來看看效果了.PHP教程
要配置nginx的自動運行,可以將/usr/local/nginx/sbin/nginx添加到/etc/rc.local中,Ubuntu可以執(zhí)行PHP教程
update-rc.d nginx defaults
安裝PHP5PHP教程
至于如安在Linux上安裝PHP,有很多文章,甚至很多平臺上都有現(xiàn)成的軟件包,無需自己編譯.PHP教程
1. 先進行php輔助包的安裝如下
常用的包有PHP教程
?PHP教程
例:PHP教程
tar -jxf zlib-1.2.3.tar.bz2
解壓PHP教程
tar zxf tar -jxf zlib-1.2.3.tar.bz2
進入到PHP教程
cd zlib-1.2.3
后執(zhí)行
PHP教程
./configure
然后執(zhí)行PHP教程
make make install
其余的安裝辦法相同.
2.? 以上的輔助包安裝完之后,進行php包的安裝
步驟PHP教程
tar -zxvf php-5.2.14.tar.gz && cd php-5.2.14
辦法同上 執(zhí)行PHP教程
./configure --prefix=/usr/local/php5
后面加上必要加載的模塊
?
PHP教程
./configure --prefix=/usr/local/php5 --with-apxs2=/usr/local/apache2/bin/apxs --with-mysql=/usr/local/mysql5 --with-freetype-dir --with-zlib --with-png-dir --with-iconv --with-libxml-dir --with-jpeg-dir --with-curl --with-gd --enable-ftp --enable-zip --enable-mbstring --with-mcrypt=/usr/local/libmcrypt
(這些為加載的模塊,不是全部)按Enter 執(zhí)行.
Php的配置文件為 php.ini.PHP教程
PHP5的CGI方式的一大優(yōu)勢是內(nèi)置了FastCGI的支持,只需指明綁定的地址和端口參數(shù)便可以以FastCGI的方式運行,如下:PHP教程
php-cgi -b 127.0.0.1:9000
如何配置其與nginx一起運行呢?PHP教程
配置Nginx的PHP FastCGIPHP教程
請將以下內(nèi)容保留為fastcgi_params文件,保留于/usr/local/nginx/conf下(Ubuntu可保留于/etc/nginx下),他為我們的FastCGI模塊設(shè)置了基本的環(huán)境變量:PHP教程
#fastcgi_params fastcgi_param GATEWAY_INTERFACE CGI/1.1; fastcgi_param SERVER_SOFTWARE nginx; fastcgi_param QUERY_STRING $query_string; fastcgi_param REQUEST_METHOD $request_method; fastcgi_param CONTENT_TYPE $content_type; fastcgi_param CONTENT_LENGTH $content_length; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_param SCRIPT_NAME $fastcgi_script_name; fastcgi_param REQUEST_URI $request_uri; fastcgi_param DOCUMENT_URI $document_uri; fastcgi_param DOCUMENT_ROOT $document_root; fastcgi_param SERVER_PROTOCOL $server_protocol; fastcgi_param REMOTE_ADDR $remote_addr; fastcgi_param REMOTE_PORT $remote_port; fastcgi_param SERVER_ADDR $server_addr; fastcgi_param SERVER_PORT $server_port; fastcgi_param SERVER_NAME $server_name; # PHP only, required if PHP was built with --enable-force-cgi-redirect fastcgi_param REDIRECT_STATUS 200;
請?zhí)貏e注意”fastcgi_script_name”一行,PHP-CGI特別必要此行信息來確定PHP文件的位置.PHP教程
另外必要在PHP-CGI的配置文件(Ubuntu 上此配置文件位于/etc/php5/cgi/php.ini)中,打開cgi.fix_pathinfo選項:PHP教程
cgi.fix_pathinfo=1;
這樣php-cgi方能正常使用SCRIPT_FILENAME這個變量.PHP教程
接下來在nginx的配置中針對php文件配置其利用FastCGI進程來執(zhí)行:PHP教程
server { index index.php; root /usr/local/nginx/html; location ~ .*.php$ { include /usr/local/nginx/conf/fastcgi_params; #請根據(jù)自己保留的路徑進行設(shè)置 fastcgi_index index.php; fastcgi_pass 127.0.0.1:9000; #請根據(jù)自己的FastCGI綁定的地址和端口進行配置 } }
通知Nginx重新載入配置:PHP教程
kill -HUP `cat /usr/local/nginx/logs/nginx.pid`
Ubuntu用戶可以使用init腳本:sudo /etc/init.d/nginx reloadPHP教程
然后啟動php-cgi -b 127.0.0.1:9000PHP教程
假設(shè)你在文檔根目錄放了index.php,并包括”phpinfo();”的內(nèi)容,現(xiàn)在再看http://localhost/index.php便應(yīng)該能看到php的調(diào)試信息了.PHP教程
配置php進程PHP教程
直接使用php-cgi的FastCGI運行方式有兩個問題(貌似應(yīng)該有辦理方案,如果知道的話可以教教我):PHP教程
1.如果進程崩潰,難以配置重新啟動
2.單進程的效率低
因此,我們可以利用Lighttpd的spawn-fcgi來控制進程的運行.獲得spawn-fcgi的辦法如下:PHP教程
wget http://www.lighttpd.net/download/lighttpd-1.4.18.tar.bz2 #獲取Lighttpd的源碼包 tar -xvjf lighttpd-1.4.18.tar.bz2 cd lighttpd-1.4.18 ./configure #編譯 make cp src/spawn-fcgi /usr/local/bin/spawn-fcgi #取出spawn-fcgi的程序
下面我們就可以使用 spawn-fcgi 來控制php-cgi的FastCGI進程了PHP教程
/usr/local/bin/spawn-fcgi -a 127.0.0.1 -p 9000 -C 5 -u www-data -g www-data -f /usr/bin/php-cgi
參數(shù)含義如下PHP教程
然后我們可以將這行代碼參加到/etc/rc.local文件底部,這樣系統(tǒng)啟動的時候也可以同時啟動PHP的FastCGI進程.PHP教程
歡迎參與《PHP實戰(zhàn):Linux下從零開始安裝配置Nginx服務(wù)器+PHP開發(fā)環(huán)境》討論,分享您的想法,維易PHP學(xué)院為您提供專業(yè)教程。
轉(zhuǎn)載請注明本頁網(wǎng)址:
http://www.snjht.com/jiaocheng/8191.html