这就是我要完成的工作:创建从var/www/html到主目录(~)文件夹中目录的符号链接(symbolic link)。我尝试在首页中符号链接(symbolic link)的目录(~)是一个git存储库,如果有什么不同的话。我在此目录中有一个index.html文件。

我已使用以下命令在Amazon EC2实例上创建了指向var/www/html的符号链接(symbolic link):ln -s ~/dirIWant/ html,但是当我尝试访问网页时,这导致以下错误:403 Forbidden "You don't have permission to access / on this server."我正在使用apache。

是否有人尝试做类似的事情并使它起作用?

当前,当我访问我的网站www.blah.com时,它显示此403错误。我尝试使用sudo chown -h apache:apache更改权限,但这似乎无济于事。你还有其他建议吗?

最佳答案

这是因为apache以apache用户身份运行,并且/var/www/html由Amazon Linux AMI中的root拥有。您可以按照Frank的建议更改所有权/权限,或使用 userdirs

在我看来,您希望可以从主目录(~)方便地访问Web服务器的文件夹。我在EC2上想要这样的东西,并决定使用每用户Web目录(mod_userdir)。

使用此功能,您可以将HTTP服务器空间的一部分保留在用户拥有的目录中。每个用户都有自己的目录,默认情况下位于/home/username/public_html中。通过将/~username附加到您的域,Internet可以访问该目录中的页面,脚本和其他文件。此外,您可以将httpd.conf中该文件夹的名称从public_html更改为其他名称,例如gitRepo。在这种情况下,如果index.html中有一个/home/ec2-user/gitRepo/index.html文件,则公众可以通过http://ec2-hostname.aws.amazon.com/~ec2-user/index.html访问该文件,并由ec2-user拥有,这对于从用户级别编辑文件很方便。

要在EC2上进行设置(假设您要使用的文件夹名称为“gitRepo”),请使用nano /etc/httpd/conf/httpd.conf打开Apache配置文件并向下滚动,直到看到<IfModule mod_userdir.c>。然后将本节更改为如下所示:

<IfModule mod_userdir.c>
    #
    # UserDir is disabled by default since it can confirm the presence
    # of a username on the system (depending on home directory
    # permissions).
    #
    UserDir enabled all

    #
    # To enable requests to /~user/ to serve the user's public_html
    # directory, remove the "UserDir disabled" line above, and uncomment
    # the following line instead:
    #
    UserDir gitRepo

</IfModule>

之后,您应该会很好,但是请确保正确设置了权限:
chmod 711 /home/ec2-user
chmod 755 /home/ec2-user/gitRepo
chown -R ec2-user /home/ec2-user/gitRepo

最后像这样重新加载Web服务器:
sudo service httpd reload

关于apache - 尝试对var/www/html使用符号链接(symbolic link),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11730186/

10-13 03:20