Apache2 - 虚拟主机 - 403 禁止访问

Apache2 - 虚拟主机 - 403 禁止访问

我正在尝试设置虚拟主机。

Apache2.4.7

Ubuntu 14.04

000-默认.conf:

<VirtualHost *:80>
    ServerAdmin webmaster@localhost
    DocumentRoot /home/ronskiy/public_html/
    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

测试.本地.conf:

<VirtualHost *:80>
ServerName test.local
ServerAlias test.local www.test.local
DocumentRoot /home/ronskiy/public_html/test.local/www/

LogLevel warn
ErrorLog  /var/log/test-error.log
CustomLog /var/log/test-access.log combined

<Directory "/home/ronskiy/public_html/test.local/www/">
    Options Indexes FollowSymLinks
    AllowOverride All
    Order allow,deny
    Require all granted
</Directory>

主办方:

127.0.0.1   localhost test.local
127.0.1.1   ronskiy-K55VM

# The following lines are desirable for IPv6 capable hosts
::1     ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters

ls-l:

drwxrwxr-x 3 ronskiy ronskiy 4096 січ 19 23:26 public_html

如果我尝试打开http://test.local/我遇到了 403 Forbidden 错误。我做错了什么?

答案1

Document Root您应该检查配置中使用的文件夹的权限。通常,apache 使用用户 www-data,您应该确保该用户具有所需的权限。

这里有一篇关于这个话题的非常好的文章:

https://serverfault.com/questions/357108/what-permissions-should-my-website-files-folders-have-on-a-linux-webserver

假设您是唯一管理服务器的人,这应该是一个很好的起点。

由单个用户维护 如果只有一名用户负责维护网站,请将其设置为网站目录的用户所有者,并授予该用户完全的 rwx 权限。Apache 仍需要访问权限才能提供文件,因此请将 www-data 设置为组所有者,并授予该组 rx 权限。

chown -R eve contoso.com
chgrp -R www-data contoso.com
chmod -R 750 contoso.com
chmod g+s contoso.com
ls -l
drwxr-s--- 2 eve      www-data   4096 Feb  5 22:52 contoso.com

如果您有需要由 Apache 写入的文件夹,您只需修改组所有者的权限值,以便 www-data 具有写访问权限。

chmod g+w uploads
ls -l
drwxrws--- 2 eve      www-data   4096 Feb  5 22:52 uploads

此配置的好处是,系统上的其他用户更难(但并非不可能*)窥探,因为只有用户和组所有者才能浏览您的网站目录。如果您的配置文件中有秘密数据,这将非常有用。请小心您的 umask!如果您在此处创建新文件,权限值可能默认为 755。您可以运行 umask 027,以便新文件默认为 640(rw- r-- ---)。

相关内容