Gerrit + Centos 7 + mysql + apache 环境搭建踩的一些坑

主要参考这篇 https://blog.csdn.net/dragon922/article/details/55052259 (这篇mysql的安装和数据库创建缺失,其他内容大致正确)

数据库安装和配置参考这篇  https://www.cnblogs.com/smallcoderhujin/p/3937641.html

第一次安装,服务器上有apache和ngnix ,部分端口被占用和修改,在设置反向代理的时候,端口改来改去的自己都绕晕了,导致一直安装不成功,更换干净环境后问题解决,所以建议用干净环境安装。

一.  安装顺序建议: java , mysql , git ,  gcc和gcc-c++ ,apr ,apr-util , pcre , apache , gerrit ,部分原因如下

(1)apr先于apr-util装, 因为编译 apr-utl 的时候需要关联apr的文件apr-1-config ,编译命令: ./configure --with-apr=/usr/local/apr/bin/apr-1-config    (路径以文件的实际路径为准,下同)

(2)apache在apr ,apr-util , pcre之后装,因为编译需要依赖他们的文件, 编译命令: ./configure --prefix=/usr/local/apache --enable-so --enable-rewrite –with-apr=/usr/local/apr/bin/apr-1-config –with-apr-util=/usr/local/apr/bin/apu-1-config –with-pcre=/usr/local/pcre

安装中遇到的部分问题:

Q1:装了apache, nginx就不用装了,用一个设置反向代理就行

Q2: 比如设置gerrit的端口号号为8082 , apache的端口为80 , 网页访问的时候,直接 http://192.168.2.145:80 就行, 不用接8082, 因为已经设置apache反向代理了,所以用apache的端口访问就行

Q3: 如果第一次gerrit装失败了,或者其他原因要重装gerrit ,需要用命令 rm -rf /home/gerrit 把目录删了,且一定记得删除对应的数据库,不然重装后启动gerrit 会失败,gerrit log中会查到错误 java.lang.IllegalStateException: Missing project All-Projects  ,解决这个报错必须又重装gerrit 

Q4:设置apache 或者 gerrit的端口后,都要记得在服务器这边把端口开放出来,网上查命令,或者直接把防火墙关了, selinux disable掉,不然在其他ip访问不到这些端口,出现网页无法访问的页面

Q5:如果日志报这个错(apache日志还是gerrit日志?忘了) AH01620: Could not open password file: /home/gerrit/review_site/etc/passwd  , 要不就是路径给错了,真的找不到这个文件,要么可以尝试使用:这个命令(到gerrit目录的上一层) chmod -R o+x gerrit  , 将gerrit文件夹变为可执行

Q6:如果日志报错(apache日志还是gerrit日志?忘了)说没有reindex ,执行命令 reindex命令:
java -jar gerrit-2.11.war reindex  -d /gerritfolder/gerrit/review_site

附上 apache(部分) 和 gerrit的配置:

gerrit:

[gerrit]
    basePath = git
    canonicalWebUrl = http://192.168.2.145:8082/                  ##gerrit的地址,但是访问的时候用apache的端口
[database]
    type = mysql                                              ##数据库类型 ,这里填 mysql
    hostname = localhost
    database = reviewdb                                ##数据库名,要和mysql建库时的名称一致
    username = gerrit                                     ##数据库账户名,要和mysql建库时的账号一致
[index]
    type = LUCENE
[auth]
    type = HTTP                                           ##必须填http
[sendemail]
    smtpServer = smtp.163.com
    smtpServerPort = 465
    smtpEncryption = ssl
    smtpUser = [email protected]
    smtpPass = YYYYYY
    sslVerify = false
    from=CodeReview
[container]
    user = root
    javaHome = /data/java/jdk1.8.0_131/jre
[sshd]
    listenAddress = *:29418
[httpd]
    listenUrl = http://192.168.2.145:8082/                                  ##gerrit的地址,但是访问的时候用apache的端口
[cache]
    directory = cache

apache(部分):

Listen 80这排下面添加
                       ##apache端口
ProxyRequests Off
ProxyVia Off
ProxyPreserveHost On


Order deny,allow
Allow from all


AuthType Basic
AuthName "Gerrit Code Review"
Require valid-user
AuthUserFile /gerritfolder/gerrit/review_site/etc/passwd                 ##账号密码存放路径,passwd为文件名

ProxyPass / http://192.168.2.145:8082/                                ##gerrit路径及端口                                

 

数据库创建:

#mysql –u root

-> CREATE USER 'gerrit'@'localhost' IDENTIFIED BY '123';

-> CREATE DATABASE reviewdb;

-> ALTER DATABASE reviewdb charset=latin1;

-> GRANT ALL ON reviewdb.* TO 'gerrit'@'localhost';

-> FLUSH PRIVILEGES;

一些命令及目录:

netstat -ltnp

vim /gerritfolder/gerrit/review_site/etc/gerrit.config


mysql -uroot -p

./configure --prefix=/usr/local/apache --enable-so --enable-rewrite --with-
apr=/usr/local/src/apr-1.5.2/apr-1-config --with-apr-util=/usr/local/src/apr-util-
1.5.4/apu-1-config --with-pcre=/usr/local/pcre


reindex命令:
java -jar gerrit-2.11.war reindex  -d /home/gerrit/review_site


DROP DATABASE reviewdb;

apache log位置:/usr/local/apache/logs

启动项:
/usr/local/apache/bin/httpd -k start
service mysqld start
cd /gerritfolder/gerrit/review_site/bin        ./gerrit.sh start

gerrit账号及密码: test 1234

linux gerrit用户密码: atombomb

你可能感兴趣的:(Gerrit + Centos 7 + mysql + apache 环境搭建踩的一些坑)