在安裝前,先了解下nginx和php之間的關系
nginx就像個傳話官,把請求轉發給php-fpm。這就需要知道php-fpm的聯系方式, listen的值就是php-fpm的電話號。
當請求來的時候,nginx就給php-fpm打電話,說有個人找你,php-fpm就派個人出來接客人,派出的這個人呢,就是一個php進程。
看到這裡相信聰明的你就明白了,php-fpm是負責管理調度php進程的。
言歸正傳開始配置
因為是個人電腦也就來個簡單的直接使用apt命令了
sudo install nginx sudo apt-get install php7.0-fpm php7.0-mysql php7.0-common php7.0-curl php7.0-cli php7.0-mcrypt php7.0-mbstring php7.0-dom
多裝點php模塊沒壞處,省的到時候報錯,後面如果缺少組件還可以繼續安裝,很方便。
如果是下載的源碼包自己編譯,就比較麻煩了,需要先安裝一些以來的類庫。
這裡一切從簡,主要是介紹nginx與php7是如何配合工作的。
執行上面兩條命令後,軟件就大功告成了。
首先我們先看一下php-fpm的配置/etc/php/7.0/fpm/pool.d/www.conf(如果是centos或編譯安裝,配置文件的地址會有所不同),在配置文件中找到
listen=/run/php/php7.0-fpm.sock #也有可能是 listen=127.0.01:9000
不管是什麼反正你記住listen=什麼,這個很重要,這說明fpm在監聽什麼
下面看nginx的配置/etc/nginx/sites-enabled/default,(如果是centos或編譯安裝,配置文件的地址會有所不同),在配置文件中找到server{},這個代表你的虛擬主機。在其中找到
location ~ \.php$ { include snippets/fastcgi-php.conf; # With php7.0-cgi alone: # fastcgi_pass 127.0.0.1:9000; # With php7.0-fpm: fastcgi_pass unix:/run/php/php7.0-fpm.sock; }
看到fastcgi_pass了嗎,這個代表將請求轉交給誰。給誰呢?沒錯聰明的你一定明白了,就是上面我們在php-fpm中監聽的那個。
如果php-fpm中是listen=/run/php/php7.0-fpm.sock
那麼nginx中要使用fastcgi_pass unix:/run/php/php7.0-fpm.sock;
如果php-fpm中是listen=127.0.01:9000
那麼nginx中要使用fastcgi_pass 127.0.0.1:9000;