我正在尝试设置gitlab,以便可以通过现有的apache服务器的子目录访问它example.com/gitlab,例如.我试图使用乘客,因为这似乎是最容易设置的,但其他解决方案也是可以接受的.遗憾的是,为gitlab使用单独的虚拟主机不是我的选择.
在设置时,我遵循了gitlab设置指南和乘客文档.
我相信最相关的部分/etc/httpd/conf/httpd.conf如下:
DocumentRoot "/home/.www"
# gitlab config
RackBaseURI /gitlab
<Directory "/home/.www/gitlab">
Options -MultiViews
</Directory>
Run Code Online (Sandbox Code Playgroud)
该DocumentRoot阿帕奇包含一个符号链接到gitlab公共目录:
$ ls -l /home/.www
lrwxrwxrwx 1 root http 23 Jul 29 12:35 gitlab -> ../gitlab/gitlab/public
Run Code Online (Sandbox Code Playgroud)
使用passenger-install-apache2-module脚本安装了Passenger,脚本输出的配置行包含在apache配置中.
我打同relative_url_root在config/gitlab.yml; 这没有任何影响(根据文件中的注释判断,这种机制似乎是不鼓励或弃用的 - 避免它会很好).
访问时example.com/gitlab,我得到以下输出(纯文本文档):
Not Found: /
Run Code Online (Sandbox Code Playgroud)
Apache的日志表明乘客已经启动,但至少favicon.ico是从文档根目录请求,当应该从子目录请求时/gitlab/favicon.ico:
[ 2013-07-29 14:14:12.1029 2037/7f3502e1e740 agents/HelperAgent/Main.cpp:597 ]: PassengerHelperAgent online, listening at unix:/tmp/passenger.1.0.2033/generation-0/request
[ 2013-07-29 14:14:12.1150 2043/7fa24dbf3740 …Run Code Online (Sandbox Code Playgroud)