Linux下安裝配置Nginx服務(wù)器+PHP開發(fā)環(huán)境的方法-創(chuàng)新互聯(lián)

本篇內(nèi)容介紹了“Linux下安裝配置Nginx服務(wù)器+PHP開發(fā)環(huán)境的方法”的有關(guān)知識(shí),在實(shí)際案例的操作過(guò)程中,不少人都會(huì)遇到這樣的困境,接下來(lái)就讓小編帶領(lǐng)大家學(xué)習(xí)一下如何處理這些情況吧!希望大家仔細(xì)閱讀,能夠?qū)W有所成!

從網(wǎng)站建設(shè)到定制行業(yè)解決方案,為提供做網(wǎng)站、成都網(wǎng)站設(shè)計(jì)服務(wù)體系,各種行業(yè)企業(yè)客戶提供網(wǎng)站建設(shè)解決方案,助力業(yè)務(wù)快速發(fā)展。創(chuàng)新互聯(lián)公司將不斷加快創(chuàng)新步伐,提供優(yōu)質(zhì)的建站服務(wù)。

Nginx是俄羅斯人編寫的十分輕量級(jí)的HTTP服務(wù)器,以事件驅(qū)動(dòng)的方式編寫,所以有非常好的性能,同時(shí)也是一個(gè)非常高效的反向代理、負(fù)載平衡。其擁有匹配Lighttpd的性能,同時(shí)還沒(méi)有Lighttpd的內(nèi)存泄漏問(wèn)題,而且Lighttpd的mod_proxy也有一些問(wèn)題并且很久沒(méi)有更新。

因此我打算用其替代Apache應(yīng)用于Linux服務(wù)器上。但是Nginx并不支持cgi方式運(yùn)行,原因是可以減少因此帶來(lái)的一些程序上的漏洞。那么我們必須使用FastCGI方式來(lái)執(zhí)行PHP程序。

下面是我成功地配置Nginx + PHP5 FastCGI的過(guò)程

首先安裝或編譯Nginx

安裝Nginx

源碼包可以在官方主頁(yè)上下載。Ubuntu 7.10可以直接通過(guò)apt安裝,也可以從這里下載新的deb包:

sudo apt-get install nginx

如果要自己編譯的話,需要確保自己已經(jīng)有編譯器和PCRE的庫(kù)(用于Nginx的rewrite模塊,如果不需要這個(gè)模塊可以在configure時(shí)使用./configure –without-rewrite),編譯方法如下:

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 #默認(rèn)配置安裝路徑為/usr/local/nginx 可以追加--prefix=/usr設(shè)置到/usr
make && make install # install要求有root權(quán)限

Ubuntu安裝之后的文件結(jié)構(gòu)大致為:

  • 所有的配置文件都在/etc/nginx下,并且每個(gè)虛擬主機(jī)已經(jīng)安排在了/etc/nginx/sites-available下

  • 程序文件在/usr/sbin/nginx

  • 日志放在了/var/log/nginx中

  • 并已經(jīng)在/etc/init.d/下創(chuàng)建了啟動(dòng)腳本nginx

  • 默認(rèn)的虛擬主機(jī)的目錄設(shè)置在了/var/www/nginx-default

而自己利用默認(rèn)配置編譯的,則放在/usr/local/nginx下,以下是目錄結(jié)構(gòu):

  • /usr/local/nginx/conf 配置目錄

  • /usr/local/nginx/html 默認(rèn)的網(wǎng)站根目錄

  • /usr/local/nginx/logs 日志和pid文件目錄

  • /usr/local/nginx/sbin 執(zhí)行文件目錄

下面可以啟動(dòng)nginx來(lái)看看效果(請(qǐng)確保80端口沒(méi)有其他服務(wù)在使用):

Ubuntu請(qǐng)運(yùn)行:

sudo /etc/init.d/nginx start

其他請(qǐng)運(yùn)行:

/usr/local/nginx/sbin/nginx

然后就可以通過(guò)http://localhost/來(lái)看看效果了。

要配置nginx的自動(dòng)運(yùn)行,可以將/usr/local/nginx/sbin/nginx添加到/etc/rc.local中,Ubuntu可以執(zhí)行

update-rc.d nginx defaults

安裝PHP5

至于如何在Linux上安裝PHP,有很多文章,甚至很多平臺(tái)上都有現(xiàn)成的軟件包,無(wú)需自己編譯。

1. 先進(jìn)行php輔助包的安裝如下
常用的包有

  • zlib-1.2.3.tar.bz2

  • jpegsrc.v6b.tar.gz libpng-1.2.22.tar.bz2  libmcrypt-2.5.8.tar.gz

  • mhash-0.9.9.9.tar.gz mcrypt-2.6.8.tar.gz

例:

tar -jxf zlib-1.2.3.tar.bz2

解壓

tar zxf tar -jxf zlib-1.2.3.tar.bz2

