我的 nginx.conf 具有以下结构:
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在Docker中运行,所以它不知道,哪个域链接到它(托管系统上有nginx反向代理)。但我有一个问题,当我尝试从PHP访问$_SERVER['SERVER_NAME']
时,它是空的...如何将其设置为常量值?我试过的时候:
fastcgi_param SERVER_NAME example.com
它仍然是空的。
请注意,我必须使用SERVER_NAME
,因为它是第3部分代码。
答案 0 :(得分:4)
设置相同参数的多个fastcgi_param
语句(在同一块级别)将静默使用上一个语句中的值。 这包括通过include
指令读取的语句。
始终在fastcgi_param
语句后声明include fastcgi_params;
语句,以避免配置文件中出现任何歧义。