2012-02-27 80 views
1

我正在建立一個運行nginx的新Ubuntu服務器,並且我試圖在網站上運行一個小型的WordPress博客。我似乎無法得到這部分的配置,我仔細查看了所有可以找到的文檔和在線幫助。nginx/PHP的配置問題

我在www.example.com/blog上運行博客,我不關心任何更高的位置塊,我只想爲這個區域配置正確的配置。我正在嘗試使用:

location /blog/ { 
     root /usr/local/www/data; 

     try_files $uri $uri/ index.php?$args; 
     index index.php; 
     location ~ \.php$ { 
        fastcgi_pass 127.0.0.1:9000; 
        fastcgi_index index.php; 
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; 
        fastcgi_split_path_info ^(/blog)(/.*)$; 
        include fastcgi_params; 
     } 
} 

我有php-cgi在127.0.0.1:9000上運行。

當我嘗試訪問www.example.com/blog或blog /或blog/index.php時,出現「無輸入文件指定」錯誤。作爲一個測試,我創建了一個phpinfo.php文件,並將其放到/ usr/local/www/data/blog /中,但是出現了相同的錯誤。

然而,作爲進一步的測試,我把文件phpinfo.php的在/,然後改變帕拉姆線「fastcgi_param SCRIPT_FILENAME /phpinfo.php;」,而工作,如此看來,我的FastCGI進程正常運行,但出於某種原因,我沒有在nginx中正確設置路徑。

我已經仔細研究了這個問題的討論,在http://blog.martinfjordvald.com/2011/01/no-input-file-specified-with-php-and-nginx/,我已經看過文件權限,據我所知,這一切都OK。/usr/local/www/data/blog樹中的每個目錄都具有執行權限,down上的/ usr/local/www中的所有內容均由運行nginx和FastCGI的www-data用戶擁有並可讀取。

日誌對此沒有幫助;即使將級別設置爲info,我也沒有在錯誤日誌中得到任何信息。

謝謝。

回答

2

從配置中刪除此

fastcgi_split_path_info ^(/blog)(/.*)$; 
+0

沒有,根本指令追加/博客/位置的請求;請參閱http://wiki.nginx.org/HttpCoreModule#root。我最初有另一種方式(這是類似Apache的配置),但被糾正了。無論哪種方式,它都沒有區別。 – user1235777 2012-02-27 15:42:44

+0

對不起;(只是我的第一個想法,我試了一下,如果我跳過fastcgi_split_path_info ^(/ blog)(/.*)$,就得到它的工作;否則我得到了拒絕訪問 – Mattias 2012-02-27 16:01:27

+0

它可以是你的fastcgi_params ...文件 – Mattias 2012-02-27 16:03:15