3

Эй, сообщество SuperUser, я новичок в этом форуме, поэтому я сделаю это быстро. Я любитель системного администратора CentOS. Я учу себя на ходу, но недавно я столкнулся с камнем преткновения. Я пытаюсь установить GitLab, но я хочу установить его на веб-сервере Apache на моем VPS.

Я знаю, что GitLab был создан для nginx, но я, честно говоря, не хочу его использовать. Мне было интересно, как я смогу настроить так, чтобы

  • mysite.com получит файлы (например, index.html, папки с большим количеством файлов и т. д.) в /var /www /html
  • lab.mysite.com получит GitLab.

Я слышал, что вы должны использовать виртуальный хост, но помните, я по-прежнему любитель в лучшем случае с такими вещами, так что если кто-то здесь достаточно любезен, чтобы сделать краткое пошаговое руководство, чтобы сделать это, я был бы признателен за это

Примечание: прежде чем я использовал это руководство для установки GitLab, однако это для Nginx, поэтому мне было интересно, если я буду использовать это руководство, но потом добавить к нему, или я все это делаю неправильно.

Я просто вытер VPS, чтобы начать снова. Я знаю, как установить LAMP, Git и все такое, поэтому, пожалуйста, скажите мне, в какой момент в этом «пошаговом» руководстве мне следует.

Большое спасибо, Майлз.

2 ответа2

2

Я недавно ответил на это, включая некоторые инструкции здесь:

https://stackoverflow.com/a/41168476/1856589

Не уверен, что это считается перепостом, но вот эти инструкции снова:



По умолчанию GitLab устанавливает nginx, но обычно не добавляет nginx в диспетчер служб вашей системы (service или systemctl). Это сбивает с толку при попытке включить Apache (Apache не запускается из-за используемого по умолчанию порта 80 в nginx).

Если вы установили 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

Я надеюсь, что это помогает кому-то!

0

Я раньше запускал Gitlabs, но никогда не работал с Apache, однако быстрый поиск в Google показал недостаток информации. В общем, похоже, что вам нужно установить Gitlabs и Apache, отредактировать конфигурацию Gitlabs, добавить пользователя Apache в группу Gitlabs, создать файл VirtualHosts, чтобы Apache будет размещать Gitlabs вместо nginx, включить новый файл VirtualHosts, изменить Apache, если необходимо, и перезапустите Apache и Gitlabs, если это необходимо. Эти ссылки [1] [2] [3] [4] [5] углубляются в детали и должны помочь вам.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .