Search code examples
apache2gitlabpleskgitlab-omnibus

GitLab site is showing the plesk default page. What am i doing wrong?


so here is my setup:

I have Ubuntu 14.04 and installed Gitlab omnibus. Then i basically just followed this guide: Setup for non-bundled Webserver (apache in my case)

I successfully enabled the apache site with this config files:

gitlab.rb (just those lines which are not commented):

external_url "http://git.codefighters.org"
nginx['enable'] = false
web_server['external_users'] = ['www-data']
gitlab_workhorse['listen_network'] = "tcp"
gitlab_workhorse['listen_addr'] = "127.0.0.1:8181"

git.codefighters.org.conf (in /etc/apache2/sites-available):

# 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 git.codefighters.org
  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
    #Allow forwarding to GitLab Rails app (Unicorn)
    ProxyPassReverse http://127.0.0.1:8080
    ProxyPassReverse http://git.codefighters.org/
  </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

  #Forward these requests to gitlab-workhorse
  RewriteCond %{REQUEST_URI} ^/[\w\.-]+/[\w\.-]+/gitlab-lfs/objects.* [OR]
  RewriteCond %{REQUEST_URI} ^/[\w\.-]+/[\w\.-]+/builds/download.* [OR]
  RewriteCond %{REQUEST_URI} ^/[\w\.-]+/[\w\.-]+/repository/archive.* [OR]
  RewriteCond %{REQUEST_URI} ^/api/v3/projects/.*/repository/archive.* [OR]
  RewriteCond %{REQUEST_URI} ^/ci/api/v1/builds/[0-9]+/artifacts.* [OR]
  RewriteCond %{REQUEST_URI} ^/[\w\.-]+/[\w\.-]+/(info/refs|git-upload-pack|git-receive-pack)$
  RewriteRule .* http://127.0.0.1:8181%{REQUEST_URI} [P,QSA,NE]

  #Forward any other requests to GitLab Rails app (Unicorn)
  RewriteCond %{DOCUMENT_ROOT}/%{REQUEST_FILENAME} !-f [OR]
  RewriteCond %{REQUEST_URI} ^/uploads
  RewriteRule .* http://127.0.0.1:8080%{REQUEST_URI} [P,QSA,NE]

  # 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/httpd/logs/git.codefighters.org_error.log
  CustomLog /var/log/httpd/logs/git.codefighters.org_forwarded.log common_forwarded
  CustomLog /var/log/httpd/logs/git.codefighters.org_access.log combined env=!dontlog
  CustomLog /var/log/httpd/logs/git.codefighters.org.log combined

</VirtualHost>

The problem i have though is, that you cant see any gitlab on git.codefighters.org, but the default Plesk page. I dont really know what exactly the problem is, as everythings works on the server. sudo gitlab-ctl status says that everything is running.

Thanks to all of you, helping me solve this issue!


Solution

  • Alright, after googling the whole day, i found a solution to this. If you use Plesk on your server, it seems to have no effect when you change the apache conf's and enable them, because plesk manages this stuff (correct me if im wrong).

    So, to let these conf's take effect you have to do the following:

    First you need to create the domain on you plesk panel:

    • Log in into plesk and go Domains-> create the domain you want to use

    • Then log in into you server and go /var/www/vhosts/system/FQDN/conf (where FQDN should be replaced by you domain, in my case git.codefighters.org)

    • There, add (or change) the vhost.conf or vhost_ssl.conf respectively. You will not need the , as the content of these files is inserted in the particular section of an automatically generated configuration file. (taken from http://www.istvank.eu/archives/772)
    • For me, the vhost.conf looks like this:

        ServerName git.codefighters.org
        ServerSignature Off
      
        ProxyPreserveHost On
      
        # Ensure that e
      
        ncoded 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
          #Allow forwarding to GitLab Rails app (Unicorn)
          ProxyPassReverse http://127.0.0.1:8080
          ProxyPassReverse http://git.codefighters.org/
        </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
      
        #Forward these requests to gitlab-workhorse
        RewriteCond %{REQUEST_URI} ^/[\w\.-]+/[\w\.-]+/gitlab-lfs/objects.* [OR]
        RewriteCond %{REQUEST_URI} ^/[\w\.-]+/[\w\.-]+/builds/download.* [OR]
        RewriteCond %{REQUEST_URI} ^/[\w\.-]+/[\w\.-]+/repository/archive.* [OR]
        RewriteCond %{REQUEST_URI} ^/api/v3/projects/.*/repository/archive.* [OR]
        RewriteCond %{REQUEST_URI} ^/ci/api/v1/builds/[0-9]+/artifacts.* [OR]
        RewriteCond %{REQUEST_URI} ^/[\w\.-]+/[\w\.-]+/(info/refs|git-upload-pack|git-receive-pack)$
        RewriteRule .* http://127.0.0.1:8181%{REQUEST_URI} [P,QSA,NE]
      
        #Forward any other requests to GitLab Rails app (Unicorn)
        RewriteCond %{DOCUMENT_ROOT}/%{REQUEST_FILENAME} !-f [OR]
        RewriteCond %{REQUEST_URI} ^/uploads
        RewriteRule .* http://127.0.0.1:8080%{REQUEST_URI} [P,QSA,NE]
      
        # 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/httpd/logs/git.codefighters.org_error.log
        CustomLog /var/log/httpd/logs/git.codefighters.org_forwarded.log common_forwarded
        CustomLog /var/log/httpd/logs/git.codefighters.org_access.log combined env=!dontlog
        CustomLog /var/log/httpd/logs/git.codefighters.org.log combined
      
    • The last thing you need to do is running this commands:

      /usr/local/psa/admin/bin/httpdmng --reconfigure-all

      sudo service httpd restart