CentOS 4.8 安装和配置基于 svn 的 hudson 持续集成环境(一)
涉及安装的软件:ant,junit,emma,findbugs,mysql,tomcat和tomcat-native,apache,php,mantis,subversion,sonar,maven2,hudson和相关插件包
一、安装JDK并设置变量
我下载的rpm安装包,默认安装到/usr/java/jdk1.6.0_16/目录。
作为统一集成环境变量的管理,创建ci.sh并复制到/etc/profile.d/目录。
编辑ci.sh增加如下内容:
exportJAVA_HOME=/usr/java/jdk1.6.0_16
exportCLASSPATH=$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
二、安装ANT并设置变量
解压缩ant包到/opt/ant/目录,并复制junit.jar到/opt/ant/lib/目录。
编辑ci.sh增加如下内容:
exportANT_HOME=/opt/ant
三、安装FINDBUGS并设置变量
解压缩findbugs包到/opt/findbugs/目录,复制/opt/findbugs/lib/findbugs-ant.jar到/opt/ant/lib/目录
编辑ci.sh增加如下内容:
exportFINDBUGS_HOME=/opt/findbugs
四、安装MYSQL
解压缩mysql-5.1.54.tar.gz源码包,进入安装目录。
静态编译的方式
#./configure--prefix=/usr/local/mysql--localstatedir=/usr/local/mysql/data--enable-thread-safe-client--enable-local-infile--enable-assembler--enable-community-features--enable-profiling--with-client-ldflags=-all-static--with-mysqld-ldflags=-all-static--with-charset=utf8--with-collation=utf8_general_ci--with-extra-charsets=all--with-mysqld-user=mysql--without-embedded-server--with-big-tables--with-server-suffix=-community--with-unix-socket-path=/usr/local/mysql/etc/mysql.sock--without-debug--without-man--without-docs--with-plugins=partition,blackhole,csv,federated,heap,innobase,myisam
#make
#makeinstall
编译完成后的配置
#useraddysql
#cd/usr/local/mysql
#cpshare/mysql/my-medium.cnf/etc/my.cnf
#mkdiretc
安装数据库文件
#./bin/mysql_install_db
#chown-Rmysql:mysql.
#./bin/mysqld_safe--user=mysql&
如果需要使用InnodbPlugin的特性,则需要动态编译的方式
注意:动态编译innodb_plugin需要升级CentOS4.9的gcc版本,我升级到4.2.1,默认的版本总是编译失败
#exportCFLAGS="-O2-DHAVE_DLOPEN=1"
#exportCXXFLAGS="-O2-DHAVE_DLOPEN=1"
#./configure--prefix=/usr/local/mysql--localstatedir=/usr/local/mysql/data--enable-thread-safe-client--enable-local-infile--enable-assembler--enable-community-features--enable-profiling--with-charset=utf8--with-collation=utf8_general_ci--with-extra-charsets=all--with-mysqld-user=mysql--without-embedded-server--with-big-tables--with-server-suffix=-community--with-unix-socket-path=/usr/local/mysql/etc/mysql.sock--without-debug--without-man--without-docs--with-plugins=partition,blackhole,csv,federated,heap,innobase,innodb_plugin,myisam--disable-static
修改配置my.cnf增加如下内容:
#my.cnf
ignore_builtin_innodb
plugin_load=innodb=ha_innodb_plugin.so
innodb_file_format=barracuda
innodb_file_per_table
innodb_strict_mode=1
5、安装TOMCAT
解压缩tomcat包到/opt/tomcat/目录。
首先编译安装tomcat-native包,这是Apache为了提升Tomcat的性能开发的一套本地化Socket,Thread,IO组件。也就是说它有高级IO功能,操作系统级别的功能调用,以及本地进程处理等等。
1、安装APR
http://apr.apache.org下载apr-1.4.2.tar.gz
#tar–zxvfapr-1.4.2.tar.gz
#./configure--prefix=/opt/tomcat/apr
#make&&makeinstall
2、安装APR-UTIL
#http://apr.apache.org下载apr-util-1.3.9.tar.gz
#tar–xvfapr-util-1.3.9.tar.gz
#./configure--prefix=/opt/tomcat/apr--with-apr=/opt/tomcat/apr
#make&&makeinstall
3、安装tomcatnativelibrary(tomcat安装包的bin目录下)
#tarzxvftomcat-native.tar.gz
#cdtomcat-native-1.1.20-src/jni/native
#./configure--prefix=/opt/tomcat/apr/--with-apr=/opt/tomcat/apr/--with-java-home=/usr/java/jdk1.6.0_16/
#make&&makeinstall
4、配置使tomcat启动时找到nativelibrary
修改配置/bin/catalina.sh增加如下内容:
CATALINA_OPTS="-Djava.library.path=/opt/tomcat/apr/lib"
JAVA_HOME="/usr/java/jdk1.6.0_16"
设置完成,用tomcat控制台启动
#/opt/tomcat/bin/catalina.shrun
Tomcat的AprLifecycleListener会通过反射调用org.apache.tomcat.jni.Library的terminate方法,检测和加载动态库。详细情况请大家看源代码吧。
6、安装MANTIS
1、安装apache2
解压缩安装包并进行安装目录
#./configure--enable-dav--enable-so
#make&&makeinstall
2、安装php
#./configure--prefix=/usr/local/php--with-apxs2=/usr/local/apache2/bin/apxs--with-mysql=/usr/local/mysql--enable-mbstring
#make
#maketest
#makeinstall
复制PHP.INI文件到正确位置
#cpphp.ini-dist/usr/local/php/lib/php.ini
enable-mbstring启用mb_convert_encoding
修改php.ini配置文件,去掉注释:extension=php_mbstring.so
编辑httpd.conf文件,加载php模块
AddTypeapplication/x-httpd-php.php
安装Mantis具体简略过程
解压缩mantis包到/usr/local/apache2/htdocs/mantis目录,启动apache
通过浏览器访问http://127.0.0.1/mantis/admin/install.php
提示安装成功后,复制config_inc.php.sample为config_inc.php并修改连接数据库参数
默认管理员用户:administrator/root
[解决mantis的部分问题]
1、解决安装过程中报内存耗尽的问题
修改PHP配置文件php.ini,增加内存限制
memory_limit=32M
2、修改Mantis配置文件config_defaults_inc.php
a、取消创建用户时需要发送邮件设置密码的问题
$g_send_reset_password=OFF;
b、使用中文界面
$g_default_language='chinese_simplified';
3、CSV导出乱码问题
修改csv_export.php增加如下内容:
......
functionexpChangeCode($str){
returnmb_convert_encoding($str,"CP936","UTF-8");
}
......
#echo$t_header;
echoexpChangeCode($t_header);
......
#echo$t_value;
echoexpChangeCode($t_value);
......
#echo$t_function($t_row[$t_column]);
echoexpChangeCode($t_function($t_row[$t_column]));
......
未完,待续