我正在学习在 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/
为什么权限相同,响应却不同?