1

我一定已经阅读了互联网上关于 Redmine 和 Apache 的每一篇文章,但我仍然无法让它工作!

http://server:3000使用 Thin 完美地运行了 Redmine。我们在同一台服务器上有另一个 Apache 服务,它在不同的端口(8096)上托管我们的内部 Web 工具,所以我希望 Redmine 遵循相同的约定。

在 httpd.conf 中关于 Apache 的这方面,我添加了:

ProxyPass /redmine http://127.0.0.1:3000/
ProxyPassReverse /redmine http://127.0.0.1:3000/
ProxyPreserveHost on

这似乎工作正常。如果您输入http://server:8096/redmine它会打开 Redmine 起始页面,但单击任何其他链接结果是404

看起来它没有在站点的链接上附加 /redmine,因为单击“管理员”链接也需要我http://server:8096/admin而不是http://server:8096/redmine/admin

我还考虑将以下三个中的任何一个添加到config/environment.rb但似乎使用的信息存在冲突,而且它们似乎都没有:

ActionController::AbstractRequest.relative_url_root = "/redmine" 
ActionController::Base.relative_url_root = "/redmine" 
Redmine::Utils::relative_url_root = "/redmine" 

一如既往,非常感谢任何帮助!

编辑::

我也在试用

ProxyPass /redmine http://server:3000
ProxyHTMLURLMap http://server:3000 /redmine
<Location /redmine>
    ProxyPassReverse http://server:3000
    SetOutputFilter proxy-html
    ProxyHTMLURLMap /               /redmine/
    ProxyHTMLURLMap /redmine/       /redmine
</Location>

但似乎有相同的结果。有趣的是,如果我http://localhost:8096/redmine从本地服务器访问,所有链接似乎都可以工作并指向正确的页面,除了 CSS 和 JS 不工作。

如果远程手动输入任何链接,http://server:8096/redmine/admin那么我会使用 CSS 等获得正确的页面,这只是页面之间的链接不起作用!

4

1 回答 1

2

伙计,我从未见过这样的 apache 代理更改上下文的工作设置:

ProxyPass /redmine http://127.0.0.1:3000/

这应该有效:

ProxyPass /redmine http://127.0.0.1:3000/redmine

为此,您需要设置后端服务器(mongrel 或其他)以在子 uri 上工作。

我建议您改用 mod_passenger。这是设置 redmine 的最简单方法,它不涉及代理。以下是我的设置:

brunojcm@brunojcm-htpc:~$ cat /etc/apache2/sites-available/redmine 
<Directory /var/www/redmine>
    RailsBaseURI /redmine
    PassengerResolveSymlinksInDocumentRoot on
</Directory>

/var/www/redmine您的公共 redmine 文件夹的链接在哪里。

brunojcm@brunojcm-htpc:~$ ll /var/www/redmine
lrwxrwxrwx 1 root root 27 Sep  4  2011 /var/www/redmine -> /opt/redmine/current/public/

您还需要安装 mod_passenger。我不记得具体怎么做,但我相信你需要gem install passenger在运行后passenger-install-apache2-module按照说明进行操作。

希望能帮助到你!

于 2012-10-30T14:22:53.370 回答