在 15.04 上设置基于端口的虚拟主机

在 15.04 上设置基于端口的虚拟主机

我在网上来回搜索答案,但毫无收获。我尝试设置基于端口的虚拟主机,我可以使用默认的 :80 端口,但我的其他虚拟主机都返回“您无权访问此服务器上的 /”。

000-默认.conf

<VirtualHost *:80>
        ServerAdmin webmaster@localhost
        DocumentRoot /home/user/website

        ErrorLog ${APACHE_LOG_DIR}/error.log
        CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

站点1.conf

<VirtualHost *:8080>
        ServerAdmin webmaster@localhost
        DocumentRoot /home/user/site1

        ErrorLog ${APACHE_LOG_DIR}/error.log
        CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

站点2.conf

<VirtualHost *:8081>
        ServerAdmin webmaster@localhost
        DocumentRoot /home/user/site2

        ErrorLog ${APACHE_LOG_DIR}/error.log
        CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

端口配置文件

# If you just change the port or add more ports here, you will likely also
# have to change the VirtualHost statement in
# /etc/apache2/sites-enabled/000-default.conf

Listen 80
Listen 8080
Listen 8081

<IfModule ssl_module>
        Listen 443
</IfModule>

<IfModule mod_gnutls.c>
        Listen 443
</IfModule>

# vim: syntax=apache ts=4 sw=4 sts=4 sr noet

a2ensite 已在所有三个站点上运行,并且服务 apache2 reload 已运行,并且没有发布任何错误。

每个目录中都有一个简单的index.html页面,这样我就可以知道哪个站点正在加载。 [ipaddress][ipaddress]:80显示000-default.conf索引页。 [ipaddress]:8080两者[ipaddress]:8081都返回

您无权访问此服务器上的/。

任何对新手的帮助都将不胜感激。

答案1

为了让 Apache 显示虚拟服务器中托管的页面/文件,您需要确保它们归用户所有www-data,因为 Apache 在该用户下运行。请确保执行以下操作:

sudo chown -R www-data: /path/to/virtual/server/document/root
sudo chmod 755 /path/to/virtual/server/document/root

对于您配置的每个虚拟服务器。

但等一下!现在我的用户不能修改这些文件!

轻松解决!您只需将您的用户添加到www-data组中即可!

sudo usermod -a -G www-data youruser

注销,然后重新登录以使组更改生效,一切都会好起来。

还是行不通?

添加以下行到/etc/apache2/apache2.conf

<Directory /home/user>
    Options Indexes FollowSymLinks
    AllowOverride None
    Require all granted
</Directory>

然后运行sudo service apache2 reload,一切就正常了。

答案2

解决方案是添加:

    <Directory /home/user/siteN>
            Options Indexes FollowSymLinks
            AllowOverride All
            Require all granted
    </Directory>

对于每个文件。文件可以由用户拥有,如果用户已添加到组,.conf则文件不需要由用户拥有。www-datawww-data

相关内容