2017-01-12 48 views
1

nginx.conf具有以下結構:nginx的設定參數SERVER_NAME

http { 
    [ ... ] 

    server { 
     [ ... ] 

     location ~ \.php$ { 
      fastcgi_pass unix:/run/php/php7.0-fpm.sock; 
      fastcgi_split_path_info ^(.+\.php)(/.*)$; 
      fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; 
      fastcgi_param SERVER_NAME $host; 
      fastcgi_read_timeout 3000; 
      include fastcgi_params; 
     } 
    } 
} 

這裏面nginx的運行泊塢所以也沒辦法,這是域名鏈接到它(那裏是nginx的反向代理託管系統)。但我有一個問題,當我嘗試從PHP訪問$_SERVER['SERVER_NAME']時,它是空的......我如何將它設置爲常量值?當我嘗試時:

fastcgi_param SERVER_NAME example.com 

它仍然是空的。

請注意,我必須使用SERVER_NAME,因爲它在第三部分代碼中。

+2

對不起,對於顯而易見的問題,但你重新加載nginx配置? –

+0

是的,我嘗試過,但沒有成功... –

+0

它重新加載沒有錯誤?除了字符串'fastcgi_param SERVER_NAME example.com'外,一切都看起來不錯,最後沒有分號。 –

回答

4

多個fastcgi_param語句(在相同的塊級別)設置相同的參數將靜默使用最後一條語句的值。 這包括通過include指令閱讀的陳述。

總是在include fastcgi_params;語句後聲明fastcgi_param語句以避免配置文件中出現任何歧義。

相關問題