为什么我不能使用 localhost 打开我移动的文件,即使权限相同并且我在 Apache 配置中更改了 DocumentRoot

为什么我不能使用 localhost 打开我移动的文件,即使权限相同并且我在 Apache 配置中更改了 DocumentRoot

我正在学习在 macOS Monterey 上使用 Apache。我有一个简单的测试文件test.php

<?php
echo "Test";

我将此文件放在我的主目录(/Users/my_username)中,并更新我的 Apache 配置文件(/etc/apache2/httpd.conf),如下所示:

DocumentRoot "/Users/my_username "                                                                                                                                          
<Directory "/Users/my_username">
... some options
</Directory>

一旦我重新启动了 Apache(sudo apachectl restart),我就可以http://localhost/test.php在浏览器中打开并得到正确的输出。

当我将文件放在test.php(/Users/my_username/Documents或另一个较低的子目录中时,问题就出现了。我相应地更新了 Apache 配置文件,即

DocumentRoot "/Users/my_username/Documents"                                                                                                                                          
<Directory "/Users/my_username/Documents">
... some options
</Directory>

然后再次重启 Apache。但是,现在http://localhost/test.php出现了这个错误:

Warning: Unknown: Failed to open stream: Operation not permitted in Unknown on line 0

Fatal error: Failed opening required '/Users/my_username/Documents/test.php' (include_path='.:/opt/homebrew/Cellar/php/8.2.3/share/php/pear') in Unknown on line 0

在网上搜索答案后,我认为这个问题可能是由文件权限引起的。但每种情况下的文件权限都是相同的:

ls -l /Users/my_username/test.php /Users/my_username/Documents/test.php
-rwxr-xr-x  1 my_username  staff  508 Mar  4 12:46 /Users/my_username/Documents/test.php
-rwxr-xr-x  1 my_username  staff  508 Mar  4 13:03 /Users/my_username/test.php

ls -ld /Users/my_username/ /Users/my_username/Documents/    
drwxr-xr-x+ 52 my_username  staff  1664 Mar  4 13:17 /Users/my_username/
drwxr-xr-x+ 12 my_username  staff   384 Mar  4 13:04 /Users/my_username/Documents/

为什么权限相同,响应却不同?

相关内容