动态网站环境:nginx+php、Tomcat+Java
Java:是一种跨平台的,面向对象的程序设计语言,Java技术具有卓越的通用性、高效性、平台移植性和安全性。Java会在每台不同型号的手机中安装一个java虚拟机,在虚拟机中运行该程序,能够让不同型号的手机运行相同的程序。
JDK:java语言的软件开发工具包。包括了java的运行环境,java工具如编译排除打包等,java基础的类库。
JRE:JDK的子集。包括java虚拟机,java核心类库和支持文件,不包含开发工具-编译器、调试器等工具。
Java Servlet:是Java扩展web服务器功能的组件规范。
常见Servlet容器:IBM---websphere、Oracle---weblogic、Apache---Tomcat、RedHat---Jboss。
释放完源码包,然后直接拷贝到/usr/local/目录下面
![](https://i-blog.csdnimg.cn/blog_migrate/860c2a35cb8d807516fc47fe04ef5920.png)
![](https://i-blog.csdnimg.cn/blog_migrate/2e572f4fa2a3d4e71472faa42b7b654e.png)
安装JDK软件包
![](https://i-blog.csdnimg.cn/blog_migrate/67952c43459c2445f36383277123fa80.png)
logs:存放日志文件。conf:配置文件。bin:存放主程序。webapps:存放网站页面。lib:存放库文件目录。work:存放编译后页面。
![](https://i-blog.csdnimg.cn/blog_migrate/8e41b68910e460ee8e66e8b5ff931664.png)
开启Tomcat程序,视情况而定,有时候可能开启不了。因为Tomcat是由Java所编写的而Java开启需要海量的字符,就会去/dev/random访问随机字符,如果/dev/random文件中没有随机字符就有可能开启Tomcat失败。
![](https://i-blog.csdnimg.cn/blog_migrate/3c9599cf652c92a00d9ad78afa400140.png)
![](https://i-blog.csdnimg.cn/blog_migrate/129a1e2d130200907b8398e88f2a5e87.png)
![](https://i-blog.csdnimg.cn/blog_migrate/4c03dd31ad6c3a0c0c3055f043c025bf.png)
1.需要使用/dev/urandom替换。
![](https://i-blog.csdnimg.cn/blog_migrate/6b647302b5823722d12879b84f13003c.png)
2.安装rng软件包,产生海量字符
yum -y install rng-tools
systemctl start rngd
此时就能正常开启Tomcat了。
查看Tomcat,关闭SELinux,默认8080端口。
![](https://i-blog.csdnimg.cn/blog_migrate/7cb0038542957a752e21dbcf0dc2663b.png)
8080:访问网站端口。8009:开发工程师做某些功能的入口。8005:关闭Tomcat端口。
![](https://i-blog.csdnimg.cn/blog_migrate/ca29b8287aa9624bebc3debd1a58b7ad.png)
自己编辑页面,ROOT为网站的根目录
![](https://i-blog.csdnimg.cn/blog_migrate/44da95cdab2413e575e7b80323ed1372.png)
查看页面
![](https://i-blog.csdnimg.cn/blog_migrate/9d8a87be5c34a2379c4abe5ffe138ec0.png)
.jsp为Java的动态页面
![](https://i-blog.csdnimg.cn/blog_migrate/5e82c32a298409c6102a159b1850dedb.png)
![](https://i-blog.csdnimg.cn/blog_migrate/a317aeec3b518f4247ccdaf3d917f47d.png)
查看动态网站
![](https://i-blog.csdnimg.cn/blog_migrate/09a3633f567862850fbd4509dbf7288a.png)
编辑Tomcat配置文件配置虚拟主机。conf/server.xml:主配置文件
<host:虚拟主机 name=域名 appBase=网站的页面位置>
</host>
必须在Engine里面(下面)编辑虚拟主机
![](https://i-blog.csdnimg.cn/blog_migrate/7c626aee0a4cb4b59799c4967d919a02.png)
![](https://i-blog.csdnimg.cn/blog_migrate/2ec109942248602a1596c9192089bcc8.png)
![](https://i-blog.csdnimg.cn/blog_migrate/3115cc4363ca42c558009796dcf7c6eb.png)
配置域名解析设置IP地址和域名的映射关系,编辑/etc/hosts文件
![](https://i-blog.csdnimg.cn/blog_migrate/b8756babad2c87f49ffa646306301f98.png)
重启Tomcat,先shutdown关闭然后start开启
![](https://i-blog.csdnimg.cn/blog_migrate/3a4fc4be54fd709786d746c3b0e0fe46.png)
查看页面
![](https://i-blog.csdnimg.cn/blog_migrate/f25fba97540c605ca09a5a1f8d0d9616.png)
默认虚拟主机的配置,autoDeploy:自动更新网站功能,由开发工程师使用。unpackWARs:自动解WAR包功能,当开发工程师发送WAR包到Tomcat,Tomcat网站能够自动解压使用。
![](https://i-blog.csdnimg.cn/blog_migrate/9f254b9b1eef18a95b577cc68384fdca.png)
测试unpackWARs功能,安装java-1.8.0-openjdk-devl,能够打WAR包的工具
![](https://i-blog.csdnimg.cn/blog_migrate/d90a30e0391ba9ae375c07e9db21847e.png)
jar:打war包
![](https://i-blog.csdnimg.cn/blog_migrate/23489a3efd74d0a48b175508f77d7040.png)
拷贝或者移动到webapps目录下面,发现到目录下面的WAR包被自动解压了
![](https://i-blog.csdnimg.cn/blog_migrate/fbd84945e869c4d1de4895a4c0f97ae4.png)
Context path:匹配用户访问路径(相当于Nginx的location)
docBase:定义页面位置
当不想把网站都放在ROOT中,需要添加ducBase,当docBase=a时相当于a为页面的根目录要访问web-b/a/index.html,如果为空表示web-b为页面的根目录,就不需要在访问ROOT下面的了。1、Context path为空表示不管www.a.com访问什么目录都执行docBase定义的目录---都需要去web-b目录。当docBase为ROOT时表示都访问web-b/ROOT目录
![](https://i-blog.csdnimg.cn/blog_migrate/3d5b47be4cb5b65538ce6e3539683c4b.png)
![](https://i-blog.csdnimg.cn/blog_migrate/f5218557ce9a574ec383d7c1f293f3a1.png)
当没有重新启动时查看页面
![](https://i-blog.csdnimg.cn/blog_migrate/0a6b8fa996ea47d2c8c4473a54346650.png)
重启之后,此时访问页面的根目录就会变成web-b
![](https://i-blog.csdnimg.cn/blog_migrate/991a6ee7c215f32ca42e721f7e702f6f.png)
2、当docBase=abc时根目录就会变成web-b/abc
![](https://i-blog.csdnimg.cn/blog_migrate/59d253cca4174ae191749aada10256bc.png)
![](https://i-blog.csdnimg.cn/blog_migrate/47bad5f97240a444b9442619f7e5c70a.png)
3、当docBase=“/abc”表示网站的根目录在根下面的abc目录,和web-b目录没有关系了
![](https://i-blog.csdnimg.cn/blog_migrate/513bdc785f04dec193d25120e0454985.png)
![](https://i-blog.csdnimg.cn/blog_migrate/a6113a836cc6d3947937ee0f267e2e17.png)
4、当Context path=“/test”,表示当访问www.b.com/test时才能访问/abc的页面,只要不访问www.b.com/test就不会访问根目录下面的abc目录,而会访问web-b目录下面的ROOT目录。
![](https://i-blog.csdnimg.cn/blog_migrate/754288c92a6b8a4aedfeeb6e7c373bfb.png)
![](https://i-blog.csdnimg.cn/blog_migrate/e26bcfe5aab927d1e8f3dbda17334cb2.png)
5、当Context path=“/test”,docBase=“abc”时只有访问/test时才会访问web-b/abc,否则就会访问web-b/ROOT目录
![](https://i-blog.csdnimg.cn/blog_migrate/b596ac716d4b871d9d01963df3cfc409.png)
![](https://i-blog.csdnimg.cn/blog_migrate/0c2691ea74a14afed5699cdbe6d7f7b5.png)
将默认虚拟机的开启日志功能写入到自定义虚拟机b
<Valve className="org.apache.catalina.valves.AccessLogValve" :开启日志功能
directory="logs":日志的存放目录。
prefix="localhost_access_log":日志文件的名称。
suffix=“.txt”:后缀名。
pattern="%h %l %u %t "%r" %s %b" />:日志的格式。
![](https://i-blog.csdnimg.cn/blog_migrate/b7c600296467b4dc063ca54fbfe92ca5.png)
修改虚拟机b日志配置
![](https://i-blog.csdnimg.cn/blog_migrate/3ee359e51498716b3624dd66bb905787.png)
重启服务,查看logs日志,就会产生自己搭建虚拟机的日志
![](https://i-blog.csdnimg.cn/blog_migrate/6eede9c0e421a8ce14ea3f1a61783c7a.png)
访问虚拟机后查看日志内容
![](https://i-blog.csdnimg.cn/blog_migrate/ba86b5bdc451b19a7a189ce3fad0df09.png)
maven:项目管理工具,主要对开发工程师使用,指定官网服务器能够自动搜索代码,能方便快捷的整合自己的项目功能压缩为WAR包在发送给webapps文件自动解压。
将三个文件传入虚拟机root的家目录,原地释放
apache-maven-3.6.3-bin.tar.gzmaven工具、cms.tar.gz网站项目(半成品)、m2.tar.gz 依赖程序
![](https://i-blog.csdnimg.cn/blog_migrate/512daaad90b3ceff63ead5bca7ac1e36.png)
安装依赖
![](https://i-blog.csdnimg.cn/blog_migrate/f7f5b3ddbd8ade5bbb63657eb4039d7d.png)
告诉maven将来要去哪里找,编辑maven配置文件/usr/local/maven/conf/settings.xml
![](https://i-blog.csdnimg.cn/blog_migrate/ee09c2f67f1e6566dff210d8289ba780.png)
配置开启数据库
![](https://i-blog.csdnimg.cn/blog_migrate/ce25e5357cc7b83761e68d3414f2f0c9.png)
[root@proxy ~]# cd CMS/
拷贝网站数据库配置文件到当前目录,该文件定义了数据的用户名和密码等信息
[root@proxy CMS]#cp src/main/resources/shishuocms.properties .
导入网站相关数据库文件
[root@proxy CMS]#mysql -uroot < sql/install.sql
修改数据库密码
[root@proxy CMS]#mysqladmin password
通知maven打包
[root@proxy CMS]#/usr/local/maven/bin/mvn clean package
恢复Tomcat配置文件
[root@proxy CMS]#cp ~/lnmp_soft/apache-tomcat-8.0.30/conf/server.xml /usr/local/tomcat/conf/
删除原有默认页面目录
[root@proxy CMS]#rm -rf /usr/local/tomcat/webapps/ROOT
将新项目移动到tomcat中,然后会自动解包,重启服务,然后真机打开浏览器访问192.168.99.5:8080看到“师说”页面则成功
[root@proxy CMS]#/cp target/shishuocms-2.0.1.war /usr/local/tomcat/webapps/ROOT.war
安全加密网站,重新安装Tomcat
![](https://i-blog.csdnimg.cn/blog_migrate/1252678c9a841e63c7538b294293038f.png)
开启服务
![](https://i-blog.csdnimg.cn/blog_migrate/479dfe38652544b314e86dba900a2d54.png)
编辑配置文件,删除注释<!-- -->开启加密网站
![](https://i-blog.csdnimg.cn/blog_migrate/69b80718a0fa5adba0f61f235cc1287d.png)
添加公钥和私钥的路径,keystoreFile:存放公钥和私钥文件的路径。keystorePass:存放公钥和私钥文件的密码。
![](https://i-blog.csdnimg.cn/blog_migrate/69731257c5f09ae63b98a99246ec1019.png)
![](https://i-blog.csdnimg.cn/blog_migrate/6f5082b6747762de8aa261274f78fd66.png)
keytool:创建公钥和私钥命令,-genkeypair:创建密钥对。-alias:给密钥对起别名。-keyalg:使用什么加密算法。-keystore:密钥对的存放位置。
![](https://i-blog.csdnimg.cn/blog_migrate/fd9631fcf61fae0434728e53a079f9f2.png)
此时密钥对已经存在 ,
![](https://i-blog.csdnimg.cn/blog_migrate/51485fb87db457c45068966c07dee544.png)
重新开启Tomcat服务,查看加密网站页面
![](https://i-blog.csdnimg.cn/blog_migrate/c28f454db71618862128e253bb37113c.png)
使用加密网站和不加密网站都能访问页面,相当于不同的路口,目标都是一样的。
![](https://i-blog.csdnimg.cn/blog_migrate/d3149dcc0fed748502ed390c403b3802.png)