Gitlab und Webserver


Kalito

Erfahrenes Mitglied
#1
Hallo,

ich habe bei mir einen kleinen Linuxserver angeschafft und darauf Apache installiert, sodass ich über den Browser per IP auf bestimmte Webseiten navigieren kann. Nun wollte ich für die Entwicklung auf diesen Server git-lab zum laufen bringen. Soweit habe ich diesen schon installiert, nur kann ich die Webobfläche nicht aufrufen, da das Git sich nicht im /var/www befindet Wo muss ich noch was einstellen, damit ich dies zum laufen bringen kann und ich so meine Repositorys einspielen kann.

Gruß Patrick
 

Kalito

Erfahrenes Mitglied
#3
So richtig nicht.
Ich hab das Gitlab via Omnibus auf meinen raspberry installiert. Zudem hab ich bei meinem Router ür denn Raspberry einen dynamischen dns von no-ip eingerichtet. Von daher will ich Gitlab parallel zu owncloud laufen lassen (meinedomain.de/cloud und meinedomain.de/gitlab).
Meine /etc/gitlab/gitlab.rb
Code:
external_url 'http://meinedomain.de/gitlab'
web_server['external_users'] = ['www-data']
nginx['enable'] = false
in meiner apache/sites-available habe ich eine gitlab.conf erstellt:
Code:
# This configuration has been tested on GitLab 8.2
# Note this config assumes unicorn is listening on default port 8080 and
# gitlab-workhorse is listening on port 8181. To allow gitlab-workhorse to
# listen on port 8181, edit /etc/gitlab/gitlab.rb and change the following:
#
# gitlab_workhorse['listen_network'] = "tcp"
# gitlab_workhorse['listen_addr'] = "127.0.0.1:8181"
#
#Module dependencies
# mod_rewrite
# mod_proxy
# mod_proxy_http
<VirtualHost *:80>
  ServerName meinedomain.de/gitlab
  ServerSignature Off

  ProxyPreserveHost On

  # Ensure that encoded slashes are not decoded but left in their encoded state.
  # http://doc.gitlab.com/ce/api/projects.html#get-single-project
  AllowEncodedSlashes NoDecode

  <Location />
    # New authorization commands for apache 2.4 and up
    # http://httpd.apache.org/docs/2.4/upgrading.html#access
    Require all granted

    #Allow forwarding to gitlab-workhorse
    ProxyPassReverse http://127.0.0.1:8181
    ProxyPassReverse http://meinedomain.de/gitlab/
  </Location>

  # Apache equivalent of nginx try files
  # http://serverfault.com/questions/290784/what-is-apaches-equivalent-of-nginxs-try-files
  # http://stackoverflow.com/questions/10954516/apache2-proxypass-for-rails-app-gitlab
  RewriteEngine on

  #Don't escape encoded characters in api requests
  RewriteCond %{REQUEST_URI} ^/api/v3/.*

  #Forward all requests to gitlab-workhorse except existing files like error documents
  RewriteCond %{DOCUMENT_ROOT}/%{REQUEST_FILENAME} !-f [OR]
  RewriteCond %{REQUEST_URI} ^/uploads/.*
  RewriteRule .* http://127.0.0.1:8181%{REQUEST_URI} [P,QSA]

  # needed for downloading attachments
  DocumentRoot /opt/gitlab/embedded/service/gitlab-rails/public

  #Set up apache error documents, if back end goes down (i.e. 503 error) then a maintenance/deploy page is thrown up.
  ErrorDocument 404 /404.html
  ErrorDocument 422 /422.html
  ErrorDocument 500 /500.html
  ErrorDocument 503 /deploy.html

  # It is assumed that the log directory is in /var/log/httpd.
  # For Debian distributions you might want to change this to
  # /var/log/apache2.
  LogFormat "%{X-Forwarded-For}i %l %u %t \"%r\" %>s %b" common_forwarded
 
  ErrorLog /var/log/apache2/gitlab.no-ip.org_error.log
  CustomLog /var/log/apache2/gitlab.no-ip.org_forwarded.log common_forwarded
  CustomLog /var/log/apache2/gitlab.no-ip.org_access.log combined env=!dontlog
  CustomLog /var/log/apache2/gitlab.no-ip.org.log combined

</VirtualHost>

Trotz Reconfiguration der gitlab rb und dem durchstarten von gitlab und apache bekomme ich bei aufruf der url meinedomain.org/gitlab eine 404-Seite.

Die Logs geben leider keine genaue Auskunft.

Gruß, Kalito
 

zerix

Hausmeister
Moderator
#4
Hallo,

bei ServerName sollte nur eine Domain stehen.
https://httpd.apache.org/docs/2.4/de/mod/core.html#servername

Da du eine Domain hast und mit Pfaden arbeiten möchtest (/cloud, /gitlab), solltest du eine conf anlegen und dort mit Pfade konfigurieren.
Du setzt hier, dass Anfragen zu deinem "root" weitergereicht werden zu 127.0.0.1:8181, allerdings sollte da nichts laufen, da du nginx abgeschaltet hast.
Code:
<Location />
    # New authorization commands for apache 2.4 and up
    # http://httpd.apache.org/docs/2.4/upgrading.html#access
    Require all granted
 
    #Allow forwarding to gitlab-workhorse
    ProxyPassReverse http://127.0.0.1:8181
    ProxyPassReverse http://meinedomain.de/gitlab/ 
  </Location>
Die Location-Zeile solltest du auf den Pfad stellen, von dem die Anfragen weitergereicht werden sollen
Code:
<Location /gitlab>
Die erste ProxyPassReverse-Zeile sollte auch eher so lauten
Code:
ProxyPass http://127.0.0.1:8181

Hier ist ein ähnliches Thema auf stackoverflow, das sollte die eigentlich helfen.
https://stackoverflow.com/questions/25785903/gitlab-7-2-1-with-apache-server-instead-of-nginx


Viele Grüße
Sascha
 

Kalito

Erfahrenes Mitglied
#5
Hallo,

vielen Dank. Jetzt bin ich soweit, dass ich gitlab unter der url meine_domain.de/gitlab zum laufen bekommen habe. Jetzt geht aber mein owncloud nicht mehr oO. Bei Aufruf der URL meine_domain.de/owncloud kommt die Fehlermeldung "/owncloud nicht gefunden". Ich konnte mich noch nicht intensiv mit der Problematik auseinander setzen, aber ich habe irgendwo im Hinterkopf, dass es an den Ports liegt. Ist das so?

Gruß, patrick
 

Kalito

Erfahrenes Mitglied
#6
Hallo,

hab es gelöst bekommen. Meine Lösung:

  1. In /etc/apache2/sites-available/gitlab.conf habe ich bei VirtualHost 8000 eingetragen
  2. in /etc/apache2/ports.conf den Eintrag Listen 8000 hinzugefügt
  3. apache durchgestartet
Nun kann ich owncloud unter meine_domain.de/owncloud und gitlab unter meine_domain.de:8000/gitlab aufrufen

Danke für die Hilfe.