CentOS 6.5环境搭建gitlab笔记
最近正在使用Git这个版本管理工具,不得不说习惯了以后确实比SVN好用得多了,同时结合github这样的网站一起使用,更是让团队开发的效率得到很大的提升。但github有一个不爽的地方就是private项目要收费,想免费使用的只能创建public项目,而且有时候在国内访问又会被HX了......正好到公司上班的时候发现了一神器:gitlab,可以说是github的完美私人版本,经过许多尝试后,终于配置成功。
安装gitlab其实还算挺简单的,在官网上按照教程yum | rpm安装就可以了。但有一个让我很头疼的问题,因为gitlab的安装包默认会包含ruby、nginx、postgres等一些套件,官网推荐的方式是一起安装,然后自成一体就可以直接使用。但我的服务器上面已经安装了nginx,而且还挂了几个网站。这种情况下可以有两个选择:一是把/etc/gitlab/gitlab.rb配置中把它默认的nginx服务停掉,使用已经安装的nginx服务作为web server,具体可以参考官方文档:aaa。二就是把以前安装的nginx废掉,使用bundled里面的nginx版本。
一开始我用的是方案一,但进行得却很不顺利:配置server节点的时候总提示messager错误,原来是ruby想着的配置找不到,这点我的理解应该是类型于php-fpm的fastcgi没配置好一样。由于自己对ruby不了解,最终只能放弃而改用方案二了。
方案二配置要点:
1. 主要的配置文件:
a. /etc/gitlab/gitlab.rb
gitlab的主配置文件,大部分gitlab相关配置都在里面修改。记得改完后执行gitlab-ctl reconfigure才能生效。
b. /var/opt/gitlab/nginx/conf/
这个相当于nginx的配置,但和标准版本的nginx还是有些不一样。
2. 卸载原有的nginx。
可直接通过 yum remove命令完成。
3. 修改/etc/gitlab/gitlab.rb,去掉nginx['custom_nginx_config']和ci_nginx['custom_nginx_config']前面的注释,同时把它们的值设置成自己的.conf文件路径。注意,修改后记得运行gitlab-ctl reconfigure重新生成配置文件,这一步同时也会将/var/opt/gitlab/nginx/conf/nginx.conf这个nginx的主要配置覆盖掉。所以如果你有多个网站需要配置到ng中的话就得想想办法了,要么在custom_nginx_config配置中通过通过符的方式加载全部ng的.conf文件(custom_nginx_config只能设置一个),要么每次覆盖掉nginx.conf文件后再手动写入include内容,然后gitlab-ctl restart。
4. 如果还需要fastcgi运行php-fpm,刻检查/var/opt/gitlab/nginx/conf/下面是否有fastcgi_params这个文件,如果没有则server节点中“include fastcgi_params;”一定会报错。
另附一个fastcgi_params文件:
fastcgi_paramQUERY_STRING $query_string;
fastcgi_paramREQUEST_METHOD $request_method;
fastcgi_paramCONTENT_TYPE $content_type;
fastcgi_paramCONTENT_LENGTH $content_length;
fastcgi_paramSCRIPT_NAME $fastcgi_script_name;
fastcgi_paramREQUEST_URI $request_uri;
fastcgi_paramDOCUMENT_URI $document_uri;
fastcgi_paramDOCUMENT_ROOT $document_root;
fastcgi_paramSERVER_PROTOCOL $server_protocol;
fastcgi_paramHTTPS $https if_not_empty;
fastcgi_paramGATEWAY_INTERFACECGI
/1.1;
fastcgi_paramSERVER_SOFTWARE nginx
/$nginx_version;
fastcgi_paramREMOTE_ADDR $remote_addr;
fastcgi_paramREMOTE_PORT $remote_port;
fastcgi_paramSERVER_ADDR $server_addr;
fastcgi_paramSERVER_PORT $server_port;
fastcgi_paramSERVER_NAME $server_name;
# PHP only, required
if PHP was built with --enable-force-cgi-redirect
fastcgi_paramREDIRECT_STATUS
200;
页:
[1]