Apache 尝试对var/www/html使用符号链接

Apache 尝试对var/www/html使用符号链接,apache,amazon-ec2,Apache,Amazon Ec2,这就是我试图完成的:创建从var/www/html到主(~)文件夹中目录的符号链接。我试图在home(~)中符号链接到的目录是一个git存储库,如果这有什么区别的话。我在这个目录中有一个index.html文件 我使用以下命令在Amazon EC2实例上创建了一个指向var/www/html的符号链接:ln-s~/dirIWant/html,但是当我尝试访问我的网页时,这会导致以下错误:403禁止“您没有访问/此服务器的权限”。我正在使用apache 有没有其他人尝试过做类似的事情并让它发挥作用

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

我使用以下命令在Amazon EC2实例上创建了一个指向var/www/html的符号链接:
ln-s~/dirIWant/html
,但是当我尝试访问我的网页时,这会导致以下错误:
403禁止“您没有访问/此服务器的权限”。
我正在使用apache

有没有其他人尝试过做类似的事情并让它发挥作用


目前,当我访问我的网站www.blah.com时,它显示403错误。我尝试使用
sudo chown-h apache:apache
更改权限,但似乎没有帮助。你还有其他想法吗?

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

在我看来,您希望能够方便地从主目录(
~
)访问Web服务器的文件夹。我想在我的EC2上使用类似的内容,并决定使用每个用户的web目录()

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

要在EC2上设置此设置(假设要使用的文件夹名为“gitRepo”),请使用
nano/etc/httpd/conf/httpd.conf
打开Apache配置文件并向下滚动,直到看到
。然后将此部分更改为如下所示:

<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>
最后像这样重新加载web服务器:

sudo service httpd reload

apache
用户(或同等用户)没有将perm读取到您的home目录。Chmod/chown将目标目录授予相关用户权限。顺便说一句,您可能会在
/var/log/httpd/error\u log
中或在您的httpd记录错误的任何地方发现一条更具说明性的消息。@FrankFarmer当我尝试使用sudo su apache切换到apache用户时,我收到以下消息:此帐户当前不可用。你以前经历过吗?是的。默认情况下,您不能su apache,因为apache用户通常将其shell设置为
nologin
。您可以在
/etc/passwd
中将用户的shell更改为sh,但这通常可能不是一个好主意。一般来说,使用apache是不必要的,尤其是如果您只想使用chown
sudo chown apache:apache~/dirIWant/
在您的情况下就足够了,不过将目录移出home dir会更明智。@FrankFarmer我将您的命令修改为sudo chown-h apache:apache~mydir,它可以工作。然而,当我访问我的网站时,它仍然显示403错误。你知道这是为什么吗??再次感谢@FrankFarmer就像我在下面告诉Dreen的那样,我试图在home中符号链接到的目录(~)是一个git存储库,如果这对您回答这个问题有任何影响的话……谢谢您的回答。正如我问FrankFarmer的那样,当我尝试将用户切换到apache用户以便执行sudo chown/myDir时,我得到以下响应:该帐户当前不可用。你知道为什么吗?好吧,你可以做一个
sudo chown-R ec2 user/var/www/html
,但是从你的帖子上看,并不清楚你想要实现什么,所以我不确定它会完全实现你想要的。这就是我试图实现的:创建从var/www/html到home(~)文件夹中目录的符号链接。我在home(~)的目录中有一个index.html文件。目前,当我访问我的网站www.blah.com时,它显示403错误。我尝试使用sudo chown-h apache:apache更改权限,但似乎没有帮助。你还有其他想法吗?我试图在home(~)中符号链接到的目录是一个git存储库,如果这有什么不同的话……你试过设置mod_userdir吗?您可以从
public\u html
更改为其他内容,因此,如果您的git repo位于
~/gitRepo/
中,您可以在配置中使用
UserDir gitRepo
sudo service httpd reload