我昨天将lamp切换到lnmp后,有个程序模块$_SERVER["SERVER_NAME"]今天发现出问题了,虽然凭经验和直觉解决了。但还是GOOGLE了一下并验证我的判断是正确的,所以说经验能提供一定的判断力。具体如下:
在一个Nginx虚拟主机中,可以绑定多个server_name,比如:
server_name www.baidu.com baidu.com;
而server_name的先后顺序的不同,对PHP程序中使用$_SERVER["SERVER_NAME"]或getenv('SERVER_NAME')获取服务器域名是有影响的:
$_SERVER["SERVER_NAME"]或getenv('SERVER_NAME')获取的始终将是Nginx的server_name配置中的第一个域名,这一点在程序开发中需要注意。这第一个域名就相当于Apache虚拟主机配置中的ServerName,后面 的域名就相当于Apache的ServerAlias。