{"id":1171,"date":"2015-10-12T18:24:39","date_gmt":"2015-10-12T16:24:39","guid":{"rendered":"https:\/\/www.nullalo.com\/?p=1171"},"modified":"2025-10-22T10:16:25","modified_gmt":"2025-10-22T08:16:25","slug":"installare-e-configurare-gitlab-con-plesk-12-su-centos-6","status":"publish","type":"post","link":"https:\/\/www.nullalo.com\/en\/install-and-configure-gitlab-with-plesk-12-on-centos-6\/","title":{"rendered":"Install and configure GitLab with Plesk 12 on CentOS 6"},"content":{"rendered":"<p><\/p>\n<p style=\"text-align: justify;\">Let&#8217;s start by understanding what we&#8217;re talking about: Git is a <em>DVCS &#8211; Distributed <strong>Version Control<\/strong> System<\/em> software created in 2005 by Linus Torvalds, a Finnish programmer known as the author of the first version of the Linux kernel.<\/p>\n<p style=\"text-align: justify;\">In short, it allows you to keep track of changes made to the source code of a software (commit) and its versions (tags), work in parallel on another &#8220;branch&#8221; of the same software (branch) and merge your\u00a0changes with those of other developers (merge).<\/p>\n<p style=\"text-align: justify;\">Everything is managed by a repository, the most famous of which is <a href=\"https:\/\/github.com\/\" target=\"_blank\">GitHub<\/a>,\u00a0which is nevertheless an online repository.<\/p>\n<p style=\"text-align: justify;\">This tutorial is aimed at all those who wish\u00a0to have a personal\u00a0(and possibly private) Git repository on their own\u00a0server, in the particular case in which it has a\u00a0CentOS operating system with Parallels Plesk and use <a href=\"https:\/\/www.gitlab.com\/\" target=\"_blank\">GitLab<\/a> as repository platform.<\/p>\n<p style=\"text-align: justify;\">In this case, the coexistence of GitLab, Nginx and Plesk virtual hosts can become difficult to manage: if you are\u00a0reading this, maybe it&#8217;s because on the Internet\u00a0there is just\u00a0fragmented information on how to proceed without problems, hence the reason for this tutorial.<\/p>\n<p style=\"text-align: justify;\">So we begin: assume you have a Linux CentOS v6.5 server with Plesk installed (we used version 12.5.30 as a reference, but the procedure has also been tested on version 12.0.18).<\/p>\n<h2 style=\"text-align: justify;\">Phase\u00a01 &#8211; Prerequisites<\/h2>\n<p style=\"text-align: justify;\">Assuming of course that you are root on the server or that your\u00a0user at least belongs to the list of <em>sudoers<\/em>, in order to have rights to install packages. The first thing to do is to <strong>install the latest version of Git<\/strong> (currently 1.8.3.1) from PUIAS Computational repository:<\/p>\n<pre class=\"brush: bash; title: ; notranslate\" title=\"\">wget -O \/etc\/yum.repos.d\/PUIAS_6_computational.repo https:\/\/gitlab.com\/gitlab-org\/gitlab-recipes\/raw\/master\/install\/centos\/PUIAS_6_computational.repo\r\nwget -O \/etc\/pki\/rpm-gpg\/RPM-GPG-KEY-puias http:\/\/springdale.math.ias.edu\/data\/puias\/6\/x86_64\/os\/RPM-GPG-KEY-puias\r\nrpm --import \/etc\/pki\/rpm-gpg\/RPM-GPG-KEY-puias\r\nsudo yum install git<\/pre>\n<p style=\"text-align: justify;\">or, for the latest version (currently 2.6.1):<\/p>\n<pre class=\"brush: bash; title: ; notranslate\" title=\"\">yum install gettext-devel expat-devel curl-devel zlib-devel openssl-devel\r\ncd \/tmp\r\nwget https:\/\/www.kernel.org\/pub\/software\/scm\/git\/git-2.6.1.tar.gz\r\ntar xzvf git-2.6.1.tar.gz\r\ncd git-2.6.1\r\nmake prefix=\/opt\/git all\r\nmake prefix=\/opt\/git install\r\nexport PATH=&quot;\/opt\/git\/bin:$PATH&quot;\r\nln -s \/opt\/git\/bin\/git \/usr\/bin\/git<\/pre>\n<p style=\"text-align: justify;\">Verify its installation with:<\/p>\n<pre class=\"brush: bash; title: ; notranslate\" title=\"\">git --version<\/pre>\n<p style=\"text-align: justify;\">What we need is to <strong>install Ruby<\/strong>, as GitLab was designed for\u00a0Ruby v2.0+, although it might work with older\u00a0versions such as the one available in the CentOS repository. For quick installation of the older version (currently 1.8.7.374) you can use the following command:<\/p>\n<pre class=\"brush: bash; title: ; notranslate\" title=\"\">yum install ruby<\/pre>\n<p style=\"text-align: justify;\">If you want the latest\u00a0version (2.1.2 at the time), you can just run the following commands to install the prerequisites, the\u00a0OpenSSL extension and Ruby:<\/p>\n<pre class=\"brush: bash; title: ; notranslate\" title=\"\">yum install gcc zlib zlib-devel openssl-devel\r\nmkdir \/tmp\/ruby &amp;&amp; cd \/tmp\/ruby\r\ncurl --progress ftp:\/\/ftp.ruby-lang.org\/pub\/ruby\/2.1\/ruby-2.1.2.tar.gz | tar xz\r\ncd ruby-2.1.2\/ext\/openssl\/\r\nruby extconf.rb\r\nmake top_srcdir=&quot;..\/..\/&quot;\r\nsudo make install top_srcdir=&quot;..\/..\/&quot;\r\ncd ..\/..\/\r\n.\/configure --disable-install-rdoc\r\nmake\r\nsudo make prefix=\/usr\/local install<\/pre>\n<p style=\"text-align: justify;\">Now use the gem command to install <strong>Bundler<\/strong>, a dependencies manager for Ruby:<\/p>\n<pre class=\"brush: bash; title: ; notranslate\" title=\"\">gem install bundler --no-doc<\/pre>\n<p><!--nextpage--><\/p>\n<h2 style=\"text-align: justify;\">Phase\u00a02 \u2013 GitLab<\/h2>\n<p style=\"text-align: justify;\">At this point, having completed the prerequisites, you must add the server for\u00a0the GitLab CE (Community Edition) package with:<\/p>\n<pre class=\"brush: bash; title: ; notranslate\" title=\"\">curl https:\/\/packages.gitlab.com\/install\/repositories\/gitlab\/gitlab-ce\/script.rpm.sh | sudo bash<\/pre>\n<p style=\"text-align: justify;\">and finally install the package (about 328 Mb download, 904 Mb installation for version 8.0.4) with:<\/p>\n<pre class=\"brush: bash; title: ; notranslate\" title=\"\">sudo yum install gitlab-ce<\/pre>\n<p style=\"text-align: justify;\">Now we got GitLab installed on our server, <strong>in the \/var\/opt\/gitlab\/ folder<\/strong>, which however must be configured according to our needs.<\/p>\n<p style=\"text-align: justify;\">Suppose you want your Git repository to be available for example at the\u00a0address http:\/\/git.nullalo.com. The first thing to do is <strong>edit the \/etc\/gitlab\/gitlab.rb file<\/strong> and change the following values (above each of them we put a note with\u00a0the\u00a0meaning):<\/p>\n<pre class=\"brush: bash; title: ; notranslate\" title=\"\"># External URL for the GitLab repository\r\nexternal_url 'http:\/\/git.nullalo.com'\r\n# Completely disable GitLab's Nginx, since we're going to use the Plesk one\r\nnginx&#x5B;'enable'] = false\r\n# Sets server SSH port\r\ngitlab_rails&#x5B;'gitlab_shell_ssh_port'] = 22<\/pre>\n<p style=\"text-align: justify;\">To use GitLab with <strong>SSL protocol<\/strong> you need to change external_url and add an option as follows:<\/p>\n<pre class=\"brush: bash; title: ; notranslate\" title=\"\">external_url 'https:\/\/git.nullalo.com'\r\nnginx&#x5B;'listen_https'] = false          # to communicate with GitLab Nginx internally over HTTP, even if external_url is in HTTPS\r\nnginx&#x5B;'redirect_http_to_https'] = true # redirects all traffic to HTTPS<\/pre>\n<p style=\"text-align: justify;\">If you need to use an HTTPS port other than the default (443), just specify it as part of the external_url:<\/p>\n<pre class=\"brush: bash; title: ; notranslate\" title=\"\">external_url 'https:\/\/git.nullalo.com:2443'<\/pre>\n<p style=\"text-align: justify;\">If your GitLab version is <strong>8.0.x<\/strong> or <strong>8.1.x<\/strong>, you must also change the settings for the new <strong><a href=\"https:\/\/gitlab.com\/gitlab-org\/gitlab-git-http-server\" target=\"_blank\">gitlab-git-http-server<\/a><\/strong>, since Apache cannot connect to a UNIX socket but instead needs to connect to a TCP Port:<\/p>\n<pre class=\"brush: bash; title: ; notranslate\" title=\"\">gitlab_git_http_server&#x5B;'listen_network'] = &quot;tcp&quot;\r\ngitlab_git_http_server&#x5B;'listen_addr'] = &quot;localhost:8181&quot;<\/pre>\n<p style=\"text-align: justify;\">Starting from version 8.2, gitlab-git-http-server has been replaced by new version\u00a0<strong><a href=\"https:\/\/gitlab.com\/gitlab-org\/gitlab-workhorse\/\" target=\"_blank\">gitlab-workhorse<\/a><\/strong>, a daemon that handles downloads too. Therefore, for GitLab <strong>8.2.x<\/strong> you must ignore above gitlab_git_http_server settings and insert:<\/p>\n<pre class=\"brush: bash; title: ; notranslate\" title=\"\">gitlab_workhorse&#x5B;'listen_network'] = &quot;tcp&quot;\r\ngitlab_workhorse&#x5B;'listen_addr'] = &quot;localhost:8181&quot;<\/pre>\n<p style=\"text-align: justify;\">If you want GitLab to\u00a0send you emails, edit in the same file also <strong>SMTP server\u00a0settings<\/strong> by typing in the\u00a0server&#8217;s host (in the example mail.nullalo.com), port (usually 25, if you do not use SSL\/TLS) username and password to be used and authentication type (&#8220;plain&#8221; in our example):<\/p>\n<pre class=\"brush: bash; title: ; notranslate\" title=\"\">gitlab_rails&#x5B;'gitlab_email_enabled'] = true\r\ngitlab_rails&#x5B;'gitlab_email_from'] = 'git@git.nullalo.com'\r\ngitlab_rails&#x5B;'gitlab_email_display_name'] = 'Nullalo Git Repository'\r\ngitlab_rails&#x5B;'gitlab_email_reply_to'] = 'noreply@git.nullalo.com'\r\ngitlab_rails&#x5B;'smtp_enable'] = true\r\ngitlab_rails&#x5B;'smtp_address'] = &quot;mail.nullalo.com&quot;\r\ngitlab_rails&#x5B;'smtp_port'] = 25\r\ngitlab_rails&#x5B;'smtp_user_name'] = &quot;info@nullalo.com&quot;\r\ngitlab_rails&#x5B;'smtp_password'] = &quot;yourpassword&quot;\r\ngitlab_rails&#x5B;'smtp_domain'] = &quot;mail.nullalo.com&quot;\r\ngitlab_rails&#x5B;'smtp_authentication'] = &quot;plain&quot;\r\ngitlab_rails&#x5B;'smtp_enable_starttls_auto'] = true\r\ngitlab_rails&#x5B;'smtp_tls'] = false\r\ngitlab_rails&#x5B;'smtp_openssl_verify_mode'] = 'none'<\/pre>\n<p style=\"text-align: justify;\">To <strong>move data folder in your virtual host&#8217;s one<\/strong>:<\/p>\n<pre class=\"brush: bash; title: ; notranslate\" title=\"\">git_data_dir &quot;\/var\/www\/vhosts\/nullalo.loc\/git.nullalo.loc\/git-data&quot;<\/pre>\n<p style=\"text-align: justify;\">To move <strong>uploads folder<\/strong> as well:<\/p>\n<pre class=\"brush: bash; title: ; notranslate\" title=\"\">gitlab_rails&#x5B;'uploads_directory'] = &quot;\/var\/www\/vhosts\/nullalo.com\/git.nullalo.com\/uploads&quot;<\/pre>\n<p style=\"text-align: justify;\">If you wish to <strong>set backup folder and schedule<\/strong>:<\/p>\n<pre class=\"brush: bash; title: ; notranslate\" title=\"\">gitlab_rails&#x5B;'backup_path'] = &quot;\/var\/www\/vhosts\/nullalo.com\/git.nullalo.com\/backups&quot;\r\ngitlab_rails&#x5B;'backup_keep_time'] = 604800 # Limits backups lifetime to 7 days (604800 seconds)<\/pre>\n<p style=\"text-align: justify;\">Now <strong>reconfigure and start GitLab<\/strong> with previous settings using the command:<\/p>\n<pre class=\"brush: bash; title: ; notranslate\" title=\"\">sudo gitlab-ctl reconfigure<\/pre>\n<p style=\"text-align: justify;\">Pay particular attention when <strong>moving\u00a0GitLab folders<\/strong> in the\u00a0virtual host&#8217;s ones: if right permissions are not set, those folders won&#8217;t\u00a0be backupped by Plesk. For it is essential\u00a0that GitLab works with git user and group, and it enforces 700 as permissions on\u00a0both data (\/var\/opt\/gitlab\/git-date\/) and\u00a0backup (\/var\/opt\/gitlab\/backups) folders, the quickest solution is to <strong>change folders permissions<\/strong> after each reconfiguration of GitLab (gitlab-ctl reconfigure), so that Plesk can back them\u00a0up. This can be done with the following command:<\/p>\n<pre class=\"brush: bash; title: ; notranslate\" title=\"\">chmod a+x -R \/var\/www\/vhosts\/nullalo.com\/git.nullalo.com\/git-data\r\nchmod a+x -R \/var\/www\/vhosts\/nullalo.com\/git.nullalo.com\/uploads\r\nchmod a+x -R \/var\/www\/vhosts\/nullalo.com\/git.nullalo.com\/backups<\/pre>\n<p><!--nextpage--><\/p>\n<h2 style=\"text-align: justify;\">Phase\u00a03 \u2013 Plesk Integration<\/h2>\n<p style=\"text-align: justify;\">Now that GitLab is configured and running, the most delicate part is on our way: <strong>Plesk integration<\/strong>.<\/p>\n<p style=\"text-align: justify;\">Create <strong>\/etc\/nginx\/conf.d\/gitlab.conf<\/strong>\u00a0file with the following content for GitLab version 7:<\/p>\n<pre class=\"brush: bash; title: ; notranslate\" title=\"\">upstream gitlab {\r\n  server unix:\/var\/opt\/gitlab\/gitlab-rails\/sockets\/gitlab.socket fail_timeout=0;\r\n}<\/pre>\n<p style=\"text-align: justify;\">or the following for version 8.0.x\/8.1.x, which introduces gitlab-git-http-server:<\/p>\n<pre class=\"brush: bash; title: ; notranslate\" title=\"\">upstream gitlab {\r\n  server unix:\/var\/opt\/gitlab\/gitlab-rails\/sockets\/gitlab.socket fail_timeout=0;\r\n}\r\n\r\nupstream gitlab-git-http-server {\r\n    server localhost:8181;\r\n}<\/pre>\n<p style=\"text-align: justify;\">or finally this for version 8.2.x, which introduces gitlab-workhorse:<\/p>\n<pre class=\"brush: bash; title: ; notranslate\" title=\"\">upstream gitlab {\r\n  server unix:\/var\/opt\/gitlab\/gitlab-rails\/sockets\/gitlab.socket fail_timeout=0;\r\n}\r\n\r\nupstream gitlab-workhorse {\r\n  server localhost:8181;\r\n}<\/pre>\n<p style=\"text-align: justify;\">To avoid 413 error\u00a0when <strong>committing large amount of data<\/strong>,\u00a0just\u00a0verify that the http section\u00a0of\u00a0\/etc\/sw-cp-server\/config file contains the following line:<\/p>\n<pre class=\"brush: bash; title: ; notranslate\" title=\"\">client_max_body_size 2048m;<\/pre>\n<p style=\"text-align: justify;\">Then edit \/etc\/nginx\/nginx.conf file and add the same line in the http section:<\/p>\n<pre class=\"brush: bash; title: ; notranslate\" title=\"\">client_max_body_size 2048m;<\/pre>\n<p style=\"text-align: justify;\">Reload\u00a0nginx with:<\/p>\n<pre class=\"brush: bash; title: ; notranslate\" title=\"\">\/etc\/init.d\/nginx reload<\/pre>\n<p style=\"text-align: justify;\">or restart the service with:<\/p>\n<pre class=\"brush: bash; title: ; notranslate\" title=\"\">service nginx restart<\/pre>\n<p style=\"text-align: justify;\">Now, in Plesk, create a new domain or subdomain, for example\u00a0git.nullalo.com, and in its configuration click on \u201cApache &amp; nginx Settings\u201d (&#8220;Web server settings&#8221; on\u00a0Plesk 12.0) for the chosen domain.<br \/>\n<a href=\"https:\/\/www.nullalo.com\/wp-content\/uploads\/2015\/10\/gitlab_plesk_01_en.png\" rel=\"lightbox[1171]\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-medium wp-image-1214\" src=\"\/wp-content\/uploads\/2015\/10\/gitlab_plesk_01_en-300x132.png\" alt=\"gitlab_plesk_01_en\" width=\"300\" height=\"132\" srcset=\"https:\/\/www.nullalo.com\/wp-content\/uploads\/2015\/10\/gitlab_plesk_01_en-300x132.png 300w, https:\/\/www.nullalo.com\/wp-content\/uploads\/2015\/10\/gitlab_plesk_01_en-1024x451.png 1024w, https:\/\/www.nullalo.com\/wp-content\/uploads\/2015\/10\/gitlab_plesk_01_en-360x159.png 360w, https:\/\/www.nullalo.com\/wp-content\/uploads\/2015\/10\/gitlab_plesk_01_en-750x330.png 750w, https:\/\/www.nullalo.com\/wp-content\/uploads\/2015\/10\/gitlab_plesk_01_en-1263x560.png 1263w, https:\/\/www.nullalo.com\/wp-content\/uploads\/2015\/10\/gitlab_plesk_01_en.png 1412w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><\/p>\n<p style=\"text-align: justify;\">Uncheck all the options in the &#8220;nginx settings&#8221; section and add the following text in the &#8220;Additional nginx directives&#8221; textarea for GitLab 7:<\/p>\n<pre class=\"brush: bash; title: ; notranslate\" title=\"\">location \/uploads\/ {\r\n  ## If you use HTTPS make sure you disable gzip compression\r\n  ## to be safe against BREACH attack.\r\n  # gzip off;\r\n\r\n  proxy_read_timeout      300;\r\n  proxy_connect_timeout   300;\r\n  proxy_redirect          off;\r\n\r\n  proxy_set_header    Host                $http_host;\r\n  proxy_set_header    X-Real-IP           $remote_addr;\r\n  proxy_set_header    X-Forwarded-Ssl     on;\r\n  proxy_set_header    X-Forwarded-For     $proxy_add_x_forwarded_for;\r\n  proxy_set_header    X-Forwarded-Proto   $scheme;\r\n  proxy_set_header    X-Frame-Options     SAMEORIGIN;\r\n\r\n  proxy_pass http:\/\/gitlab;\r\n}\r\n\r\nlocation @gitlab {\r\n  ## If you use HTTPS make sure you disable gzip compression\r\n  ## to be safe against BREACH attack.\r\n  # gzip off;\r\n\r\n  proxy_read_timeout      300;\r\n  proxy_connect_timeout   300;\r\n  proxy_redirect          off;\r\n\r\n  proxy_set_header    Host                $http_host;\r\n  proxy_set_header    X-Real-IP           $remote_addr;\r\n  proxy_set_header    X-Forwarded-Ssl     on;\r\n  proxy_set_header    X-Forwarded-For     $proxy_add_x_forwarded_for;\r\n  proxy_set_header    X-Forwarded-Proto   $scheme;\r\n  proxy_set_header    X-Frame-Options     SAMEORIGIN;\r\n\r\n  proxy_pass http:\/\/gitlab;\r\n}\r\n\r\nlocation ~ ^\/(assets)\/ {\r\n  root \/opt\/gitlab\/embedded\/service\/gitlab-rails\/public;\r\n  gzip_static on; # to serve pre-gzipped version\r\n  expires max;\r\n  add_header Cache-Control public;\r\n}\r\n\r\nlocation ~ \/ {\r\n  root \/opt\/gitlab\/embedded\/service\/gitlab-rails\/public;\r\n  try_files $uri $uri\/index.html $uri.html @gitlab;\r\n}\r\n\r\nerror_page 502 \/502.html;<\/pre>\n<p style=\"text-align: justify;\">or the following one for GitLab 8.0.x\/8.1.x (with gitlab-git-http-server):<\/p>\n<pre class=\"brush: bash; title: ; notranslate\" title=\"\">location \/uploads\/ {\r\n  ## If you use HTTPS make sure you disable gzip compression\r\n  ## to be safe against BREACH attack.\r\n  # gzip off;\r\n\r\n  proxy_read_timeout      300;\r\n  proxy_connect_timeout   300;\r\n  proxy_redirect          off;\r\n\r\n  proxy_set_header    Host                $http_host;\r\n  proxy_set_header    X-Real-IP           $remote_addr;\r\n  proxy_set_header    X-Forwarded-Ssl     on;\r\n  proxy_set_header    X-Forwarded-For     $proxy_add_x_forwarded_for;\r\n  proxy_set_header    X-Forwarded-Proto   $scheme;\r\n  proxy_set_header    X-Frame-Options     SAMEORIGIN;\r\n\r\n  proxy_pass http:\/\/gitlab;\r\n}\r\n\r\nlocation @gitlab {\r\n  ## If you use HTTPS make sure you disable gzip compression\r\n  ## to be safe against BREACH attack.\r\n  # gzip off;\r\n\r\n  proxy_read_timeout      300;\r\n  proxy_connect_timeout   300;\r\n  proxy_redirect          off;\r\n\r\n  proxy_set_header    Host                $http_host;\r\n  proxy_set_header    X-Real-IP           $remote_addr;\r\n  proxy_set_header    X-Forwarded-Ssl     on;\r\n  proxy_set_header    X-Forwarded-For     $proxy_add_x_forwarded_for;\r\n  proxy_set_header    X-Forwarded-Proto   $scheme;\r\n  proxy_set_header    X-Frame-Options     SAMEORIGIN;\r\n\r\n  proxy_pass http:\/\/gitlab;\r\n}\r\n\r\nlocation ~ ^\/&#x5B;\\w\\.-]+\/&#x5B;\\w\\.-]+\/(info\/refs|git-upload-pack|git-receive-pack)$ {\r\n  error_page 418 = @gitlab-git-http-server;\r\n  return 418;\r\n}\r\n\r\nlocation ~ ^\/&#x5B;\\w\\.-]+\/&#x5B;\\w\\.-]+\/repository\/archive {\r\n  error_page 418 = @gitlab-git-http-server;\r\n  return 418;\r\n}\r\n\r\nlocation ~ ^\/api\/v3\/projects\/.*\/repository\/archive {\r\n  error_page 418 = @gitlab-git-http-server;\r\n  return 418;\r\n}\r\n\r\nlocation @gitlab-git-http-server {\r\n  ## If you use HTTPS make sure you disable gzip compression\r\n  ## to be safe against BREACH attack.\r\n  # gzip off;\r\n\r\n  proxy_read_timeout      300;\r\n  proxy_connect_timeout   300;\r\n  proxy_redirect          off;\r\n\r\n  proxy_buffering off;\r\n\r\n  # The following settings only work with NGINX 1.7.11 or newer\r\n  #\r\n  # # Pass chunked request bodies to gitlab-git-http-server as-is\r\n  # proxy_request_buffering off;\r\n  # proxy_http_version 1.1;\r\n\r\n  proxy_set_header    Host                $http_host;\r\n  proxy_set_header    X-Real-IP           $remote_addr;\r\n  proxy_set_header    X-Forwarded-Ssl     on;\r\n  proxy_set_header    X-Forwarded-For     $proxy_add_x_forwarded_for;\r\n  proxy_set_header    X-Forwarded-Proto   $scheme;\r\n  proxy_pass http:\/\/gitlab-git-http-server;\r\n}\r\n\r\nlocation ~ ^\/(assets)\/ {\r\n  root \/opt\/gitlab\/embedded\/service\/gitlab-rails\/public;\r\n  gzip_static on;\r\n  expires max;\r\n  add_header Cache-Control public;\r\n}\r\n\r\nlocation ~ \/ {\r\n  root \/opt\/gitlab\/embedded\/service\/gitlab-rails\/public;\r\n  try_files $uri $uri\/index.html $uri.html @gitlab;\r\n}\r\n \r\nerror_page 502 \/502.html;<\/pre>\n<p style=\"text-align: justify;\">or the following for GitLab 8.2.x (with gitlab-workhorse):<\/p>\n<pre class=\"brush: bash; title: ; notranslate\" title=\"\">location \/uploads\/ {\r\n  ## If you use HTTPS make sure you disable gzip compression\r\n  ## to be safe against BREACH attack.\r\n  # gzip off;\r\n\r\n  proxy_read_timeout      300;\r\n  proxy_connect_timeout   300;\r\n  proxy_redirect          off;\r\n\r\n  proxy_set_header    Host                $http_host;\r\n  proxy_set_header    X-Real-IP           $remote_addr;\r\n  proxy_set_header    X-Forwarded-For     $proxy_add_x_forwarded_for;\r\n  proxy_set_header    X-Forwarded-Proto   $scheme;\r\n  proxy_set_header    X-Frame-Options     SAMEORIGIN;\r\n\r\n  proxy_pass http:\/\/gitlab;\r\n}\r\n\r\nlocation @gitlab {\r\n  ## If you use HTTPS make sure you disable gzip compression\r\n  ## to be safe against BREACH attack.\r\n  # gzip off;\r\n\r\n  proxy_read_timeout      300;\r\n  proxy_connect_timeout   300;\r\n  proxy_redirect          off;\r\n\r\n  proxy_set_header    Host                $http_host;\r\n  proxy_set_header    X-Real-IP           $remote_addr;\r\n  proxy_set_header    X-Forwarded-For     $proxy_add_x_forwarded_for;\r\n  proxy_set_header    X-Forwarded-Proto   $scheme;\r\n  proxy_set_header    X-Frame-Options     SAMEORIGIN;\r\n\r\n  proxy_pass http:\/\/gitlab;\r\n}\r\n\r\nlocation ~ ^\/&#x5B;\\w\\.-]+\/&#x5B;\\w\\.-]+\/gitlab-lfs\/objects {\r\n  client_max_body_size 0;\r\n  error_page 418 = @gitlab-workhorse;\r\n  return 418;\r\n}\r\n\r\nlocation ~ ^\/&#x5B;\\w\\.-]+\/&#x5B;\\w\\.-]+\/(info\/refs|git-upload-pack|git-receive-pack)$ {\r\n  client_max_body_size 0;\r\n  error_page 418 = @gitlab-workhorse;\r\n  return 418;\r\n}\r\n\r\nlocation ~ ^\/&#x5B;\\w\\.-]+\/&#x5B;\\w\\.-]+\/repository\/archive {\r\n  client_max_body_size 0;\r\n  error_page 418 = @gitlab-workhorse;\r\n  return 418;\r\n}\r\n\r\nlocation ~ ^\/api\/v3\/projects\/.*\/repository\/archive {\r\n  client_max_body_size 0;\r\n  error_page 418 = @gitlab-workhorse;\r\n  return 418;\r\n}\r\n\r\nlocation ~ ^\/&#x5B;\\w\\.-]+\/&#x5B;\\w\\.-]+\/builds\/download {\r\n  client_max_body_size 0;\r\n  error_page 418 = @gitlab-workhorse;\r\n  return 418;\r\n}\r\n\r\nlocation ~ \/ci\/api\/v1\/builds\/&#x5B;0-9]+\/artifacts {\r\n  client_max_body_size 0;\r\n  error_page 418 = @gitlab-workhorse;\r\n  return 418;\r\n}\r\n\r\nlocation @gitlab-workhorse {\r\n  client_max_body_size 0;\r\n  ## If you use HTTPS make sure you disable gzip compression\r\n  ## to be safe against BREACH attack.\r\n  # gzip off;\r\n\r\n  proxy_read_timeout      300;\r\n  proxy_connect_timeout   300;\r\n  proxy_redirect          off;\r\n\r\n  proxy_buffering off;\r\n\r\n  # The following settings only work with NGINX 1.7.11 or newer\r\n  #\r\n  # # Pass chunked request bodies to gitlab-workhorse as-is\r\n  # proxy_request_buffering off;\r\n  # proxy_http_version 1.1;\r\n\r\n  proxy_set_header    Host                $http_host;\r\n  proxy_set_header    X-Real-IP           $remote_addr;\r\n  proxy_set_header    X-Forwarded-For     $proxy_add_x_forwarded_for;\r\n  proxy_set_header    X-Forwarded-Proto   $scheme;\r\n\r\n  proxy_pass http:\/\/gitlab-workhorse;\r\n}\r\n\r\nlocation ~ ^\/(assets)\/ {\r\n  root \/opt\/gitlab\/embedded\/service\/gitlab-rails\/public;\r\n  gzip_static on; # to serve pre-gzipped version\r\n  expires max;\r\n  add_header Cache-Control public;\r\n}\r\n\r\nlocation ~ \/ {\r\n  root \/opt\/gitlab\/embedded\/service\/gitlab-rails\/public;\r\n  try_files $uri $uri\/index.html $uri.html @gitlab;\r\n}\r\n\r\nerror_page 502 \/502.html;<\/pre>\n<p style=\"text-align: center;\"><a href=\"https:\/\/www.nullalo.com\/wp-content\/uploads\/2015\/10\/gitlab_plesk_02_it.png\" rel=\"lightbox[1171]\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-medium wp-image-1182\" src=\"\/wp-content\/uploads\/2015\/10\/gitlab_plesk_02_it-300x262.png\" alt=\"gitlab_plesk_02_it\" width=\"300\" height=\"262\" srcset=\"https:\/\/www.nullalo.com\/wp-content\/uploads\/2015\/10\/gitlab_plesk_02_it-300x262.png 300w, https:\/\/www.nullalo.com\/wp-content\/uploads\/2015\/10\/gitlab_plesk_02_it-1024x893.png 1024w, https:\/\/www.nullalo.com\/wp-content\/uploads\/2015\/10\/gitlab_plesk_02_it-360x314.png 360w, https:\/\/www.nullalo.com\/wp-content\/uploads\/2015\/10\/gitlab_plesk_02_it-750x654.png 750w, https:\/\/www.nullalo.com\/wp-content\/uploads\/2015\/10\/gitlab_plesk_02_it.png 1902w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><\/p>\n<p><!--nextpage--><\/p>\n<h2 style=\"text-align: justify;\">Phase\u00a04 \u2013 GitLab\u00a0Login<\/h2>\n<p>Navigate to the URL of the chosen domain (example http:\/\/git.nullalo.com) and login with the default GitLab credentials:<\/p>\n<pre>Username: root<\/pre>\n<pre>Password: 5iveL!fe<\/pre>\n<p style=\"text-align: justify;\">Change password on first login.<\/p>\n<p style=\"text-align: center;\"><a href=\"https:\/\/www.nullalo.com\/wp-content\/uploads\/2015\/10\/gitlab_plesk_03_en.png\" rel=\"lightbox[1171]\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-medium wp-image-1184\" src=\"\/wp-content\/uploads\/2015\/10\/gitlab_plesk_03_en-300x170.png\" alt=\"gitlab_plesk_03_en\" width=\"300\" height=\"170\" srcset=\"https:\/\/www.nullalo.com\/wp-content\/uploads\/2015\/10\/gitlab_plesk_03_en-300x170.png 300w, https:\/\/www.nullalo.com\/wp-content\/uploads\/2015\/10\/gitlab_plesk_03_en-1024x581.png 1024w, https:\/\/www.nullalo.com\/wp-content\/uploads\/2015\/10\/gitlab_plesk_03_en-360x204.png 360w, https:\/\/www.nullalo.com\/wp-content\/uploads\/2015\/10\/gitlab_plesk_03_en-750x426.png 750w, https:\/\/www.nullalo.com\/wp-content\/uploads\/2015\/10\/gitlab_plesk_03_en.png 1902w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><\/p>\n<p style=\"text-align: justify;\">Once you login with the new credentials, you will finally have access to GitLab.<\/p>\n<p style=\"text-align: center;\"><a href=\"https:\/\/www.nullalo.com\/wp-content\/uploads\/2015\/10\/gitlab_plesk_04_en.png\" rel=\"lightbox[1171]\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-medium wp-image-1185\" src=\"\/wp-content\/uploads\/2015\/10\/gitlab_plesk_04_en-300x170.png\" alt=\"gitlab_plesk_04_en\" width=\"300\" height=\"170\" srcset=\"https:\/\/www.nullalo.com\/wp-content\/uploads\/2015\/10\/gitlab_plesk_04_en-300x170.png 300w, https:\/\/www.nullalo.com\/wp-content\/uploads\/2015\/10\/gitlab_plesk_04_en-1024x581.png 1024w, https:\/\/www.nullalo.com\/wp-content\/uploads\/2015\/10\/gitlab_plesk_04_en-360x204.png 360w, https:\/\/www.nullalo.com\/wp-content\/uploads\/2015\/10\/gitlab_plesk_04_en-750x426.png 750w, https:\/\/www.nullalo.com\/wp-content\/uploads\/2015\/10\/gitlab_plesk_04_en.png 1902w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><\/p>\n<p style=\"text-align: justify;\">At this point, if you want to access the repository via\u00a0SSH instead of HTTP, you need to <strong>generate a public SSH-2 RSA key<\/strong> for your client.<\/p>\n<p style=\"text-align: justify;\">On Windows you can use Git Bash (already included with <a href=\"https:\/\/git-scm.com\/download\/win\" target=\"_blank\">Git for Windows<\/a>) or <a href=\"http:\/\/www.chiark.greenend.org.uk\/~sgtatham\/putty\/download.html\" target=\"_blank\">PuTTy<\/a>&#8216;s\u00a0puttygen.exe command. On Linux or in the first case, once launched Git Bash from the Start menu, the command is:<\/p>\n<pre class=\"brush: bash; title: ; notranslate\" title=\"\">ssh-keygen -t rsa -C &quot;&lt;your email&gt;&quot;<\/pre>\n<p style=\"text-align: justify;\">On Linux, the generated public key can be read with:<\/p>\n<pre class=\"brush: bash; title: ; notranslate\" title=\"\">cat ~\/.ssh\/id_rsa.pub<\/pre>\n<p style=\"text-align: justify;\">while on Windows it will be located in the following path:<\/p>\n<pre>%USERPROFILE%\\.ssh\\id_rsa.pub<\/pre>\n<p style=\"text-align: justify;\">At this point you have to <strong>set SSH key for your profile<\/strong>. Click on &#8220;Profile Settings&#8221; or the profile (root) icon on the bottom left of the GitLab page to access the profile settings:<\/p>\n<p style=\"text-align: justify;\"><a href=\"https:\/\/www.nullalo.com\/wp-content\/uploads\/2015\/10\/gitlab_plesk_05_en.png\" rel=\"lightbox[1171]\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-medium wp-image-1186\" src=\"\/wp-content\/uploads\/2015\/10\/gitlab_plesk_05_en-300x170.png\" alt=\"gitlab_plesk_05_en\" width=\"300\" height=\"170\" srcset=\"https:\/\/www.nullalo.com\/wp-content\/uploads\/2015\/10\/gitlab_plesk_05_en-300x170.png 300w, https:\/\/www.nullalo.com\/wp-content\/uploads\/2015\/10\/gitlab_plesk_05_en-1024x581.png 1024w, https:\/\/www.nullalo.com\/wp-content\/uploads\/2015\/10\/gitlab_plesk_05_en-360x204.png 360w, https:\/\/www.nullalo.com\/wp-content\/uploads\/2015\/10\/gitlab_plesk_05_en-750x426.png 750w, https:\/\/www.nullalo.com\/wp-content\/uploads\/2015\/10\/gitlab_plesk_05_en.png 1902w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><\/p>\n<p style=\"text-align: justify;\">then click on\u00a0\u201cSSH Keys\u201d in the left menu and finally on the \u201cAdd SSH Key\u201d button on the top right corner of the window.<\/p>\n<p style=\"text-align: center;\"><a href=\"https:\/\/www.nullalo.com\/wp-content\/uploads\/2015\/10\/gitlab_plesk_06_en.png\" rel=\"lightbox[1171]\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-medium wp-image-1187\" src=\"\/wp-content\/uploads\/2015\/10\/gitlab_plesk_06_en-300x170.png\" alt=\"gitlab_plesk_06_en\" width=\"300\" height=\"170\" srcset=\"https:\/\/www.nullalo.com\/wp-content\/uploads\/2015\/10\/gitlab_plesk_06_en-300x170.png 300w, https:\/\/www.nullalo.com\/wp-content\/uploads\/2015\/10\/gitlab_plesk_06_en-1024x581.png 1024w, https:\/\/www.nullalo.com\/wp-content\/uploads\/2015\/10\/gitlab_plesk_06_en-360x204.png 360w, https:\/\/www.nullalo.com\/wp-content\/uploads\/2015\/10\/gitlab_plesk_06_en-750x426.png 750w, https:\/\/www.nullalo.com\/wp-content\/uploads\/2015\/10\/gitlab_plesk_06_en.png 1902w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><\/p>\n<p style=\"text-align: justify;\">Type in a name for your key (basically your email or client&#8217;s name) in the \u201cTitle\u201d field, paste the public key in the \u201cKey\u201d field and click on \u201cAdd key\u201d.<\/p>\n<p style=\"text-align: center;\"><a href=\"https:\/\/www.nullalo.com\/wp-content\/uploads\/2015\/10\/gitlab_plesk_07_en.png\" rel=\"lightbox[1171]\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-medium wp-image-1188\" src=\"\/wp-content\/uploads\/2015\/10\/gitlab_plesk_07_en-300x170.png\" alt=\"gitlab_plesk_07_en\" width=\"300\" height=\"170\" srcset=\"https:\/\/www.nullalo.com\/wp-content\/uploads\/2015\/10\/gitlab_plesk_07_en-300x170.png 300w, https:\/\/www.nullalo.com\/wp-content\/uploads\/2015\/10\/gitlab_plesk_07_en-1024x581.png 1024w, https:\/\/www.nullalo.com\/wp-content\/uploads\/2015\/10\/gitlab_plesk_07_en-360x204.png 360w, https:\/\/www.nullalo.com\/wp-content\/uploads\/2015\/10\/gitlab_plesk_07_en-750x426.png 750w, https:\/\/www.nullalo.com\/wp-content\/uploads\/2015\/10\/gitlab_plesk_07_en.png 1902w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><\/p>\n<p style=\"text-align: justify;\">If you got \u201c<em>Fingerprint cannot be generated<\/em>\u201d error, then the generated key is not correct\u00a0(maybe you have pasted only a part of it, or is not in\u00a0SSH-2 RSA format). If the key has been accepted by GitLab, this is what you will see:<\/p>\n<p style=\"text-align: center;\"><a href=\"https:\/\/www.nullalo.com\/wp-content\/uploads\/2015\/10\/gitlab_plesk_08_en.png\" rel=\"lightbox[1171]\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-medium wp-image-1183\" src=\"\/wp-content\/uploads\/2015\/10\/gitlab_plesk_08_en-300x170.png\" alt=\"gitlab_plesk_08_en\" width=\"300\" height=\"170\" srcset=\"https:\/\/www.nullalo.com\/wp-content\/uploads\/2015\/10\/gitlab_plesk_08_en-300x170.png 300w, https:\/\/www.nullalo.com\/wp-content\/uploads\/2015\/10\/gitlab_plesk_08_en-1024x581.png 1024w, https:\/\/www.nullalo.com\/wp-content\/uploads\/2015\/10\/gitlab_plesk_08_en-360x204.png 360w, https:\/\/www.nullalo.com\/wp-content\/uploads\/2015\/10\/gitlab_plesk_08_en-750x426.png 750w, https:\/\/www.nullalo.com\/wp-content\/uploads\/2015\/10\/gitlab_plesk_08_en.png 1902w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><\/p>\n<p><!--nextpage--><\/p>\n<h2 style=\"text-align: justify;\">Phase\u00a05 &#8211;\u00a0Final\u00a0checks<\/h2>\n<p style=\"text-align: justify;\">To <strong>test the SSH connection between your client and\u00a0GitLab server<\/strong> (in the example, http:\/\/git.nullalo.com) you can use the following command from Git Bash:<\/p>\n<pre class=\"brush: bash; title: ; notranslate\" title=\"\">ssh -T git@git.nullalo.com\r\n\r\nWelcome to GitLab, Administrator!<\/pre>\n<p>You may get a warning like &#8220;<em>The authenticity of host &#8216;git.nullalo.com (192.168.0.103)&#8217; can not be established.<\/em>&#8220;: answer &#8220;yes&#8221; and press enter, and it won&#8217;t be asked again (the host will be added to the list of known hosts in the known_hosts file).<\/p>\n<p>Now you&#8217;re all set! Check for errors while using GitLab with:<\/p>\n<pre class=\"brush: bash; title: ; notranslate\" title=\"\">tail \/var\/log\/gitlab\/unicorn\/unicorn_stderr.log -f\r\ntail \/var\/log\/gitlab\/gitlab-rails\/production.log -f\r\ntail \/var\/log\/gitlab\/gitlab-shell\/gitlab-shell.log -f<\/pre>\n<p style=\"text-align: justify;\">Also ensure that the additional Nginx directives are\u00a0correct, namely that the chosen virtual host (in the example http:\/\/git.nullalo.com) <strong>is the only one to point to GitLab<\/strong> by simply visiting\u00a0another domain hosted\u00a0by the server (eg https:\/\/www.nullalo.com).<br \/>\nAlthough the procedure is reliable and verified, you should never\u00a0perform it directly on the production environment, but you&#8217;d better try it for the first time on a copy\u00a0(eg. A VM), as a particular configuration of your server may cause unexpected and not discussed in this article errors.<\/p>\n<p style=\"text-align: justify;\">\n<h3>Last update: December 17, 2015 &#8211; tested on CentOS v6.7, Plesk v12.5.30 and GitLab v8.2.3<\/h3>\n<p><\/p>","protected":false},"excerpt":{"rendered":"<p>Sorry, this entry is only available in Italiano.<\/p>\n","protected":false},"author":2,"featured_media":1204,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"footnotes":""},"categories":[5,6],"tags":[97,94,95,96],"class_list":["post-1171","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-teaser","category-uncategorized","tag-centos","tag-git","tag-gitlab","tag-plesk"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v24.6 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Install GitLab with Plesk 12 on CentOS 6 - Nullalo!<\/title>\n<meta name=\"description\" content=\"Installing GitLab on a CentOS 6 server with Plesk 12 can be very difficult. In this tutorial all the needed steps are revealed.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.nullalo.com\/?p=1171\" \/>\n<link rel=\"next\" href=\"https:\/\/www.nullalo.com\/2\/?p=1171\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Install GitLab with Plesk 12 on CentOS 6 - Nullalo!\" \/>\n<meta property=\"og:description\" content=\"{:it}Installare GitLab su un server CentOS 6 con Plesk 12 pu\u00f2 essere molto difficoltoso. In questo tutorial vengono dettagliati tutti i passi necessari.{:en}Installing GitLab on a CentOS 6 server with Plesk 12 can be very difficult. In this tutorial all the needed steps are revealed.{:}\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.nullalo.com\/?p=1171\" \/>\n<meta property=\"og:site_name\" content=\"Nullalo!\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/nullalo\" \/>\n<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/fulvio.sicurezza\" \/>\n<meta property=\"article:published_time\" content=\"2015-10-12T16:24:39+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-10-22T08:16:25+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.nullalo.com\/wp-content\/uploads\/2015\/10\/gitlab_plesk_centos.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"1140\" \/>\n\t<meta property=\"og:image:height\" content=\"600\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Fulvio Sicurezza\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@https:\/\/twitter.com\/FulvioSicurezza\" \/>\n<meta name=\"twitter:site\" content=\"@Nullalo\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Fulvio Sicurezza\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"29 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.nullalo.com\/?p=1171\",\"url\":\"https:\/\/www.nullalo.com\/?p=1171\",\"name\":\"{:it}Installare GitLab con Plesk 12 su CentOS 6 - Nullalo!{:en}Install GitLab with Plesk 12 on CentOS 6 - Nullalo!{:}\",\"isPartOf\":{\"@id\":\"https:\/\/www.nullalo.com\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.nullalo.com\/?p=1171#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.nullalo.com\/?p=1171#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.nullalo.com\/wp-content\/uploads\/2015\/10\/gitlab_plesk_centos.jpg\",\"datePublished\":\"2015-10-12T16:24:39+00:00\",\"dateModified\":\"2025-10-22T08:16:25+00:00\",\"author\":{\"@id\":\"https:\/\/www.nullalo.com\/#\/schema\/person\/fe9c2885376a6ab076e06461ae1b546c\"},\"description\":\"{:it}Installare GitLab su un server CentOS 6 con Plesk 12 pu\u00f2 essere molto difficoltoso. In questo tutorial vengono dettagliati tutti i passi necessari.{:en}Installing GitLab on a CentOS 6 server with Plesk 12 can be very difficult. In this tutorial all the needed steps are revealed.{:}\",\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.nullalo.com\/?p=1171\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.nullalo.com\/?p=1171#primaryimage\",\"url\":\"https:\/\/www.nullalo.com\/wp-content\/uploads\/2015\/10\/gitlab_plesk_centos.jpg\",\"contentUrl\":\"https:\/\/www.nullalo.com\/wp-content\/uploads\/2015\/10\/gitlab_plesk_centos.jpg\",\"width\":1140,\"height\":600},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.nullalo.com\/#website\",\"url\":\"https:\/\/www.nullalo.com\/\",\"name\":\"Nullalo!\",\"description\":\"\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.nullalo.com\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.nullalo.com\/#\/schema\/person\/fe9c2885376a6ab076e06461ae1b546c\",\"name\":\"Fulvio Sicurezza\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.nullalo.com\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/www.nullalo.com\/wp-content\/uploads\/2015\/02\/Fulvio-Sicurezza_avatar_1424711147-96x96.jpg\",\"contentUrl\":\"https:\/\/www.nullalo.com\/wp-content\/uploads\/2015\/02\/Fulvio-Sicurezza_avatar_1424711147-96x96.jpg\",\"caption\":\"Fulvio Sicurezza\"},\"sameAs\":[\"http:\/\/www.generalservice.na.it\",\"https:\/\/www.facebook.com\/fulvio.sicurezza\",\"http:\/\/it.linkedin.com\/in\/fulviosicurezza\",\"https:\/\/x.com\/https:\/\/twitter.com\/FulvioSicurezza\",\"https:\/\/www.youtube.com\/c\/FulvioSicurezzaIT\"],\"url\":\"https:\/\/www.nullalo.com\/en\/author\/f-sicurezza\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Install GitLab with Plesk 12 on CentOS 6 - Nullalo!","description":"Installing GitLab on a CentOS 6 server with Plesk 12 can be very difficult. In this tutorial all the needed steps are revealed.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.nullalo.com\/?p=1171","next":"https:\/\/www.nullalo.com\/2\/?p=1171","og_locale":"en_US","og_type":"article","og_title":"Install GitLab with Plesk 12 on CentOS 6 - Nullalo!","og_description":"{:it}Installare GitLab su un server CentOS 6 con Plesk 12 pu\u00f2 essere molto difficoltoso. In questo tutorial vengono dettagliati tutti i passi necessari.{:en}Installing GitLab on a CentOS 6 server with Plesk 12 can be very difficult. In this tutorial all the needed steps are revealed.{:}","og_url":"https:\/\/www.nullalo.com\/?p=1171","og_site_name":"Nullalo!","article_publisher":"https:\/\/www.facebook.com\/nullalo","article_author":"https:\/\/www.facebook.com\/fulvio.sicurezza","article_published_time":"2015-10-12T16:24:39+00:00","article_modified_time":"2025-10-22T08:16:25+00:00","og_image":[{"width":1140,"height":600,"url":"https:\/\/www.nullalo.com\/wp-content\/uploads\/2015\/10\/gitlab_plesk_centos.jpg","type":"image\/jpeg"}],"author":"Fulvio Sicurezza","twitter_card":"summary_large_image","twitter_creator":"@https:\/\/twitter.com\/FulvioSicurezza","twitter_site":"@Nullalo","twitter_misc":{"Written by":"Fulvio Sicurezza","Est. reading time":"29 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.nullalo.com\/?p=1171","url":"https:\/\/www.nullalo.com\/?p=1171","name":"{:it}Installare GitLab con Plesk 12 su CentOS 6 - Nullalo!{:en}Install GitLab with Plesk 12 on CentOS 6 - Nullalo!{:}","isPartOf":{"@id":"https:\/\/www.nullalo.com\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.nullalo.com\/?p=1171#primaryimage"},"image":{"@id":"https:\/\/www.nullalo.com\/?p=1171#primaryimage"},"thumbnailUrl":"https:\/\/www.nullalo.com\/wp-content\/uploads\/2015\/10\/gitlab_plesk_centos.jpg","datePublished":"2015-10-12T16:24:39+00:00","dateModified":"2025-10-22T08:16:25+00:00","author":{"@id":"https:\/\/www.nullalo.com\/#\/schema\/person\/fe9c2885376a6ab076e06461ae1b546c"},"description":"{:it}Installare GitLab su un server CentOS 6 con Plesk 12 pu\u00f2 essere molto difficoltoso. In questo tutorial vengono dettagliati tutti i passi necessari.{:en}Installing GitLab on a CentOS 6 server with Plesk 12 can be very difficult. In this tutorial all the needed steps are revealed.{:}","inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.nullalo.com\/?p=1171"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.nullalo.com\/?p=1171#primaryimage","url":"https:\/\/www.nullalo.com\/wp-content\/uploads\/2015\/10\/gitlab_plesk_centos.jpg","contentUrl":"https:\/\/www.nullalo.com\/wp-content\/uploads\/2015\/10\/gitlab_plesk_centos.jpg","width":1140,"height":600},{"@type":"WebSite","@id":"https:\/\/www.nullalo.com\/#website","url":"https:\/\/www.nullalo.com\/","name":"Nullalo!","description":"","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.nullalo.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/www.nullalo.com\/#\/schema\/person\/fe9c2885376a6ab076e06461ae1b546c","name":"Fulvio Sicurezza","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.nullalo.com\/#\/schema\/person\/image\/","url":"https:\/\/www.nullalo.com\/wp-content\/uploads\/2015\/02\/Fulvio-Sicurezza_avatar_1424711147-96x96.jpg","contentUrl":"https:\/\/www.nullalo.com\/wp-content\/uploads\/2015\/02\/Fulvio-Sicurezza_avatar_1424711147-96x96.jpg","caption":"Fulvio Sicurezza"},"sameAs":["http:\/\/www.generalservice.na.it","https:\/\/www.facebook.com\/fulvio.sicurezza","http:\/\/it.linkedin.com\/in\/fulviosicurezza","https:\/\/x.com\/https:\/\/twitter.com\/FulvioSicurezza","https:\/\/www.youtube.com\/c\/FulvioSicurezzaIT"],"url":"https:\/\/www.nullalo.com\/en\/author\/f-sicurezza\/"}]}},"_links":{"self":[{"href":"https:\/\/www.nullalo.com\/en\/wp-json\/wp\/v2\/posts\/1171","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.nullalo.com\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.nullalo.com\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.nullalo.com\/en\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.nullalo.com\/en\/wp-json\/wp\/v2\/comments?post=1171"}],"version-history":[{"count":1,"href":"https:\/\/www.nullalo.com\/en\/wp-json\/wp\/v2\/posts\/1171\/revisions"}],"predecessor-version":[{"id":1946,"href":"https:\/\/www.nullalo.com\/en\/wp-json\/wp\/v2\/posts\/1171\/revisions\/1946"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.nullalo.com\/en\/wp-json\/wp\/v2\/media\/1204"}],"wp:attachment":[{"href":"https:\/\/www.nullalo.com\/en\/wp-json\/wp\/v2\/media?parent=1171"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.nullalo.com\/en\/wp-json\/wp\/v2\/categories?post=1171"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.nullalo.com\/en\/wp-json\/wp\/v2\/tags?post=1171"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}