这就是我想要完成的:从 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 的建议更改所有权/权限,或使用 用户目录 .
在我看来,您希望可以从您的主目录 (~
) 方便地访问网络服务器的文件夹。我想在我的 EC2 上使用类似的东西,并决定使用每用户 Web 目录 (mod_userdir)。
此功能允许您将部分 HTTP 服务器空间保留在用户拥有的目录中。每个用户都有自己的目录,默认位于 /home/username/public_html
.该目录中的页面、脚本和其他文件可通过附加 /~username
访问 Internet。到您的域。此外,您可以从 public_html
更改 httpd.conf 中该文件夹的名称。到别的东西,比如 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
关于apache - 尝试对 var/www/html 使用符号链接(symbolic link),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11730186/