如何将站点作为Apache中另一个站点的子目录启用?

时间:2016-12-03 22:51:58

标签: apache configuration openproject

我正在尝试在我的家庭服务器上启用一个服务,该服务的文档根目录与我的主站点不同。我无法弄清楚如何编辑网站.conf文件,以便我可以同时运行主网站和新服务。

我的用例:我有一台运行Ubuntu 16.04.1和Apache 2的家庭服务器。我可以在ceres.local浏览我的网站。我还安装了OpenProject 6.1。安装完成后,我可以在ceres.local/openproject浏览到该服务,但现在浏览到ceres.local会返回403 Forbidden

我查看了sites-enabled,我发现000-default.conf已不再列出,只有openproject.conf。所以,我运行了a2ensite 000-default.confservice apache2 reload。现在,我可以浏览到ceres.local,但ceres.local/openproject会返回404 Not Found

如何同时使用'ceres.local'和'ceres.local / openproject'来正确使用下面的两个.conf文件?请注意不同的文档根源。

我的000-default.conf内容如下:

<VirtualHost *:80>
        ServerAdmin webmaster@localhost
        DocumentRoot /var/www/html
        ServerName ceres.local

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

我的openproject.conf内容如下:

Include /etc/openproject/addons/apache2/includes/server/*.conf

<VirtualHost *:80>
      ServerName ceres.local
      DocumentRoot /opt/openproject/public

      ProxyRequests off

      Include /etc/openproject/addons/apache2/includes/vhost/*.conf

      ProxyPass /openproject/ http://127.0.0.1:6000/openproject/ retry=0
      ProxyPassReverse /openproject/ http://127.0.0.1:6000/openproject/

</VirtualHost>

1 个答案:

答案 0 :(得分:0)

我知道这是一个很老的帖子。 但我花了3天时间来解决这个问题,这是我们google时的第一篇文章 所以,当你安装openproject时,他会创建一个名为openproject.conf的文件并禁用000-default.conf

此文件中的

是这样的配置

    Include /etc/openproject/addons/apache2/includes/server/*.conf
   <VirtualHost *:80>
     ServerName mydomain.com
     DocumentRoot /opt/openproject/public

     ProxyRequests off

     Include /etc/openproject/addons/apache2/includes/vhost/*.conf
     # Can't use Location block since it would overshadow all the other 
     #Proxypass directives on CentOS

    ProxyPass /help/ http://127.0.0.1:6000/help/ retry=0
    ProxyPassReverse /help/ http://127.0.0.1:6000/help/
</VirtualHost>

但是当你尝试访问mydomain.com时,你会收到消息403 - forbitten 你只需要像这样修改文件

    Include /etc/openproject/addons/apache2/includes/server/*.conf
<VirtualHost *:80>
  ServerName mydomain.com
  ServerAlias www.mydomain.com
  DocumentRoot /var/www/html  # <----- LOCATION WHERE YOU SITE ARE
  #DocumentRoot /opt/openproject/public #<--- You Need comment this line

  ProxyRequests off

Include /etc/openproject/addons/apache2/includes/vhost/*.conf

# Can't use Location block since it would overshadow all the other proxypass 
directives on CentOS
ProxyPass /help/ http://127.0.0.1:6000/help/ retry=0
ProxyPassReverse /help/ http://127.0.0.1:6000/help/

所以,如果可以看到下面的proxypass,当你把mydomain.com/help(你重定向到openproject),mydomain.com(你的主站点)时,apache会重定向到

我希望有人帮忙 快乐:)