非常奇怪的 AH00035 错误

非常奇怪的 AH00035 错误

我来这里的原因是我的服务器出现了非常奇怪的行为,并且我花了几个小时调查 AH00035 错误。

在我的服务器上,如果我创建一个简单的 php 文件索引.php

<? php echo "Hello world" ?>

我可以够到它。

当我使用通过 sftp 上传的完全相同的文件时,我收到 AH00035 错误。但是当我复制文件并应用与之前完全相同的权限和用户组时,我不再遇到该错误。

场景如下:

1-使用 sftp 上传文件

2 - 检查文件的权限

-rw-r--r--.  1 SFTP_JOR_USER sftp_users index.php

3-将文件移动到我的 html 目录

4 - 尝试访问文件:AH00035

5 - 更改用户

 chown apache:apache index.php

6 - 尝试访问文件:AH00035

奇怪的是

7 - 复制文件

cp index.php index2.php

8 - 检查权限

-rw-r--r--.  1 root   root index2.php

9-访问index2.php:你好世界(好的 !)

10 – 尝试在根目录下创建 index.php

chown root:root index.php

11 – 尝试访问 index.php : AH00035

12 - 更改 index.php 和 index2.php 用户

chown apache:apache index.php
chown apache:apache index2.php

因此,最后,我得到了完全相同的文件,具有完全相同的内容和完全相同的权限。

一个导致 AH00035 错误。另一个可以访问。

我真的不明白这里发生了什么。是因为通过 sftp 上传它们吗?

我真的不想每次在开发过程中进行更改时都复制我的文件,然后重命名它们,然后更改用户组。

提前致谢

答案1

已移动将原始文件从主目录复制到 Web 目录,而不是复制因此该文件的 SELinux 上下文是错误的。移动文件时,默认情况下会保留其 SELinux 上下文。

您可以通过以下任一方式解决此问题:

  1. 复制将文件从主目录移至 Web 目录(然后根据需要删除原始文件)。新文件将具有不同的 SELinux 上下文。
  2. 移动文件以mv -Z将 SELinux 上下文重置为目标的默认值。
  3. 使用 SFTP 将文件直接上传到其目标目录而不是您的主目录。

相关内容