广告

如何在Linux下部署Git+Bugzilla+Gogs服务

2017-1-15 15:29 295 0

如果需要在小团队内做代码协同,Git+Bugzilla+Gogs是不错的选择,因为它们免费、开源且轻量。


以下操作会同时在Fedora24和Ubuntu14.04 LTS下进行。


遇到任何问题,都可以参考Git、Bugzilla和Gogs的官方文档。


===============================================================================


第一步:安装Git


其实在Linux系统下,安装软件有许多种方法,可以从软件源里安装,也可以使用源代码编译。


这里只使用软件源安装方法,其他方法殊途同归。


在Fedora下:


dnf update


dnf install git


dnf install git-gui


在Ubuntu下:


apt-get update


apt-get dist-upgrade


apt-get install git


apt-get install git-gui


使用git和git gui:


$ git config --global user.name [username]


$ git config --global user.email [email]


$ git gui


推荐先升级一下系统,刷新一下软件源列表。


git-gui是我习惯使用的Git图形界面,你也可以安装类似的图形界面,或者不安装。


用户名和邮箱是一定要配置的,否则无法正常使用Git。


===============================================================================


第二步:安装数据库PostgreSQL


在Fedora下:


dnf install postgresql-server


psql -V


postgresql-setup --initdb


systemctl start postgresql.service


systemctl enable postgresql.service


systemctl status postgresql.service


在Ubuntu下:


apt-get install postgresql


psql -V


service postgresql start


service postgresql status


apt-get install bum


bum


新建用户的命令是一样的:


cd /var


su - postgres


$ createuser -U postgres -dRSP bugs


$ createuser -U postgres -dRSP gogs


然后配置数据库:


cd /var/lib/pgsql/data/


cd /etc/postgresql/9.3/main/


vim postgresql.conf



  • listen_addresses = 'localhost'


  • listen_addresses = '*'


vim pg_hba.conf


-host all all 127.0.0.1/32 ident


+host all all 127.0.0.1/32 trust


-host all all ::1/128 ident


+host all all ::1/128 trust


安装好PostgreSQL之后,使能服务,并使用“systemctl enable”或者“bum”保证开机自动启动。


然后为它们新添用户,一个名为bugs(Bugzilla),一个名为gogs(Gogs),密码都为空。


接着配置PostgreSQL的权限,配置完成之后要重启PostgreSQL服务。


最后为PostgreSQL服务打开防火墙。


===============================================================================


第三步:安装Bugzilla


在Fedora下:


dnf install bugzilla


/usr/share/bugzilla/checksetup.pl --check-modules


dnf install "perl(::)"


/usr/share/bugzilla/checksetup.pl


cd /etc/bugzilla/


vim localconfig



  • $db_driver = 'mysql';


  • $db_driver = 'Pg';



/usr/share/bugzilla/checksetup.pl


cd /etc/httpd/conf.d


vim bugzilla.conf



  • AllowOverride Limit Options FileInfo Indexes


  • AllowOverride All



systemctl start httpd.service


systemctl enable httpd.service


systemctl status httpd.service


在Ubuntu下:


apt-get install apache2


apt-get install postgresql-server-dev-9.3


cd /var/www/html


git clone --branch release-5.0-stable \


https://github.com/bugzilla/bugzilla bugzilla

vim /etc/apache2/sites-available/bugzilla.conf



  • ServerName localhost



  • AddHandler cgi-script .cgi


  • Options +ExecCGI


  • DirectoryIndex index.cgi index.html


  • AllowOverride All




a2ensite bugzilla


service apache2 reload


a2enmod cgi headers expires


service apache2 restart


cd /var/www/html/bugzilla/


./checksetup.pl


/usr/bin/perl install-module.pl --all


./checksetup.pl


vim localconfig



  • $webservergroup = "apache"


  • $webservergroup = "www-data"


  • $db_driver = 'mysql';


  • $db_driver = 'Pg';



/usr/share/bugzilla/checksetup.pl


在Ubuntu下需要安装postgresql-server的devel文件,执行checksetup.pl时会有提示。


如果checksetup.pl成功,则会要求输入管理员的用户名和密码,按照实际情况设置即可。


Bugzilla的安装看起来比较复杂,但可以归结为几个基本步骤:


1.安装httpd(Fedora24已自带)或apache2(Ubuntu需安装);


2.安装Bugzilla及它需要的所有Perl模块,全部安装比较省事;


3.修改Bugzilla和httpd(或apache2)服务的配置,使能Bugzilla页面;


4.使能httpd(或apache2)服务的防火墙;


5.启动服务。


在浏览器中输入下面的地址,验证是否成功安装:


http://127.0.0.1/


http://127.0.0.1/bugzilla/


配置Bugzilla邮件服务需要关闭SELinx!


配置Bugzilla邮件服务需要关闭SELinx!


配置Bugzilla邮件服务需要关闭SELinx!


一般来说,安装过程不会easy,这时候就要发挥开源软件挖坑添坑的艰苦作业精神,反复尝试,直到成功。


祝大家在此过程中得到快乐,哈哈!


===============================================================================


第四步:安装Gogs


在Fedora下:


dnf install mercurial


dnf install golang


go version


$ vim ~/.bashrc



  • export GOPATH=/home/xxx/go


  • export GOROOT=/usr/lib/golang


  • export PATH=${PATH}:$GOROOT/bin



$ source ~/.bashrc


$ go get -u github.com/gogits/gogs


$ cd $GOPATH/src/github.com/gogits/gogs


$ go build


$ ./gogs web


目前在Ubuntu下有坑未填:


$ go get -u github.com/gogits/gogs


src/github.com/gogits/gogs/modules/setting/setting.go:24:2: code in directory /home/xxx/go/src/github.com/strk/go-libravatar expects import "strk.kbt.io/projects/go/libravatar"


等待添坑的过程可谓煎熬,这就是开源软件的弊端,你不给钱,就不能催更!


如果有兴趣,可以在Ubuntu下尝试以下步骤。也许Gogs已经解决了这个Bug ^_^


apt-get install mercurial


cd /usr/local/


wget https://storage.googleapis.com/golang/go1.6.3.linux-386.tar.gz


tar xvf go1.6.3.linux-386.tar.gz


/usr/local/go/bin/go version


rm /etc/alternatives/go


ln -s /usr/local/go/bin/go /etc/alternatives/go


which go


$ vim ~/.bashrc



  • export GOPATH=/home/xxx/go


  • export GOROOT=/usr/local/go


  • export PATH=${PATH}:$GOROOT/bin



$ source ~/.bashrc


$ go get -u github.com/gogits/gogs


$ cd $GOPATH/src/github.com/gogits/gogs


$ go build


$ ./gogs web


在Ubuntu下,我们可以采用更简单的方法,将对应版本的二进制包下载并解压,然后进入目录执行:


$ ./gogs web


嗒答!嗒答!嗒答!!!掌声有木有?!总之很Easy就是了!


现在来配置数据库PostgreSQL,Bugazilla会在安装过程中创建,但Gogs不会。


创建名为gogs的数据库:


su - postgres


$ createdb -O gogs gogs


$ exit


service postgres restart


在浏览器中输入下面的网址,验证Gogs是否安装成功:


http://127.0.0.1:3000


===============================================================================


第五步:安装和配置supervisor:


首先通过软件源安装supervisor,然后修改其/etc下的配置文件supervisord.conf:



  • [program:gogs]


  • directory=/home/xxx/go/src/github.com/gogits/gogs/


  • command=/home/xxx/go/src/github.com/gogits/gogs/gogs web


  • autostart=true


  • autorestart=true


  • startsecs=10


  • stdout_logfile=/var/log/gogs/stdout.log


  • stdout_logfile_maxbytes=1MB


  • stdout_logfile_backups=10


  • stdout_capture_maxbytes=1MB


  • stderr_logfile=/var/log/gogs/stderr.log


  • stderr_logfile_maxbytes=1MB


  • stderr_logfile_backups=10


  • stderr_capture_maxbytes=1MB


  • environment = HOME="/home/xxx", USER="xxx"


  • user = xxx



接着创建目录/var/log/gogs,使用命令启动supervisord服务。


观察运行情况:


cat /var/log/gogs/stdout.log


cat /var/log/gogs/stderr.log


cat /var/log/httpd/error_log


最后,祝大家在开源软件的世界里畅游愉快!


广告

文章评论 0条评论)

登录后参与讨论
相关推荐阅读
DiracFatCat 2018-09-05 12:14
【博客大赛】卡尔曼滤波学习笔记(11)从位置估计速度
卡尔曼滤波器,不仅仅是一个低通滤波器,否则也不会持续发展50年。 示例:桑先生需要测试高速列车的性能。测试的目的是判断列车在直线上能否保持80m/s的速度。速度和位置每0.1秒测量一次,...
DiracFatCat 2018-08-31 19:32
【博客大赛】卡尔曼滤波学习笔记(10)一个简单的示例
《Kalman Filtering: Theory and Practice Using MATLAB》第三章,看不懂,暂时略过。《Kalman Filtering: Theory and Pract...
DiracFatCat 2018-07-19 15:09
对sed命令的练习
sed是流编辑器。它每次处理一个输入,因此很有效率。官方手册:https://www.gnu.org/software/sed/manual/sed.html学习Linux命令,当然要阅读官方手册,所...
DiracFatCat 2018-06-19 15:10
【博客大赛】卡尔曼滤波学习笔记(八)可观测性和可控制性 ...
可观测性是指,在给定模型的情况下,动力学系统的状态是否由它的输入输出唯一确定。可观测性是系统模型的特征。如果传感器矩阵H是可逆的,则本系统可观测,因为有:如果传感器矩阵H某些时候是不可逆的,则本系统仍...
DiracFatCat 2018-06-19 10:56
【博客大赛】卡尔曼滤波学习笔记(七)Z变换
如果我们仅仅对离散线性系统感兴趣,那么就使用下面这个表达式:如果u是常量,那么可以写成:为了简化表达式,我们可以将上面写成:离散线性时不变系统的Φ求解,可以使用Z变换。(* 由于本人已经忘记了Z变换的...
DiracFatCat 2018-06-19 10:54
【博客大赛】卡尔曼滤波学习笔记(六)拉普拉斯变换
对于线性时变/时不变系统,求解Φ(t)有多种方式,拉普拉斯变换是其中一种。(* 由于本人已经忘记了拉普拉斯变换的内容,因此本节待续。)...
我要评论
0
0
广告