【问题标题】:Trying to install GitLab on Apache on CentOS 7尝试在 CentOS 7 上的 Apache 上安装 GitLab
【发布时间】:2016-08-26 14:26:17
【问题描述】:

我正在尝试安装 GitLab,但我想在我的 VPS 上的 Apache Web 服务器上安装它。

我知道 GitLab 是为 nginx 构建的,但老实说我不想使用它。我想知道我将如何进行设置,以便 mysite.com 将检索/var/www/html 中的文件(如 index.html、包含更多文件的文件夹等) lab.mysite.com 将检索 GitLab。 我听说你应该使用虚拟主机,但请记住,我充其量只是这类东西的业余爱好者,所以如果这里有人好心,可以制作一个简短的分步指南这个,我会很感激的。

注意:在我使用this guide to install GitLab 之前,这是针对 Nginx 的,所以我想知道我是否要使用本指南然后添加到它,或者我是否将这一切都搞错了。

【问题讨论】:

  • 以您目前的专业水平,我建议您严格按照安装指南进行操作,如果他们使用的是 nginx,请使用 nginx。当您变得更有经验时,您可以偏离安装指南,因为您知道自己在做什么。
  • @ThorbjørnRavnAndersen 好的,然后是新问题。我已经有各种各样的 Web 文件了....我如何在同一个 VPS 上托管 mydomain.com 上的文件和 lab.mydomain.com 上的 GitLab 文件? (仍然想在这里使用 CentOS 7,我对 Nginx 非常陌生。我已经能够在 mydomain.com 上设置 GitLab,但我需要添加一个索引页面等)
  • 我不知道。我认为你同时在游戏中有太多你太不熟悉的东西,你应该考虑简化这一点以获得更多经验,这样你才能真正知道自己在做什么。由于您没有实际的编程问题,但更多需要手动设置程序,您最好在超级用户或 unix 网站上提问。
  • @ThorbjørnRavnAndersen 好的,谢谢。会的。

标签: linux git apache centos gitlab


【解决方案1】:

默认情况下,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 之类的问题 - 您可以将其设置为 permissive 以进行调试。

setenforce 0

我希望这对某人有帮助!

【讨论】:

  • 我使用你的解决方案,对我来说没问题。但我没有域,所以使用端口转发并且不得不更改您的虚拟主机文件。
  • 像魅力一样工作! THX
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-08-18
  • 2015-10-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多