我有一个使用 CentOS 和 DirectAdmin 的 Web 服务器。我发现php
可以忽略虚拟主机DocumentRoot
。例如以下代码:
<?php print_r(scandir('/')); ?>
结果列在服务器的根目录上。
这可能与以用户权限运行的 SuPHP 和 php 脚本有关(当然允许列出根目录)?如何避免它并为 php/
目录设置路径?我希望/
指向虚拟主机DocumentRoot
,或者更好的是指向用户主文件夹。
答案1
您可以尝试 chroot 网络服务器,类似这样的操作可能会满足您的需要。
答案2
PHP 脚本默认不被 chroot,因此访问/
是意料之中的。如果您想要这种行为,您需要专门配置 PHP 以 chroot 脚本。如何执行此操作取决于 Web 服务器以及您如何执行 PHP。