【问题标题】:Apache: Copied files from another directory do not workApache:从另一个目录复制的文件不起作用
【发布时间】:2013-07-21 22:00:46
【问题描述】:

我最近在我的 Oracle Linux 计算机上使用 PHP (5.3) 设置了我的 Apache 服务器 (2.2)。最初,我创建了三个文件:index.htmlindex.phpcountries.html。我相信(不记得 100%)我在 /var/www/html/ 文件夹中创建了这些文件,并且这些文件被自动授予所有者和组的 root 权限。但是,当我将 index.html 复制到我的主目录(不是根目录)时,我不再能够访问该文件(403 消息 - 禁止访问),即使我将它移回原来的 /var/www/html/ 文件夹并更改了其所有者和组的权限返回到 root

值得注意的是,我的index.php 文件是默认页面,即使它没有在DirectoryIndex 中列出。此外,我通过复制index.php 文件、删除原始文件、将复制的版本移回/var/www/html/ 文件夹并更改权限来尝试使用它。同样的结果,它不起作用。唯一的区别是 php 文件引发了内部服务器错误(HTTP 错误 500)。

我已将我的countries.html 文件添加到我的DirectoryIndex 行中,现在它将显示为默认页面。但是,如果我删除它并保留我的DirectoryIndex 行:

DirectoryIndex index.html index.html.var

那么它将默认到我的index.php页面并输出内部服务器错误。

现在,我发现了几个问题:

  1. 尽管具有相同的权限,但复制的文件不起作用。我相信我复制index.php 文件的实验证明了这一点。
  2. index.php 的默认页面未列在DirectoryIndex 中,但它仍然是默认页面。

任何帮助/见解将不胜感激。

【问题讨论】:

    标签: apache http-status-code-403 cp directoryindex


    【解决方案1】:

    这也可能发生在您使用旧 php 版本并且在您的 php 文件中有一些与新 php 版本相关的语法的情况下。与 php 5.3 一样,我们没有短数组表示法,但在 5.5 中我们也有 5.4,我想这也会导致内部服务器错误。

    通过

    查看你的php版本
    php -v
    

    如果它的版本为 5.3 或更低,请检查您的 php 文件是否包含任何新内容,例如新的短数组表示法 []。

    不知道我是否在您想要的相同上下文中说话。因为我没有很好地理解这个问题。

    【讨论】:

    • 不太确定这个短数组符号应该是什么。这是 php.ini 文件中的一个选项吗?还是这更像是文件中使用的语法?
    • 这是新的数组声明语法。之前我们使用 $arr = array()。现在我们也可以做 $arr = [].
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-02-15
    • 2017-11-18
    • 1970-01-01
    • 2013-06-01
    相关资源
    最近更新 更多