试图使用var / www / html的符号链接

时间:2012-07-30 21:50:02

标签: apache amazon-ec2

这就是我要完成的任务:创建从var/www/html到主页(~)文件夹中的目录的符号链接。我试图在家中进行符号链接的目录(~)是一个git存储库,如果这有任何区别的话。我在这个目录中有一个index.html文件。

我使用此命令在Amazon EC2实例上创建了一个指向var / www / html的符号链接:ln -s ~/dirIWant/ html,但是当我尝试访问我的网页时,这会导致以下错误:{{1我正在使用apache。

还有其他人试图做类似的事情并让它发挥作用吗?

目前,当我访问我的网站www.blah.com时,会显示403错误。我尝试使用403 Forbidden "You don't have permission to access / on this server."更改权限,但似乎没有帮助。你还有其他想法吗?

2 个答案:

答案 0 :(得分:7)

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

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

此功能允许您将HTTP服务器空间的一部分保留在用户拥有的目录中。每个用户都有自己的目录,默认位于/home/username/public_html。通过将/~username附加到您的域,可以访问该目录中的页面,脚本和其他文件。此外,您可以将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

最后像这样重新加载网络服务器:

sudo service httpd reload

答案 1 :(得分:0)

here how to link file into other directory example with apache2 config file 

**user of symbolic**
## if file available then first remove it 
$ sudo rm -rf /etc/apache2/sites-enabled/000-default.conf 
## sudo lm -s  /path of source /path of destination 
$ sudo ln -s /etc/apache2/sites-available/000-default.conf /etc/apache2/sites-enabled/
$ sudo systemctl restart apache2
$ sudo systemctl status apache2

[![enter image description here][1]][1]


  [1]: https://i.stack.imgur.com/pRSoq.png