【问题标题】:PHP shared hosting interpretation of $_SERVER['DOCUMENT_ROOT']$_SERVER['DOCUMENT_ROOT']的PHP共享主机解释
【发布时间】:2013-03-19 00:50:44
【问题描述】:

我一直在使用 PHP 脚本对文件进行自动版本控制,在其中,它使用 $_SERVER['DOCUMENT_ROOT'] 来获取文件的路径。

它在大多数情况下都有效,但每隔一段时间,服务器(共享主机)似乎会误解路径。

应该总是:/home/username/public_html

但有时会出现:/usr/local/apache/htdocs,然后出现错误。

这是使用它的脚本行:

$ver = '.'.filemtime($_SERVER['DOCUMENT_ROOT'].$url).'.';

是否有另一种方法来获取网站根目录而不是上面一行中的服务器?就像 / 在域或子域的顶部,比如 RewriteBase 将在哪里定义?

欢迎输入。

【问题讨论】:

  • 如果更改为/usr/local/apache/htdocs,您可能需要尽快与您的托管公司联系。这可能是托管服务提供商更改了某些内容或某些配置非常错误。最重要的是,请与您的托管服务提供商联系。

标签: php apache versioning document-root


【解决方案1】:

只要默认情况下 doc_root 不更改,在脚本中明确引用它即可解决问题:

  $ver = '.'.filemtime('/home/username/public_html/'.$url).'.';

您应该始终有权访问此目录,因为共享主机结构通常不会改变(除非他们想失去客户!)。让他们知道它正在发生并问为什么。

【讨论】:

  • 感谢您的意见,是的,我确实让他们知道了。我使用 Bluehost,我正在与客户服务人员交谈,解释他们使用的任何结构都会经常干扰试图检索根目录的编程。他们只是继续将其归咎于脚本,并躲在他们“不帮助编码”的背后。碰巧知道有没有替代的PHP函数在获取路径的时候不会那么深入?
  • 您可以尝试这里提到的方法/答案:stackoverflow.com/questions/8952896/… - 其中之一是相对的。
  • 我使用正确吗?我试过这个,它破坏了脚本:$ver_id = '.'.filemtime(dirname(__FILE__).$ver_url).'.';
猜你喜欢
  • 1970-01-01
  • 2013-08-12
  • 2011-12-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多