PHP共享对$#u SERVER[';DOCUMENT#u ROOT';]的托管解释
我一直在使用一个PHP脚本对文件进行自动版本控制,在这个脚本中,它使用PHP共享对$#u SERVER[';DOCUMENT#u ROOT';]的托管解释,php,apache,versioning,document-root,Php,Apache,Versioning,Document Root,我一直在使用一个PHP脚本对文件进行自动版本控制,在这个脚本中,它使用$\u SERVER['DOCUMENT\u ROOT']获取定位文件的路径 它在大多数情况下都能工作,但每隔一段时间,服务器(共享主机)似乎会误解路径 它应该始终是:/home/username/public\u html 但有时它会显示为:/usr/local/apache/htdocs,然后出现错误 这是脚本中使用它的行: $ver = '.'.filemtime($_SERVER['DOCUMENT_ROOT'].$u
$\u SERVER['DOCUMENT\u ROOT']
获取定位文件的路径
它在大多数情况下都能工作,但每隔一段时间,服务器(共享主机)似乎会误解路径
它应该始终是:/home/username/public\u html
但有时它会显示为:/usr/local/apache/htdocs
,然后出现错误
这是脚本中使用它的行:
$ver = '.'.filemtime($_SERVER['DOCUMENT_ROOT'].$url).'.';
有没有其他方法来获取网站根目录而不是上面一行中的服务器?比如在域或子域的顶部,比如定义重写基的位置
非常感谢您的输入。在脚本中明确引用它可以解决问题,只要默认情况下文档根不发生更改:
$ver = '.'.filemtime('/home/username/public_html/'.$url).'.';
您应该始终能够访问此目录,因为共享主机结构通常不会更改(除非他们想失去客户!)。让他们知道这件事正在发生,并询问原因。如果这件事变为
/usr/local/apache/htdocs
,您可能需要尽快与您的托管公司联系。这可能是主机提供商更改了某些内容,或者某些内容配置非常错误。总之,跟你的主机提供商谈谈。谢谢你的意见,是的,我确实让他们知道了。我使用Bluehost,当时我正在与客户服务部交谈,解释他们使用的任何结构都会干扰试图检索根的编程。他们只是继续把责任归咎于脚本,并躲在“不帮助编码”的背后。碰巧知道是否有其他PHP函数在获取路径时不会深入到那么深的地方?您可以尝试这里提到的方法/答案:-其中一种是相对的。我使用的正确吗?我尝试了这个方法,但它破坏了脚本:$ver\u id='..filemtime(dirname(\uu FILE\uu)。$ver\u url)。'代码>