1

我正在尝试在我的主服务器上启用与我的主站点具有不同文档根目录的服务。我不知道如何编辑站点.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>
4

1 回答 1

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 - 禁止您只需要像这样修改文件

    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)时,apache将重定向到mydomain.com(你的主站点)

我希望有这个帮助有人快乐:)

于 2017-08-17T17:16:26.487 回答