在nginx中葯使用php可不像apache那樣,因為apache是把php當做自己的一個模塊來啟動的,
而我們的nginx是把http請求轉發給php程序,也就是說,php和nginx是相互獨立的的進程
php於nginx的通訊,我們稱為fastcgi運行方式。
下面我們來說說nginx怎樣整合php(nginx的安裝可以看看我的文章“linux下編譯安裝nginx”)。
1、首先,我們應該要獲取php的安裝包。
去php官網下載:http://www.php.net/downloads.php
這里我選的是php5.6
將下載好的安裝包放在linux目錄下(我是放在/root目錄下,大家可以隨意放置,可以創建一個專門放置安裝包的目錄。)
2、解壓安裝包:tar zxvf php-5.6.39.tar.gz
進入到解壓后的目錄:cd php-5.6.39/
./configure配置: ./configure --prefix=/usr/local/fastphp --with-mysql=mysqlnd --enable-mysqlnd --with-gd --enable-gd-native-ttf --enable-gd-jis-conv --enable-fpm
(如果在configure的過程中出現了報錯,按照錯誤提示進行操作,一般是一些依賴軟件沒有安裝,使用yum進行安裝)
make
make install
3、配置一些配置文件。
進入php安裝目錄:cd /usr/local/fastphp/
將php配置文件拷貝到 php安裝目錄中的lib目錄下:cp /root/php-5.6.39/php.ini-development ./lib/php.ini
cp ./etc/php-fpm.conf.default ./etc/php-fpm.conf
啟動php:[root@VM_16_2_centos sbin]# ./php-fpm //其中php-fpm在php安裝目錄的sbin目錄下,直接執行就行了
4、配置nginx.conf文件。
vi /usr/local/nginx/conf/nginx.conf
在nginx.conf文件中加入紅色部分。
server {
listen 80;
server_name localhost;
#charset koi8-r;
#access_log logs/host.access.log main;
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 $document_root$fastcgi_script_name;
include fastcgi_params;
}
#error_page 404 /404.html;
5、重啟nginx。
/usr/local/nginx/sbin/nginx -s reload
6、在nginx的安裝目錄下的html目錄中寫一個test.php程序文件。
<?php
phpinfo();
?>
7、訪問。http://www.panchao.com/test.php(我用的是雲服務器,有外網ip,在本地電腦配了hosts:111.231.226.228 www.panchao.com 所以能用www.panchao.com 這個域名來訪問,如果大家是本地虛擬機的話可以用127.0.0.1/test.php來訪問。)我們如果得到這樣的結果,則表示我們nginx和php的整合成功了。