Nginx 伺服器塊不工作
免責聲明:澄清一下,我對 Linux 完全陌生,但我已經通過Google搜尋和個人研究配置了所有內容。
我有一個帶有 LEMP 堆棧的 Debian Wheezy 伺服器,我打算將它用作域的主機。
我讓 DNS 正常工作,因此當我進入域時,我會看到“歡迎使用 nginx”頁面。出現問題是因為我已經創建了將託管站點的目錄並用站點的文件填充它(index.php 是首頁),並且我還配置了伺服器塊(/etc/nginx/sites-可用/example.com) 像這樣:
UPDATED Server block server { listen 80; server_name example.com www.example.com; root /var/www/example.com; index index.php index.html index.htm; location / { try_files $uri $uri/ /index.html; } error_page 404 /404.html; error_page 500 502 503 504 /50x.html; location = /50x.html { root /var/www/example.com; } location ~ \.php$ { fastcgi_split_path_info ^(.+\.php)(/.+)$; fastcgi_pass unix:/var/run/php5-fpm.sock; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; } }
帶有指向啟用站點的目錄的符號連結。但即使在重新啟動服務和/或重新啟動機器之後,域仍會顯示“歡迎使用 nginx”消息。我已經嘗試用站點中類似問題的答案編輯其他行,到目前為止沒有任何變化,錯誤日誌也沒有顯示任何內容。什麼可能導致配置錯誤?
提前感謝您的答案
更新:這是 nginx.conf 文件。在評論和取消評論站點中的某些行和嘗試將文件複製到“啟用站點”目錄之間進行實驗之間,域現在只是簡單地拒絕載入,給出“未收到數據”錯誤
UPDATED nginx.conf user www-data; worker_processes 4; pid /var/run/nginx.pid; events { worker_connections 768; } http { ## # Basic Settings ## sendfile on; tcp_nopush on; tcp_nodelay on; keepalive_timeout 65; types_hash_max_size 2048; server_names_hash_bucket_size 64; include /etc/nginx/mime.types; default_type application/octet-stream; ## # Logging Settings ## access_log /var/log/nginx/access.log; error_log /var/log/nginx/error.log; ## # Gzip Settings ## gzip on; gzip_disable "msie6"; text/javascript; ## # Virtual Host Configs ## include /etc/nginx/conf.d/*.conf; include /etc/nginx/sites-enabled/*; }
**更新 2:**重新檢查我的配置後,我注意到權限設置不正確,並且預設設置以某種方式覆蓋了站點,即使它不在啟用站點的目錄中。我備份並刪除了預設值,只是為了更好地更改伺服器塊中的工作目錄,將站點的文件移動到我擷取的那個。它工作,現在網站載入。現在我不知道我是否應該將其添加到更新中或將其放在另一個問題中,但這裡有:現在的問題是該站點載入了 html 和 CSS,但由於某種原因不是 PHP,任何想法那?。我會根據我發現的內容進行更新,或者如果你們需要更多資訊,謝謝!
**最終更新:**花了一點時間,但我設法知道了 php 錯誤的所在,我開始探勘日誌,發現我需要安裝 php5-curl,之後問題得到了解決,現在網站完全可以工作了。
您使用的是 php CGI 還是 FPM?您只需要一個 fastcgi_pass 指令,但兩者都未註釋。
嘗試製作索引文件 index.html,並將這樣的文件放在伺服器根目錄中。重新載入 nginx 並查看它是否為它服務。添加 PHP 會使事情變得複雜,因此請確保 nginx 本身首先工作。
service nginx configtest
也很有幫助。更新:聽起來您在埠 9000 上使用 PHP-FPM。我會將 unix 套接字行註釋掉,並確保伺服器可以與自己的埠 9000 (TCP) 通信。就 nginx 而言,它聽起來像是在工作,但 PHP 可能不行。預設情況下,它將有自己的日誌文件用於 FPM 守護程序和一個用於 PHP 腳本的日誌文件(可能在
/var/log/
某個地方)。進入 /etc/php5/fpm 並開始查看 .ini 文件。