我在这里是因为我的服务器上有一个非常奇怪的行为,并且我曾经调查 AH00035 错误几个小时。
在我的服务器上,如果我创建一个简单的 php 文件index.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 : Hello world (NICE !)
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 上传它们吗???
我真的不想复制我的文件,然后重命名它们,然后每次我对我的开发进行更改时更改用户组。
提前致谢
您将原始文件从主目录移动到 web 目录而不是复制它,因此文件的 SELinux 上下文是错误的。移动文件时,默认情况下会保留其 SELinux 上下文。
您可以通过以下任何方式解决此问题:
mv -Z
以将 SELinux 上下文重置为目标的默认值。