Linux服务器上部署Javaweb项目环境搭建接博主上篇博客:
https://blog.csdn.net/wilson_m/article/details/80341830。
通过scp命令将项目导出的war包远程拷贝至Linux服务器下tomcat的发布目录,Tomcat的默认发布目录是Tomcat安装目录下的webapps目录。
通过上述代码将文件拷贝到服务器。
注:我又通过mv命令将两个项目移动到/data/tomcat/webapps目录下
注:博主的tomcat是安装在/usr/local目录下的,但是项目为什么不放在/usr/local/tomcat/webapps目录下而是放在/data/tomcat/webapps目录下呢?这样项目还能够进行发布访问吗?
答案是可以的,因为通过修改Tomcat的配置文件使tomcat的默认发布目录改成了/data/tomcat/webapps目录,具体修改方法如下。
进入/usr/local/tomcat/conf目录下,vim server.xml编辑配置文件,将appBase后的目录修改为自己想要发布的目录。修改后如下所示:
将war包放置在发布目录下,会自动解压出生成对应的文件夹,如下所示:
Tomcat 提供了专门的 JK 插件用于负责Tomcat 和 HTTP 服务器的通信,当 HTTP 服务器接收到客户的请求时,会通过 JK 插件来过滤URL,根据预先设定的 URL 映射信息,决定是否要把客户端的请求转发给Tomcat处理,本文主要实现将静态页面交给Apache处理,动态页面交给tomcat处理。
JK 插件下载地址:http://tomcat.apache.org/download-connectors.cgi,其中包含以下不同系统的插件:
打开上述链接,按照如下进行下载
通过scp命令拷贝到服务器上,博主拷贝到的目录是/data/tomcat-apache,通过解压命令进行解压
[root@271d5811ce45 tomcat-apache]# tar -zxvf tomcat-connectors-1.2.43-src
解压后产生一个文件夹如下所示:
我又干了间麻烦的事情,我将解压后的目录进行复制并重命名放在了/usr/local/tomcat-apache目录下,其余人参考的时候解压路径直接放在/usr/local目录下就好,不用这么麻烦
Apache目录下的native文件夹下通常是没有mod_jk.so文件的,所以需要进行编译安装,操作步骤如下:
[root@271d5811ce45 tomcat-apache]# cd native/
2.寻找apxs路径
[root@271d5811ce45 native]# which apxs
/usr/bin/apxs
3.编译安装
[root@271d5811ce45 native]# ./buildconf.sh
//注意:这里with-apxs后的路径和上面which apxs得到的路径要一样
[root@271d5811ce45 native]# ./configure --with-apxs=/usr/bin/apxs
[root@271d5811ce45 native]# make
通过上模操作,编译完毕以后就有mod_jk.so文件了,地址是native文件夹下的apache-2.0文件夹下:
通过cp命令将mod_js.so文件复制到自己安装到的apache modules目录里面去,通过yum安装的方式,Apache的目录为/etc/httpd,mudules文件内容如下:
1.在/conf 下创建 workers.properties 文件,填充以下文本:
2.在/conf 下创建 mod_jk.conf 文件,填充以下文本:
3.在/conf 下的httpd.conf文件末尾添加以下内容,建立关联
4.验证安装
4.1在%TOMCAT_HOME%/webapps/ROOT下新建一个JSP文件hello.jsp,其内容为,截图如下:
<html>
<head><title>Hellotitle>head>
<body>
<%
java.util.Date currentTime = new java.util.Date();
%>
<%=currentTime%>
body>
html>
在windows系统下浏览器中输入ip,出现界面如下(前提是不修改Apache的页面)
注:在将项目导出jar包时,一定要注意对数据库连接时密码的修改因为你的项目在Windows下开发时,用的密码可能和linux服务器下MySQL的密码不一样。
在windows系统下输入项目网址,ip:8080/项目名/主页面,界面如下:
问题1:改变项目发布目录的所有者,改为apache,因为在Apache的httpd.conf配置,忽略注释的两行nobody,这是当初听信的网上的,没成功。注意:更改文件的属组时,一定要递归的进行更改属组,即chown -R,这里的-R不能省略。
通过上述的修改,修改目录以及文件的属组,通过Apache进行访问,可以看到Tomcat测试的同样界面(注:这次访问页面的时候,没有加端口号)界面如下:
遇到问题分析:
在部署的过程中,遇到过以下一个小问题,由于代码不是自己写的,开发者再用ssh写代码的时候,与数据库的交互sql操作数据库表名用的都是大写,但是数据库中的表都是小写的,感觉无所谓,大小写应该不区分的。
但是在实际开发中结果代码移植过来的时候,局部功能不能够进行显示,才发现LINUX下的MYSQL默认是要区分表名大小写的。