ImageVerifierCode 换一换
格式:DOCX , 页数:9 ,大小:20.06KB ,
资源ID:8217296      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/8217296.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(apache2 git gerrit mysql 配置过程.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

apache2 git gerrit mysql 配置过程.docx

1、apache2 git gerrit mysql 配置过程apache2 + git + gerrit + mysql 配置过程 参考资料:Gerrit简易安装入门安装使用Code review工具GerritCode Review with Gerrit, a mostly visual guideGerrit Code Review - Reverse Proxy git是分布式版本控制工具。 gerrit是代码审核工具,当然也包括了一套权限系统(google发明的?),git向远程仓库的refs/for/*分支提交代码时会先经过gerrit,审核通过后才会提交到ref/head/*分支。

2、 mysql为gerrit提供数据库支持。 apache2在这里的主要是为了配合gerrit的账户认证,提供反向代理功能。 2.准备工作。 安装git,安装apache2,安装mysql,下载gerrit包。(没有jdk的话也需要先安装和配置,网上资料很多) apt-get install git apt-get install apache2 mysql本人是通过linux的updatamanger工具安装。版本是5.1.10。 需要注意的是mysql默认安装以后所有字符集都是拉丁1,请不要更改此默认设置,本人的教训。改成utf8以后安装gerrit时跑数据库脚本出错,会导致使用过程中会出现

3、一些莫名的错误。 在googecode网站上下载gerrit2.x.x.war文件备用。貌似还可以通过wget命令下载,未尝试。 安装过程没什么特殊设置。 说明:apache2安装好以后默认的工作目录在/var/www/下。配置目录在/etc/apache2下。 启动apache2:/etc/init.d/apache2 start 停止apache2:/etc/init.d/apache2 stop 启动mysql:/etc/init.d/mysql start 停在mysql:/etc/init.d/mysql stop mysql安装好以后是默认开机启动的。 3.配置过程。 1首先配置数

4、据库。数据库类型是可选的,h2,postgre也是可以的 执行mysql -uroot -p启动mysql控制台,执行如下脚本 Java代码 CREATE USER gitlocalhost IDENTIFIED BY git; CREATE DATABASE reviewdb; ALTER DATABASE reviewdb charset=latin1; GRANT ALL ON reviewdb.* TO gitlocalhost; FLUSH PRIVILEGES; 这里的数据库用户git和数据库名称reviewdb可以随便取,后面会用到他们。关键是要设置charset=latin1,

5、不要改成utf8了,本人一开始就是自做聪明该改成utf8,导致gerrit安装异常。 2 安装gerrit。通过执行命令 Java代码 java -jar /home/xx/gerrit-2.2.1.war init -d /home/xx/gerrt_sites 进行安装。安装过程中会提示输入各种信息,包括数据库信息等,这些可以参考上面的链接。大部分都可以使用默认配置,关键是在选择认证的时候 Java代码 * User Authentication * Authentication method OPENID/?: http 请选择http方式,不要使用openid方式,选择http方式后可

6、以配置apache进行认证,选择openid方式后认证需要外网链接,而且貌似有bug,在url working/url网站上有介绍。 安装完成以后通过执行/home/xx/gerrt_sites/bin/gerrit.sh start 启动gerrit。 接下来通过浏览器访问http:/127.0.0.1:8080/会进入错误提示页面,提示http请求未带授权头。你也许会奇怪这里的http服务器是哪里来的。这个其实就是打包在gerrit.war文件里的jetty服务器。 接下来配置好apache2就行了。测试apahce2安装成功可以通过浏览器访问http:/127.0.0.1/显示it wo

7、rks 就是按好了。apahce2的默认端口是80. 首先要激活代理模块 Java代码 ln -s /etc/apache2/mods-available/proxy.conf /etc/apache2/mods-enable/proxy.conf ln -s /etc/apache2/mods-available/proxy.load /etc/apache2/mods-enable/proxy.load ln -s /etc/apache2/mods-available/proxy_http.load /etc/apache2/mods-enable/proxy_http.load 然后在

8、/etc/apache2/httpd.conf中加入下面的内容(什么?httpd.conf是空的?不要觉得奇怪,原始的httpd.conf本来就是个空文件) Java代码 <VirtualHost *> ServerName localhost ProxyRequests Off ProxyVia Off ProxyPreserveHost On <Proxy *> Order deny,allow Allow from all </Proxy> <Location /login/> AuthType Basic AuthName Gerrit

9、Code Review AuthBasicProvider file AuthUserFile /home/xx/gerrt_sites/etc/passwords Require valid-user </Location> ProxyPass / http:/127.0.0.1:8080/ </VirtualHost> 这里需要注意的是2个地方,一是AuthUserFile /home/xx/gerrt_sites/etc/passwords,这个路是指向的是个密码文件。此文件通过命令生成 Java代码 htpasswd /home/xx/gerrt_sites/e

10、tc/passwords gerrit_fisrt_username 这里的gerrit_fisrt_username就是以后用来登录gerrit的用户名。以后要为gerirt增加用户,也需要通过htpasswd命令在此passwords文件中添加用户 二是ProxyPass / http:/127.0.0.1:8080/,这里的配置必须和/home/xx/gerrt_sites/etc/gerrit.config文件里面的 Java代码 httpd listenUrl = proxy-http:/127.0.0.1:8080/ 匹配。/home/xx/gerrt_sites/etc/gerr

11、it.config文件里面保存的是在gerrit安装过中输入的信息,更改配置也可以直接编辑此文件。 本人的gerrit.config如下 Java代码 gerrit basePath = git canonicalWebUrl = http:/127.0.0.1:8080/ database type = MYSQL hostname = localhost database = reviewdb username = git auth type = HTTP sendemail smtpServer = localhost container user = gerrit2 javaHome

12、= /usr/lib/jvm/java-6-openjdk/jre sshd listenAddress = *:29418 httpd listenUrl = proxy-http:/127.0.0.1:8080/ cache directory = cache 这些都配置好以后重启apache2,通过浏览器访问http:/127.0.0.1/,会提示输入用户名密码,输入 gerrit_fisrt_username和密码登录,就会自动跳转到http:/127.0.0.1:8080/,在此页面的右上方点击 settings,然后在左侧栏点击profile,可以看到当前登录的用户名为gerrit

13、_fisrt_username,然后点击Contact Information,在fullname中随便输入名字保存即可。第一个登入的账户默认是管理员账户 正常情况下,在页面admin-project下应该能在列表项中看到一个All-Projects项。 点击All-Projects可以设置各种权限。如果你看不到All-Projects就说明你的gerrit安装又异常,多半是我上面提到的数据库字符集导致的。 4.gerrit公钥配置 在shell中执行命令 Java代码 ssh -p 29418 gerrit_fisrt_username127.0.0.1 提示Permission denie

14、d (publickey). 缺少公钥配置。 参考 执行: Java代码 ssh-keygen -t rsa 生成公钥, 查看: Java代码 cat /.ssh/id_rsa.pub 将个公钥添加到gerrit中。 进入http:/127.0.0.1:8080/,点击右上角setting,点左侧栏SSH Public Keys 再点击又边的add key,将公钥复制到里面,点击add提交。 这里需要注意的是需要复制的字符串是包括cat /.ssh/id_rsa.pub命令打印出来的所有内容,即开头的ssh-sha和结尾的xxxxx也要一起复制 再次执行 Java代码 ssh -p 29418

15、 gerrit_fisrt_username127.0.0.1 恭喜你,看到welcome就表示你已经配置完成 如果链接异常的话,可以删除/.ssh/knows_host重试 执行 Java代码 ssh -p 29418 gerrit_fisrt_username127.0.0.1 gerrit create-project -n test_project 添加一个项目。 在webUI就可以看到此项目了 5.简便ssh 在/.ssh/目录下新建文件config 加入内容如下 Java代码 Host gerrit_short User gerrit_fisrt_username Port 294

16、18 Hostname 127.0.0.1 IdentityFile /.ssh/id_rsa 以后执行 Java代码 ssh -p 29418 gerrit_fisrt_username127.0.0.1 这个命令就可以简单的写成 Java代码 ssh gerrit_short 再比如 ssh -p 29418 gerrit_fisrt_username127.0.0.1 gerrit create-project -n test_project 就可以简写为 Java代码 ssh gerrit_short gerrit create-project -n test_project 这里的第

17、2个参数gerrit是关键字 6.检出项目 通过上面的命令创建项目以后,除了在http:/127.0.0.1:8080/可以看见以外,通过ssh也可以查看。 Java代码 ssh gerrit_short gerrit ls-projects 将会输出2个项目名称 all_project test_project 一个是内置的,一个是刚才建立的。(使用管理员账户才能看到内置的all_project项目) 下面客户机就可以检出项目了: Java代码 git clone ssh:/gerrit2127.0.0.1:29418/test_project.git 当前目录下就会多出一个test目录,此

18、目录即是你重服务器上检出的项目。 同时shell中会见看到如下提示 Cloning into test_project. warning: remote HEAD refers to nonexistent ref, unable to checkout. 这是因为test项目本身就是个空项目,所以还不存在头指针。 git的版本控制方式就像c语言里面的链表模型。每一次提交会产生一个新的节点,而这个新的节点同时还有个指向原来节点的链接。每一个头指针代表一个分支。头指针指向的是链表的最后一个节点。具体的模型可在progit.pdf中找到。 扯远了,扯回来。 8.第一次提交。 在刚此检出的test目

19、录下新建一个文件readme.txt 执行: Java代码 git add readme.txt 或者执行 Java代码 git stage readme.txt 这两个命令此处的效果相銅,之所以说“此处”,是因为add命令是个多个功能命令,还有其他含义,而这里的git stage 相当于svn add 接下来将文件提交到本地仓库,先配置git的默认编辑器 Java代码 vi /.gitconfig 加入如下内容; Java代码 user name = some_one_ email = xxx core editor = vim 并保存,以后每次提交的信息中对会带上以上提交人的描述信息,并且

20、设置了编辑器为vim,方便编写log 执行: Java代码 git commit readme.txt 在vim中加入log并保存推出,即完成一次提交,注意此次是提交到本地仓库,和服务器没有关系。 9.push到远程仓库 参考 执行 Java代码 git push origin master origin和master可不是什么关键字,他们只是默认的名称而已。是克隆的仓库的默认别名,通过git clone ssh:/gerrit_fisrt_username127.0.0.1:29418/test_project.git克隆以后,就会产生这个默认名称,简单点说就是origin=ssh:/ger

21、rit_fisrt_username127.0.0.1:29418 /test_project.git 而master是本地仓库的当前分支名称。通过git checkout branchname可以切换当前工作分支,这个后面再说。 git push origin master此命令即是将到当前分支同步到远程仓库中去。不过此命令在gerrit中是会失败的。后面再说。 结果却显示错误: Java代码 . To ssh:/gerrit_fisrt_username127.0.0.1:29418/test_project.git ! remote rejected master -> maste

22、r (prohibited by Gerrit) error: failed to push some refs to ssh:/gerrit_fisrt_username127.0.0.1:29418/test_project.git 原因是gerrit不允许直接将本地修改同步到远程仓库。客户机必须先push到远程仓库的refs/for/*分支上,等待审核。这也是为什么我们需要使用gerrit的原因。gerrit本身就是个代码审核工具。 接下来更该push的地址: Java代码 git config remote.origin.push refs/heads/*:refs/for/* 此命令

23、实际是更改的是本地仓库test_project/.git/config文件。 再次puh Java代码 git push origin 这次不要加master, 结果又出错 Java代码 remote: ERROR: You have not registered any email addresses. 解决办法: Java代码 $ git config -global user.name yourname $ git config -global user.email yourmail #进入gerirt的安装目录 cd /home/xx/gerrt_sites #执行 $ java -j

24、ar bin/gerrit.sh stop $ java -jar bin/gerrit.war gsql #在新的shell中执行(其实就是修改mysql数据库表的内容,添加邮件地址) gerrit> select * from account_external_ids; gerrit> update account_external_ids set email_address = yourmail where account_id = your_acc_id #这里的your_acc_id就是select查询出来的gerrit_fisrt_username账户对应的accoun

25、t_id列中的值 $ java -jar bin/gerrit.sh start 再次执行 Java代码 git push origin 恭喜你,push成功。 10。审核,验证、提交。 push成功以后,进入http:/127.0.0.1/开打web界面 点击左上的all,再点open, 会看到所有带审核的commit 即你在本地push之前执行了多少此commit,这里就会列出多少个commitid 首先需要为用户配置权限信息,在admin-projects-All-Projects-access中点击 edit,然后设置权限,具体设置方法就不描述了,说来话长了。出要是要为refs/hea

26、ds/*添加 Label Code-Review Label Verified Submit +1和+2权限,并为每个权限添加用户组。 权限配置好以后, 点击某个commitid,在点击review,然后点击pulish或者submit 顺序是先审核,再验证,再提交。相信大家多琢磨琢磨就知道怎么操作了 提交以后, 刚才的git push origin才算真正的提交到了远程仓库中。 11.下载。 其他客户机就可以通过git colne(重复上面的过程)或者git fetch来下载远程仓库,下载下来的内容就包含了刚才push上去内容。当然,前提是要为其他开发者创建账户并添加权限,这些就不说啦,可以参考git权威指南这本书,有介绍gerrit的内容 这样即完成了一次代码的共享过程

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1