我有以下结构的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反向代理)。但是我有一个问题,当我尝试$_SERVER['SERVER_NAME']
从PHP访问时,它是空的...如何将其设置为恒定值?当我尝试:
fastcgi_param SERVER_NAME example.com
它仍然是空的。
请注意,我必须使用SERVER_NAME
,因为它在第3部分代码中。
fastcgi_param
设置相同参数的多个语句(在同一块级别)将默默使用最后一条语句中的值。这包括通过include
指令读取的语句。
始终在fastcgi_param
语句后include fastcgi_params;
声明语句,以避免配置文件中出现歧义。