直接從Raspbian 套件庫安裝

sudo apt-get -y install nginx

或是可以從官網先下載原始檔並解壓縮。

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

安裝相依套件後,進行編譯及主程式的安裝。

apt-get install libpcre3* libssl-dev gcc

設定編譯選項

./configure --prefix=/usr --sbin-path=/usr/sbin/nginx --conf-path=/etc/nginx/nginx.conf --pid-path=/var/run/nginx.pid --lock-path=/var/lock/nginx.lock --user=www-data --group=www-data --http-log-path=/var/log/nginx/access.log --error-log-path=/var/log/nginx/error.log --http-client-body-temp-path=/var/lib/nginx/body --http-proxy-temp-path=/var/lib/nginx/proxy --http-fastcgi-temp-path=/var/lib/nginx/proxy --http-uwsgi-temp-path=/var/lib/nginx/uwsgi --http-scgi-temp-path=/var/lib/nginx/scgi --with-http_ssl_module --with-http_stub_status_module --with-debug

編譯安裝

make && sudo make install

安裝完畢可以測試編輯檔是否正確

sudo nginx -t

服務啟動

sudo service nginx restart

php安裝直接從Rsapbian套件庫安裝

sudo apt-get -y install php5-fpm

編輯 nginx 的主站台設定檔

sudo vi /etc/nginx/sites-enabled/default

找到下列的文字。
########## 我是分隔線 ##########
# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
#
#location ~ \.php$ {

#       fastcgi_split_path_info ^(.+\.php)(/.+)$;
#       # NOTE: You should have "cgi.fix_pathinfo = 0;" in php.ini
#
#       # With php5-cgi alone:
#       fastcgi_pass 127.0.0.1:9000;
#       # With php5-fpm:
#       fastcgi_pass unix:/var/run/php5-fpm.sock;
#       fastcgi_index index.php;
#       include fastcgi_params;
#}
########## 我是分隔線 ##########

改成這樣。
########## 我是分隔線 ##########
# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
#
location ~ \.php$ {

       fastcgi_split_path_info ^(.+\.php)(/.+)$;
       # NOTE: You should have "cgi.fix_pathinfo = 0;" in php.ini

       # With php5-cgi alone:
#       fastcgi_pass 127.0.0.1:9000;
       # With php5-fpm:
       fastcgi_pass unix:/var/run/php5-fpm.sock;
       fastcgi_index index.php;
       include fastcgi_params;
}
########## 我是分隔線 ##########

調整 PHP-FPM 設定

Nginx 配合 PHP-FPM 時,有一個漏洞會導致在瀏覽器輸入類似 http://raspberrypi/123.jpg/bug.php 的 URL 時,PHP 檔案會被成功執行

打開 PHP-FPM 的主設定檔。

sudo vi /etc/php5/fpm/php.ini

在設定檔裡找到 cgi.fix_pathinfo=1,改成 cgi.fix_pathinfo=0。如果沒有找到的話,也請加上這個參數

啟動服務

重新啟動 Nginx 及 PHP 服務。

sudo service nginx restartsudo 
service php5-fpm restart

參考網頁

http://blog.itist.tw/2014/10/raspberry-pi-php-fpm.html

By tony

自由軟體愛好者~喜歡不斷的思考各種問題,有新的事物都會想去學習嘗試 做實驗並熱衷研究 沒有所謂頂天的技術 只有謙虛及不斷的學習 精進專業,本站主要以分享系統及網路相關知識、資源而建立。 Github http://stnet253.github.io

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *

這個網站採用 Akismet 服務減少垃圾留言。進一步了解 Akismet 如何處理網站訪客的留言資料