更好的方法来检查,如果脚本开发服务器或督促服务器上运行

问题描述:

几年来,我一直在使用通常建议的方法来检查是否一个页面被检查本地或远程调用$_SERVER['SERVER_ADDR']是否等于127.0.0.1或者是空的。其他问题已经讨论过,例如thisthis。其他超全球植物如$_SERVER['REMOTE_ADDR']也经常被提及。更好的方法来检查,如果脚本开发服务器或督促服务器上运行

随着时间的推移,我发现这种方法有时似乎失败了。

我真正想知道的是脚本是否已被调用我的dev的服务器(XAMPP,WAMP,IDE调试器...)或在生产服务器上。这样就可以正确设置Web根目录上的脚本路径。虽然这可以工作99.999%,但有时候,当Apache重定向到404页时,$_SERVER['SERVER_ADDR']必须丢失,并且在生产服务器上运行的脚本通过“本地”测试。

因此,我正在寻找其他方法。当然,我可能在Apache中做了一些错误的事情,但无论如何,在PHP中进行一个简单的测试都是非常好的。

一对夫妇的想法来找我,我不知道这是否是安全的,或者是否有人有更好的主意。

A.一个想法是看看当前路径:像

define ('DEV_SERVER', 

      (substr(

        strtolower($_SERVER['DOCUMENT_ROOT']), 

        0,8) 

      =="c:/xampp") 
); 

B.另一个想法是要检查有特定名称的本地文件的存在,但碰到文件系统似乎工作太多了。

在此先感谢您的所有见解!

+0

只需定义一个相应的环境变量(在你的apache虚拟主机配置中) – zerkms

你也可以尝试gethostname()。

虽然,最好的方法可能是只部署开发具体的东西到dev的服务器。即将这些脚本与生产/回归测试脚本分开。您不希望这些DEV服务器特定的内容不小心变得对用户可见。