1.软件安装
假设软件下载到了~/sofrware目录中,安装目录则是/usr/local。没有明确说明的话,下面提到的软件安装均是指安装在这个目录中。
1.1安装jdk
sudoapt-get install default-jre
sudoapt-get install default-jdk
1.2安装apr
-
这个是安装给apache2使用的
-
解压缩:tar–zxvf apr-1.4.6.ta.gz
-
cdapr-1.4.6
-
./configure
-
make
-
sudomake install
-
至此编译安装完成
*说明:安装这个是为了避免configureapache2的时候出现aprnot found的错误,如果已经安装,则不需要安装这个软件
1.3安装apr-util
-
这个安装给apache2使用的
-
解压缩:tar–zxvf apr-util-1.5.1.tar.gz
-
cdapr-util-1.5.1/
-
./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr
-
make
-
sudomake install
-
至此编译安装完成
*说明:安装这个是为了避免configureapache2的时候出现apr-utilnot found的错误,如果已经安装,则不需要安装这个软件
1.4安装pcre
-
这个安装给apache2使用的
-
解压缩:tar –axvf pcre.8.21.tar.gz
-
cdpcre.8.21
-
./configure --prefix=/usr/local/pcre
-
make
-
sudomake install
*说明:如果没有安装g++,则报错误:
make[1]:***[pcrecpp.lo]错误1
使用命令sudoapt-get install g++安装g++可以解决这个错误
1.5安装apache2
-
解压缩:tar–zxvf httpd-2.4.3.tar.gz
-
cd httpd.2.4.3/
-
./configure --enable-MODULE=shared --enable-so --with-mpm=worker --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util --with-pcre=/usr/local/pcre
-
make
-
sudomake install
-
至此安装完成。
-
启动apache命令:
apachectl–k start
-
关闭apache命令:
apachectl–k stop
-
重启apache命令:
apachectl–k restart
*说明:如果你已经使用sudoapt-get install apache2命令自动的安装apache2,那么请使用命令sudo apt-get removeapache2* 完全卸载apache2.不然会有相关的冲突。
1.6安装jk
a.下载地址:http://www.apache.org/dist/tomcat/tomcat-connectors/jk/
b.解压缩:tar –zxvf tomcat-connectors-1.2.37-src.tar.gz
c.cd tomcat-conectors.1.2.37-src/native
d../configure --with-apxs=/usr/local/apache2/bin/apxs
e.sudo make
f.sudo cp ./apache-2.0/mod.jk.so /usr/local/apache2/modules/
支持,安装编译完成。下面修改参数。
1.7安装ant
-
将其解压缩到/usr/local中;
-
./configure
-
make
-
makeinstall
1.8安装mysql
这个可以使用默认安装sudoapt-get install mysql-server
2编译运行TPCW
2.1增加环境变量
-
打开/etc/environment
-
在里面(文件最后面)添加三个环境变量:
JAVA_HOME=”/usr/lib/jvm/java-1.6.0-openjdk”
ANT_HOME=”/usr/local/apache-ant-1.8.4”
JBOSS_DIST=”/usr/local/jboss-5.0.0.GA”
注1:这里我使用的是5.0版本,本文使用的tpcw默认使用的3.2.7版本,也可以使用3.2.7版本,使用作者默认使用的版本可以省去3.2节的 b操作。
注2:修改完成后使用命令 source /etc/environment 更新系统参数
-
说明:因为我都是自己手动编译安装的软件,所以路径很好找,建议不要用sduoapt-get install xxx的方法安装,这样默认安装的路径比较难以查找。
2.2下载必要的jar包
-
servelet-api.jar包:http://download.csdn.net/detail/pty_2007/4973390
-
jboss-j2ee.jar包:http://download.csdn.net/detail/pty_2007/4973383
-
jdbc包:
3部署tpcw
3.1下载tpcw-nyu-uva的文件包;
将之解压到/usr/local目录下面,下载地址:http://www.cs.nyu.edu/totok/professional/software/tpcw/tpcw.html
or
http://download.csdn.net/detail/pty_2007/4973405
3.1.1修改mysql连接参数
修改/usr/local/tpcw-nyu-uva/src/edu/nyu/pdsg/tpcw/util中得Constants.java中得dbName变量:
publistatic final String dbName =“jdbc:mysql://127.0.0.1:3306/tpcw?user=root&password=hzh”;
上述修改就是mysql的链接参数。
3.1.2建立tpcw数据库
create database tpcw charset=utf8;
3.2运行tpcw-nyu-uva的build.sh:
a.首先修改build.sh的权限,使得可以执行;
b.使用vim打开build.sh文件,将里面的:
exportCLASSPATH="$JBOSS_DIST/server/default/lib/jboss-j2ee.jar:$JBOSS_DIST/server/default/deploy/jbossweb-tomcat50.sar/servlet-api.jar“
这里得两个jar就是3.1中提到得那两个jar包。可以在网络上下载。缺少包则不可运行。
c.运行:./build.sh如果出现BUILDSUCCESSFUL则表示编译成功。如果编译不成功,请检查环境变量:JAVA_HOME,ANT_HOME, JBOSS_DIST,一般都是环境变量没有导致编译失败得。
d.将生成的ear文件cp到jboss的default部署目录下面:
命令:cp ../build/tpcw.ear /usr/local/jboss-5.0.0.GA/server/default/deploy/
注:tpcw使用的图片在client端(具体请看另一篇文)里面有图片生成工具,建议生成10000张图片,然后将其copy到tpcw-nyu-uva目录的子目录docroot中,这样再进行上述的build,ant会自动将图片打包到ear文件中。
3.3运行populate.sh
修改populate.sh文件中得配置:
-
修改tpcw-nyu-uva中的tpcw-mysql-ds.xml中的配置数据:
<connection-url>jdbc:mysql://host.domain:3306/tpcw?jdbcCompliantTruncation=false&useServerPrepStmts=false&cachePrepStmts=true</connection-url>
//设置ip
<user-name>xxx</user-name>
<password>xxx</password>
//用户名信息
-
将上面文件tpcw-mysql-ds.xml拷贝到/usr/local/jboss-5.0.0.GA/server/default/deploy/中;
-
修改tpcw-nyu-uva目录下面的populate.sh文件:
_CLASSPATH=/usr/share/java/mysql.jar
将红色字体修改为你下载的jdbc的路径
-
执行populate.sh:
这里需要等待一段时间。
3.4运行
为了避免出现No ClassLoaders found得错误,将jdbc拷贝到jboss的lib目录下面。这样可以避免这个错误。
cd到jboss得bin目录下,使用命令./run.sh启动jboss,正常启动得界面如下:
4与apache集成
4.1创建mod_jk.conf文件
在apache得conf目录中创建mod_jk.conf。内容如下:
LoadModulejk_module modules/mod_jk.so
JkWorkersFileconf/worker.properties
JkLogFilelogs/mod_jk.log
#Set the jk log level [debug/error/info]
JkLogLevelinfo
#Select the log format
JkLogStampFormat"[%a %b %d %H:%M:%S %Y] "
#JkOptions indicate to send SSL KEY SIZE,
JkOptions+ForwardKeySize +ForwardURICompat -ForwardDirectories
#JkRequestLogFormat set the request format
JkRequestLogFormat"%w %V %T"
JkMount/* loadbalancer
#apachewill serve the static picture.
#以下命令意味着所有的图片将由APACHE解析
JkUnMount/*.jpg loadbalancer
JkUnMount/*.gif loadbalancer
JkUnMount/*.swf loadbalancer
JkUnMount/*.bmp loadbalancer
JkUnMount/*.png loadbalancer
4.2创建文件work.properites
在apache得conf目录中创建work.properitesf。内容如下:
rker.list=loadbalancer,server105#server105所随便命令得,后面要和这里一样即可
#Define the first node...
worker.server105.port=8080
worker.server105.host=127.0.0.1
worker.server105.type=ajp13
worker.server105.lbfactor=1
#worker.server105.local_worker=1
worker.server105.cachesize=100
#Now we define the load-balancing behaviour
worker.loadbalancer.type=lb
worker.loadbalancer.balanced_workers=server105,server106
worker.loadbalancer.sticky_session=1
参考材料:
1.http://wenku.baidu.com/view/9146768bd0d233d4b14e69d3.html
2.http://man.chinaunix.net/newsoft/jboss.htm
另注1:如果出现了unable open image的错误,那可能是图片不存在,或者图片的放置路径错误,请将图片放置到tpcw-nyu-uva的docroot目录下,重新build即可。
另注2:如果jboss启动失败,遇到诸如i depend on 或者NoClassDefFoundError之类的错误,这时候请更换jboss或者jdbc驱动的版本就可以消除该错误了。