nginx+php

    最近安裝nginx+php,用於測試,因爲第一次安裝,所以在安裝過程中遇到各種問題,網上搜索了許多關於這方面的資料。網上資料很多要麼是不負責的copy,有誤人之嫌,要麼就是因版本過低,不適合目前版本的安裝。經過多日摸索和羣裏熱心Q友的幫助,終於成功地搭建了nginx+php.


環境:centos6.5

      nginx1.6.2

      php5.5.10

一、安裝nginx

1、安裝nginx依賴包(gcc、openssl-devel、pcre-devel、zlib-devel)

   檢查系統是否已安裝了gcc、openssl-devel、pcre-devel、zlib-devel:

   rpm -qa gcc、openssl-devel、pcre-devel、zlib-devel

   如果有未安裝的依賴包,可以使用yum安裝:

   yum -y install XX

2、依賴包安裝完後,下載和安裝nginx

   #cd /usr/local/src #進入src目錄

   #wget http://nginx.org/download/nginx-1.6.2.tar.gz

   #tar -zxvf nginx-1.6.2.tar.gz #解壓文件

   #cd nginx-1.6.2

   #./configure --prefix=/usr/local/nginx-1.6.2 --with-http_stub_status_module \

      --with-google_perftools_module

   #make  #編譯nginx

   #make install

   --prefix用於指定安裝路徑,--with-google_perftools用於啓用支持TCMalloc優化nginx的google-perftools模塊(如果不用TCMalloc優化nginx,可以不加此參數)。可以通過 ./configure --help查看更多的參數。  

   到此,nginx已安裝完成,安裝目錄爲/usr/local/nginx-1.6.2.

二、安裝php5.5.10

    因爲nginx不支持對外部的直接調用或者解釋,要使nginx支持php就必須安裝Fastcgi程序。PHP5.0之前的版本沒有集成php-fpm,要作爲補丁編譯到php內核中。PHP5.0之後的版本已經集成了php-fpm,只需要在編譯安裝PHP時加入--enable-fpm參數。


1、檢查、安裝依賴包(gcc、gcc-c++、libxml2、libxml2-devel、autoconf、libjpeg、libjpeg-devel、libpng、libpng-devel、freetype、freetype-devel、zlib、zlib-devel、glibc、glibc-devel、glib2、glib2-devel)

   #rpm -qa  #檢查依賴包是否安裝

   #yum -y install XX #安裝依賴包


2、依賴包安裝好後,下載和安裝PHP-5.5.10

   #cd /usr/local/src

   #wget http://mirrors.sohu.com/php/php-5.5.10.tar.gz

   #tar -zxvf php-5.5.10

   #cd php-5.5.10

   #./configure --prefix=/usr/local/php5.5.10 --enable-fpm

   #make #編譯PHP,編譯過程耗時比較長,需要等待

   #make test #測試,測試後沒有error提示,則可以進行安裝

   #make install

   在./configure這一步驟,網上很多資料都提到要加enable-fast-fcgi,但在PHP5.0之後的版本中,這個參數是無效的,也就是說不存在這個參數。如果加了這個參數,編譯會提示無效參數,通過./configure --help查看幫助,也沒有此參數信息,這是新版本與舊版本另一個不同之處。

   make install後,會有二個warning提示,這是因爲pear版本過低的原因。

   到此PHP已安裝完成,但因爲安裝目錄沒有php.ini這個全局配置文件,需要從安裝包中複製php.ini-production到/usr/local/php5.5.10/lib,並命名爲php.ini.

   #cp php.ini-production /usr/local/php5.5.10/lib/php.ini

   配置php.ini就不在此細說,需要注意的是配置文件中指定的用戶和用戶組要與nginx配置文件中指定的用戶和用戶組一致。

3、啓動php-fpm

   #/usr/local/php5.5.10/sbin/php-fpm

   查看php-fpm是否啓動和監聽IP、端口,通過ps和netstat查看相關信息

[root@bogon php5.5.10]# netstat -antl | grep 9000
tcp        0      0 127.0.0.1:9000              0.0.0.0:*                   LISTEN      
[root@bogon php5.5.10]# ps -ef | grep php
root     10637     1  0 06:04 ?        00:00:00 php-fpm: master process (/usr/local/php5.5.10/etc/php-fpm.conf)
nobody   10638 10637  0 06:04 ?        00:00:00 php-fpm: pool www                
nobody   10639 10637  0 06:04 ?        00:00:00 php-fpm: pool www                

三、配置nginx來支持PHP

1、nginxr的配置文件nginx.conf在/usr/local/nginx/conf目錄下。下面是在nginx下支持PHP解析的一個虛擬主機配置實例。  

server {
        listen       80;
        server_name  192.168.0.73;
        location / {
            root   html;
            index  index.html index.htm;
        }
        location ~ \.php$ {
                   root html;
                   fastcgi_pass 127.0.0.1:9000;
                   fastcgi_index index.php;
                   fastcgi_param SCRIPT_FILENAME  /usr/local/ngin/html$fastcgi_script_name;
                   include      fastcgi_params;
                   }

    需要注意紅色字體的地方,必須爲爲html目錄的絕對路徑,而不是相對路徑,否則在訪問PHP網頁時會出錯。

    爲確保配置文件正確,使用下面的命令來檢測配置文件的正確性:

    #/usr/local/nginx/sbin/nginx -t -c /usr/local/nginx/conf/nginx.conf

    如果配置文件正確,則會顯示如下:

nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful

2、啓動nginx

      #/usr/local/nginx/sbin/nginx

     查看nginx進程

     [root@bogon php5.5.10]# ps -ef | grep nginx
      root 3894 1 0 03:30 ?  00:00:00 nginx: master process /usr/local/nginx/sbin/nginx
      nobody 12674 3894 0 06:44 ? 00:00:00 nginx: worker process      

3、測試nginx對PHP的支持

   在/usr/local/nginx/html新建一個index.php文件,內容如下:

  <?php phpinfo(); ?>

   在瀏覽器訪問:http://192.168.0.73/index.html,瀏覽器會顯示"Welcome to Nginx!",則表示nginx正常運行。

   接着瀏覽器訪問:http://192.168.0.73/index.php,如果php能夠正常解析,會出現PHP安裝配置以及功能列表信息,如下圖顯示:

spacer.gif


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章