進(jìn)入到

 cd zlib-1.2.3

后執(zhí)行


./configure

然后執(zhí)行

make make install

其余的安裝方法相同。
2.  以上的輔助包安裝完之后,進(jìn)行php包的安裝
步驟

tar -zxvf php-5.2.14.tar.gz && cd php-5.2.14

方法同上 執(zhí)行

./configure --prefix=/usr/local/php5

后面加上需要加載的模塊


./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。

PHP5的CGI方式的一大優(yōu)勢(shì)是內(nèi)置了FastCGI的支持,只需指明綁定的地址和端口參數(shù)便可以以FastCGI的方式運(yùn)行,如下:

php-cgi -b 127.0.0.1:9000

如何配置其與nginx一起運(yùn)行呢?

配置Nginx的PHP FastCGI

請(qǐng)將以下內(nèi)容保存為fastcgi_params文件,保存于/usr/local/nginx/conf下(Ubuntu可保存于/etc/nginx下),他為我們的FastCGI模塊設(shè)置了基本的環(huán)境變量:

#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;

請(qǐng)?zhí)貏e注意”fastcgi_script_name”一行,PHP-CGI特別需要此行信息來(lái)確定PHP文件的位置。

另外需要在PHP-CGI的配置文件(Ubuntu 上此配置文件位于/etc/php5/cgi/php.ini)中,打開cgi.fix_pathinfo選項(xiàng):

cgi.fix_pathinfo=1;

這樣php-cgi方能正常使用SCRIPT_FILENAME這個(gè)變量。

接下來(lái)在nginx的配置中針對(duì)php文件配置其利用FastCGI進(jìn)程來(lái)執(zhí)行:

server {
  index index.php;
  root /usr/local/nginx/html;
 
  location ~ .*.php$ {
    include /usr/local/nginx/conf/fastcgi_params; #請(qǐng)根據(jù)自己保存的路徑進(jìn)行設(shè)置
    fastcgi_index index.php;
    fastcgi_pass 127.0.0.1:9000; #請(qǐng)根據(jù)自己的FastCGI綁定的地址和端口進(jìn)行配置
  }
}

通知Nginx重新載入配置:

kill -HUP `cat /usr/local/nginx/logs/nginx.pid`

Ubuntu用戶可以使用init腳本:sudo /etc/init.d/nginx reload

然后啟動(dòng)php-cgi -b 127.0.0.1:9000

假設(shè)你在文檔根目錄放了index.php,并包含”phpinfo();”的內(nèi)容,現(xiàn)在再看http://localhost/index.php便應(yīng)該能看到php的調(diào)試信息了。

配置php進(jìn)程

直接使用php-cgi的FastCGI運(yùn)行方式有兩個(gè)問(wèn)題(貌似應(yīng)該有解決方案,如果知道的話可以教教我):

1.如果進(jìn)程崩潰,難以配置重新啟動(dòng)
2.單進(jìn)程的效率低
因此,我們可以利用Lighttpd的spawn-fcgi來(lái)控制進(jìn)程的運(yùn)行。獲得spawn-fcgi的方法如下:

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 來(lái)控制php-cgi的FastCGI進(jìn)程了

/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ù)含義如下

  • -f <fcgiapp> 指定調(diào)用FastCGI的進(jìn)程的執(zhí)行程序位置,根據(jù)系統(tǒng)上所裝的PHP的情況具體設(shè)置

  • -a <addr> 綁定到地址addr

  • -p <port> 綁定到端口port

  • -s <path> 綁定到unix socket的路徑path

  • -C <childs> 指定產(chǎn)生的FastCGI的進(jìn)程數(shù),默認(rèn)為5(僅用于PHP)

  • -P <path> 指定產(chǎn)生的進(jìn)程的PID文件路徑

  • -u和-g FastCGI使用什么身份(-u 用戶 -g 用戶組)運(yùn)行,Ubuntu下可以使用www-data,其他的根據(jù)情況配置,如nobody、apache等

然后我們可以將這行代碼加入到/etc/rc.local文件底部,這樣系統(tǒng)啟動(dòng)的時(shí)候也可以同時(shí)啟動(dòng)PHP的FastCGI進(jìn)程。

“Linux下安裝配置Nginx服務(wù)器+PHP開發(fā)環(huán)境的方法”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識(shí)可以關(guān)注創(chuàng)新互聯(lián)網(wǎng)站,小編將為大家輸出更多高質(zhì)量的實(shí)用文章!

本文題目:Linux下安裝配置Nginx服務(wù)器+PHP開發(fā)環(huán)境的方法-創(chuàng)新互聯(lián)
分享URL:http://www.bm7419.com/article26/dpchcg.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站策劃、網(wǎng)站制作、網(wǎng)站建設(shè)、App開發(fā)、企業(yè)網(wǎng)站制作、電子商務(wù)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

手機(jī)網(wǎng)站建設(shè)