大家好,SuperUser 社区,我是这个论坛的新手,所以我想简短地介绍一下。我是一名业余 CentOS 系统管理员。我边学边自学,但最近遇到了一个障碍。我正在尝试安装 GitLab,但我想将它安装在我的 VPS 上的 Apache Web 服务器上。
我知道 GitLab 是为 nginx 构建的,但老实说我不想使用它。我想知道如何设置以便
- mysite.com 将检索 /var/www/html 中的文件(如 index.html、包含更多文件的文件夹等)
- lab.mysite.com 将检索 GitLab。
我听说你应该使用虚拟主机,但请记住,对于这种东西,我充其量还是个业余爱好者,所以如果这里有人愿意提供一个简短的分步指南来做到这一点,我将不胜感激。
注意:在我使用之前本指南安装 GitLab,但是这是针对 Nginx 的,所以我想知道我是否应该使用本指南然后添加内容,或者我是否完全错误地完成了这项工作。
我刚刚清理了我的 VPS,这样我就可以重新开始了。我知道如何安装 LAMP、Git 和所有这些,所以请告诉我我应该按照这个“分步”指南的哪个步骤来安装。
非常感谢,迈尔斯。
答案1
答案2
我最近回答了这个问题,其中包括一些说明:
https://stackoverflow.com/a/41168476/1856589
不确定这是否被视为重新发布,但这里再次重申这些说明:
默认情况下,GitLab 将安装 nginx,但通常不会将 nginx 添加到系统的服务管理器(service 或 systemctl)中。这使得在尝试启用 Apache 时感到困惑(由于 nginx 使用默认端口 80,Apache 无法启动)。
假设你已经按照默认安装说明安装了 Gitlab,那么 Nginx 服务现在将由gitlab-ctl服务管理器(安装 Gitlab 时安装)。
要停止 Nginx,请以 root 身份从命令行运行以下命令:
gitlab-ctl stop nginx
现在端口 80 可用,您可以启动 Apache(如果尚未安装 Apache,请不要忘记安装 / 说明适用于 RHEL 系统 - 请针对 Ubuntu 等进行相应修改)。假设您是 root 用户:
yum install -y httpd;
systemctl start httpd;
systemctl enable httpd;
让我们编辑 Gitlab 配置文件来禁用 nginx 并告诉 gitlab 使用 apache:
vi /etc/gitlab/gitlab.rb
将您的域名或 IP 添加到以下内容:
external_url 'http://git.yourdomain.com/'
寻找:
# web_server['external_users'] = []
更改为(不要忘记删除前导“#”):
web_server['external_users'] = ['apache']
寻找:
# nginx['enable'] = true
改成:
nginx['enable'] = false
最后我们必须运行“重新编译”:
gitlab-ctl reconfigure
gitlab-ctl restart
现在是 Apache 配置。当我们安装 Gitlab 时,它添加了一个名为 gitlab-www 的用户组。我们需要允许 apache 用户访问该组。以下假设您已经安装了 apache 并且用户 apache (48) 存在:
要检查 gitlab 安装到哪个组下,你可以运行:
getent group
现在让我们修改 apache 的用户并将其添加到 gitlab-www 组:
usermod apache --append --groups gitlab-www
现在我们需要一个 Apache 虚拟主机来指向 gitlab 安装。
将虚拟主机添加到 Apache 的 conf.d 目录(这将创建一个新文件):
vi /etc/httpd/conf.d/gitlab.conf
添加以下内容(根据您的需要进行调整):
<VirtualHost *:80>
ServerName git.yourdomain.com
ServerSignature Off
ProxyPreserveHost On
<Location />
Order deny,allow
Allow from all
ProxyPassReverse http://127.0.0.1:8080
ProxyPassReverse http://git.yourdomain.com/
</Location>
RewriteEngine on
RewriteCond %{DOCUMENT_ROOT}/%{REQUEST_FILENAME} !-f
RewriteRule .* http://127.0.0.1:8080%{REQUEST_URI} [P,QSA]
# needed for downloading attachments
DocumentRoot /opt/gitlab/embedded/service/gitlab-rails/public
ErrorLog /var/log/httpd/error_log
CustomLog /var/log/httpd/access_log combined env=!dontlog
</VirtualHost>
...现在重新启动 Apache:
systemctl start httpd
您可能会遇到类似 selinux 的问题 - 您可以将其设置为允许以进行调试。
setenforce 0
我希望这可以帮助别人!