Nginx Tips: Php Uploading Progress Bar - 0000

本文是關於在Linux下安裝Nginx+PHP並測試文件上傳進度模塊的一個備忘。php

Runtime Environment

操做系統:Ubuntu 13.10 64bit (VMWare, 宿主是Windows 7 Ultimate)
CPU: 1 x 2 core(i5)
Mem: 3048M
HD: 100Ghtml

安裝Nginx

在安裝Nginx以前,你須要知道如何在Unity環境下運行Terminal(終端)。後文的命令都在Terminal下運行。
打開一個Terminal,準備運行各類命令。mysql

更新Ubuntu

sudo apt-get update
sudo apt-get upgrade

安裝Nginx:

sudo apt-get install nginx php5-fpm build-essential libc6 libpcre3 libpcre3-dev libpcrecpp0 libssl0.9.8 libssl-dev zlib1g zlib1g-dev

除nginx和php5-fpm外,其它都是用於未來編譯nginx和附加模塊所必需的。
官方關於Nginx的安裝請參考Here
安裝完成後,能夠經過瀏覽器(Ubuntu下一般是Firefox)打開http://localhost來查看Nginx是...。幸運的話能夠看到「Welcome to nginx」的頁面。如今php功能尚未打開,須要修改Nginx的設置文件。
關於Nignx配置文件的各類知識,請我的放狗或訪問站點Nginx.org。我的以爲先看看這個掃盲貼,先有個初步概念,而後再動手修改配置文件比較好。nginx

從新啓動Nginx

在後續以及開發過程當中,尤爲是在學習Nginx的配置設定時,會頻繁的從新啓動Nginx。使用如下腳本:sql

sudo /etc/init.d/nginx restart

也能夠使用如下命令平滑重啓:vim

sudo /etc/init.d/nginx -s reload

Configure Gedit

由於Nginx的設定文件屬於root,因此須要相應權限可以進行修改。在修改設定以前要進行如下準備工做:設置文本編輯器gedit(顯示的名稱爲Text Editor),使之能以root權限啓動。這樣咱們就可以使用gedit隨意修改屬於root的文件而沒必要擔憂權限不夠不能存盤的問題。我的偏好gedit。固然,喜歡vim的也儘可用之。
在/usr/share/applications/下找gedit.desktop文件,如下列命令打開:瀏覽器

gksudo gedit /usr/share/applications/gedit.desktop

根據提示輸入密碼,咱們將在gedit中編輯gedit的快捷方式配置文件:
將第19行修改成:bash

Actions=Window;Document;Runasroot;

在末尾,添加如下內容:app

[Desktop Action Runasroot]
Name=Run as root
Exec=gksudo -k -u root gedit
OnlyShowIn=Unity;

將Gedit鎖定到Unity的側欄上,之後右鍵單擊該圖標,就會有Run as root的選項,能夠隨意編輯各類文件。編輯器

Enable PHP

修改Nginx設定以打開PHP功能
主設定文件Nginx.conf如今不用理會。先用Gedit打開/etc/nginx/sites-available/default文件。
修改根目錄指向和添加對index.php的支持。我的偏好使用www做爲網站的根。

# REV:igame@Dec-19-2013: Change root directory from html to www.
# root /usr/share/nginx/html;
root /usr/share/nginx/www;
# REV:igame@Dec-19-2013: Add index.php.
index index.php index.html index.htm;

打開PHP功能,默認是註釋掉的。

# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
#
# REV:igame@Dec-18-2013: Enable PHP & FastCGI
location ~ \.php$ {
    # REV:igame@Dec-18-2013: Add the try_files tag as www.howtoforge.com's recommendation.
    try_files $uri =404;
    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;
    
}

如今,從新啓動Nginx使修改生效。修改也有可能出錯,請查看/var/log/nginx/error.log來檢查:

cat /var/log/nginx/error.log

排除錯誤後,繼續重啓Nginx。

修改PHP-fpm設置

修改/etc/php5/fpm/php.ini,找到cgi.fix_pathinfo,設置爲cgi.fix_pathinfo=0。

; cgi.fix_pathinfo provides *real* PATH_INFO/PATH_TRANSLATED support for CGI.  PHP's
; previous behaviour was to set PATH_TRANSLATED to SCRIPT_FILENAME, and to not grok
; what PATH_INFO is.  For more information on PATH_INFO, see the cgi specs.  Setting
; this to 1 will cause PHP CGI to fix its paths to conform to the spec.  A setting
; of zero causes PHP to behave as before.  Default is 1.  You should fix your scripts
; to use SCRIPT_FILENAME rather than PATH_TRANSLATED.
; http://php.net/cgi.fix-pathinfo
cgi.fix_pathinfo=0

測試PHP

按官方指引,在網站根目錄下建立info.php來測試PHP。內容以下:

<?php
phpinfo();
?>

而後,使用瀏覽器打開http://localhost/info.php就可...,盡情欣賞吧。


Tips


若是瀏覽不能打開info.php,一般是權限問題引發的。使用如下命令修改info.php的全部者和所屬組:

sudo chown root info.php
sudo chgrp root info.php

Security? What is that?
安裝和設置,也請參考這個連接。再有問題,請放狗搜索。

相關文章
相關標籤/搜索