Linux下部署项目时碰到的问题
1、 当把项目配上域名时,必须把tomcat的端口改为80,注意当替换配置文件时,要记得把tomcat端口改一下。
2、 C盘下的hosts文件,是配置域名用的,当不在hosts配置域名时,windows系统会到外网去找符合的域名,当在hosts下配置域名时,就不会到外网去找了。
3、 文件更新的整个流程:
(1):用远程控制连接到11或12服务器。
(2):登陆ftp,替换要替换的文件。
(3):用SSH连接到外网服务器,执行一个shell脚本,mis_updata.sh
这个shell脚本执行的整个过程:
【1】:判断登录者是否是root用户,如果不是root用户,su到root用户。
【2】:获得系统时间,停止tomcat服务,这里有的时候会报Connection refused错误,原因是:本来tomcat没有启动,但执行shell脚本时,首先会去关闭tomcat所以就报了这个错误。
【3】:移动原来的mainone项目,并在项目后面加上系统时间。这里须注意一下路径问题,复制后的项目放到/app/java_project/mis/updata目录下。
【4】:把备份后的项目移动到原来项目的路径下(/app/java_project/mis/mainone),并把名字改为原来项目的名字,这里也要注意路径的问题。 (当自己写shell脚本时)
【5】:开启tomcat服务,并把改好后的项目复制一份到updata目录下,并重命名为mis_beifen。这以步其实就是项目的备份。
【6】:把备份项目的权限改为777最大权限。
【7】:退出root用户。
4、 当配置全局数据源时,需要在app/java_project/tomcat5.0/conf/Catalina/www.dayumi11.com目录下添加ROOT.xml,注:这个配置文件里必须有全局数据源的配置。
/www.dayumi11.com 这个目录是启动tomcat后自动生成的,不用自己手动建。但生成这个目录时会报错,因为配置全局数据源需要添加ROOT.xml文件。
5、 项目的运行目录:/app/java_project/mis/mainone
项目的备份目录:/app/java_project/mis/updata/mis_beifen
6、 shell脚本的目录:/home/mis/updata
7、 定时清空catalina.out文件:系统自动执行/home/mis/clear_logs下的clear_logs.sh脚本。要不catalina.out文件会慢慢变大,吃内存!
8、 注意:当你更新完项目后,mainone与mis_beifen是完全相同的,当你要再更新项目时,其实是三个文件是完全相同的,mainone、mis_beifen、mainone_back2007_10_10_10_46_17
9、 shell脚本更新的步骤:
(1)、先停tomcat。
(2)、把当前正在跑的项目(mainone),移动到/app/java_project/mis/updata下作下备份,在后面加上系统的时间(mainone_2007_10_10_14_38)。
(3)、把改好的项目(mis_beifen)移动到/app/java_project/mis下,并重命名为mainone。
(4)、开启tomcat。
(5)、把现在正在跑的项目mainone,cp -R到/app/java_project/mis/updata/目录下,并重命名为mis_beifen。
(6)、把mis_beifen的权限改为最大 777。
10、mis_updata.sh是在备份里(mis_beifen)里更新,这个要重启tomcat。jsp_updata.sh是在正在跑的项目(mainone)里更新,这个不用重启tomcat。
11、进程: ps -aux |grep mysql 可以查看进程
ps -9(强制杀进程)
12、到的问题:在虚拟机下挂载windows盘,不怎么好挂,因为虚拟机相当于一台新的机器,不是双系统,是双系统的话,直接挂载就可以了,也可以设置为linux系统启动就自动挂载windows盘符。
13、tomcat启动加载ROOT.xml:正如笔者所说:第一次tomcat启动加载的是server.xml,在server.xml中找到项目的路径,然后在localhost目录下,自动生成一个ROOT.xml文件,这个文件也保存项目路径的信息。等你第二次启动tomcat时,就会发现tomcat会自动加载ROOT.xml而不去加载server.xml文件,因为ROOT.xml文件中也有项目的路径。
14、Linux下的crontab是Linux下对某个文件进行备份的一个服务,可以自动备份,但得要配置,配置就 google一下!!例子:crontab -u root /app/java_project/dayumi/oa.txt 设置某个用户对某个文件得crontab服务。
15、这次问题小结:
(1)、首先是tomcat的配置有问题,jdk1.5以上的只需要配置JAVA_HOME即可,不用配置Catalina_home。
(2)、当配置全局数据源时,必须加上ROOT.xml。
(3)、在tomcat的配置文件server.xml中,配置了域名、加载项目的路径、数据库连接池、数据源。注:不太清楚tomcat启动时,怎么加载server.xml文件的,正常情况下,tomcat启动时,会加载web.xml文件,而其他想要被加载的文件,都应该在web.xml中配置,例如sturts-config.xml。也可能是,tomcat启动时自动加载server.xml,根据server.xml的配置找到项目的路径,加载项目。
(4)、陈雷给我的是编译好的文件,只有jsp、js、css、和.class文件,没有java文件。
(5)、正常情况下:应该把编译好的.class文件放到webapp目录下,tomcat启动时才会加载.class文件,这是一个符合J2EE标准的项目。(见:老李建的目录),但在本项目中没有把.class文件放到webapp目录下,可能就是配置了tomcat数据源的缘故,在server.xml文件中配置了加载项目的路径。
16、tomcat启动后,等项目完全加载后,在用浏览器访问时,不要急于访问。
17、昨天的问题所在:
(1)、JAVA_HOME配置的不对。
(2)、配置全局数据源时,没有加上ROOT.XML文件。
(3)、tomcat没有完全启动,就进行访问了。