日期:2014-05-16  浏览次数:20864 次

Linux 下运行tomcat的 “BASEDIR” 错误
昨天需要将公司的Hudson从Windows2008服务器移植到一台新的Ubuntu服务器上,在完成了所需的maven库、hudson工作区的复制后,我直接把部署了Hudson的tomcat的目录整个也搬到了新服务器的 /root里。

拷贝完成,立即进入 tomcat-xx.xx.x/bin/, 运行 startup.sh,报错,说找不到 catalina.sh。放屁,ls 一下,不好端端地在哪里么。怀疑 startup.sh 根本没有好好动,于是 chmod a+x startup.sh,再试,这回说catalina.sh 没有权限。好吧,再用一次chmod a+x catalina.sh。再试,还不行。

到网上查了一下在linux下安装运行tomcat的指导(怎么早没想到,嘿),原来是要设置 $JAVA_HOME 和 $CATALINA_HOME 两个环境变量在先。于是 export $JAVA_HOME={jdk path} 以及 export $CATALINA_HOME={tomcat path}, 再去运行startup.sh,仍报错,说“BASEDIR”环境变量没有正确设置云云,什么basedir没听过,上网又查。 网上有个家伙也跟我一样,环境变量什么的都搞好了就是运行不了报“Basedir”错误,后来着家伙误打误撞,把tomcat搬到 /usr/local/ 下突然就可以了,正在此人沾沾自喜中,一个跟帖点明了真相。其实,由于tomcat是通过FTP直接搬过来的,所以权限设置什么基本要重新搞,这里startup.sh不能运行,原因是tomcat下的bin目录没有设置正确的权限,由于startup.sh的启动会涉及bin下的好些个文件,单单为startup.sh和catalina.sh设置权限是不够的。于是按照提示,chmod u+x /root/tomcat*/bin/*。 搞定。startup.sh跑起来了……