Linux Xampp&;Apache:Alias';访问被拒绝';

Linux Xampp&;Apache:Alias';访问被拒绝';,linux,apache,permissions,xampp,alias,Linux,Apache,Permissions,Xampp,Alias,我刚刚在我的Arch Linux系统上安装了Xampp。我现在想做的是: 我的PHP工作目录位于我的主文件夹中(位于/home/luke/PHP)。我希望Apache两次访问这些文件,因此我在ArchLinuxWiki上遵循了,并为此目录创建了一个别名。 这就是我的httpd.conf(别名部分)的样子: Alias /PHP /home/luke/PHP <directory /home/luke/PHP> AllowOverride FileInfo Limit Opti

我刚刚在我的Arch Linux系统上安装了Xampp。我现在想做的是:

我的PHP工作目录位于我的主文件夹中(位于/home/luke/PHP)。我希望Apache两次访问这些文件,因此我在ArchLinuxWiki上遵循了,并为此目录创建了一个别名。 这就是我的httpd.conf(别名部分)的样子:

Alias /PHP /home/luke/PHP
<directory /home/luke/PHP>
    AllowOverride FileInfo Limit Options Indexes
    Order allow,deny
    Allow from all
</directory>
因此,我创建的别名应该可以工作,但是我需要做什么才能让Apache服务器访问我的/home/luke/PHP文件夹呢


我还尝试在htdocs文件夹中创建一个符号链接,但也没有成功。

Apache需要能够:

  • 从您的/home/luke/PHP目录中读取——您已经允许这样做了

  • 遍历作为该目录父目录的目录

通常,您必须在主目录上向其他人授予执行权限(这意味着他们将能够遍历该目录,转到其子目录):

chmod o+x /home/luke


当然(特别是在多用户环境中),然后,您必须确保其他用户无法访问您的其他目录和文件——通常是通过删除
group
other
在主目录下的目录/文件上可能拥有的所有权限来实现的。

我通过如上所示配置别名解决了我的问题,但将Apache的用户设置为我的用户(“卢克”),并将集团排除在外:

# User/Group: The name (or #number) of the user/group to run httpd as.
# It is usually good practice to create a dedicated user and group for
# running httpd, as with most system services.
User luke
#Group http
之后,我将
htdocs
-和
PHP
-目录的所有者更改为我的用户(luke),并重新启动了LAMPP


现在一切都正常了。还要感谢Pascal MARTIN和hornetbzz!

我更改了执行权限,正如您所示,Apache仍然不会打开PHP文件夹中的文件。@Lukas Knuth:您可能必须递归更改文件和目录的权限,如:find/home/luke-type f chmod 644{}\;find/home/luke-键入d chmod 755{}\;并确保它们属于apache用户“在您的apache配置文件中,并且存在于您的系统中:chown-R nobody:nobody/home/lukeSorry,感谢您刚才回到这里,但是我在度假时没有我的机器;)。Apache在“http”用户和组下运行。如果我更改了“PHP”目录的所有者(使用chown),我将无法在其中写入文件。我想,将文件夹模式设置为777,这样任何人都可以在其中写入内容,这将修复…“遍历该目录的父目录”:这就是这个错误的线索。很难找到正确的答案。当然chmod必须是递归的!非常感谢。
# User/Group: The name (or #number) of the user/group to run httpd as.
# It is usually good practice to create a dedicated user and group for
# running httpd, as with most system services.
User luke
#Group http