我正在尝试设置虚拟主机。
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,您应该确保该用户具有所需的权限。
这里有一篇关于这个话题的非常好的文章:
假设您是唯一管理服务器的人,这应该是一个很好的起点。
由单个用户维护 如果只有一名用户负责维护网站,请将其设置为网站目录的用户所有者,并授予该用户完全的 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-- ---)。