內容目錄
直接從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