一,使用tomcat搭建网站服务
cd ~/lnmp_soft/
tar -xf apache-tomcat-8.0.30.tar.gz
cp -r apache-tomcat-8.0.30 /usr/local/tomcat
cd /usr/local/tomcat/
yum -y install java-1.8.0-openjdk
systemctl stop firewalld
tomcat目录:
bin
存放主要程序
logs
存放日志
conf
配置文件
webapps
存放网站页面
lib
存放库文件
work
存放编译之后的页面
[root@proxy tomcat]# bin/startup.sh //开启服务
http://192.168.2.5:8080 //使用火狐访问
netstat -ntulp | grep java //检查如果有8005、8009、8080端口则正常
但有时会出现端口缺少导致tomcat运行异常可以用以下方法解决
解决方案一:
mv /dev/random /dev/random.bak //将random改名
ln -s /dev/urandom /dev/random //用urandom替换random
解决方案二:
yum -y install rng-tools
systemctl start rngd
测试静态页面:
cd /usr/local/tomcat
echo "tomcat-test~~~~" > webapps/ROOT/test01.html
http://192.168.2.5:8080/test01.html 火狐访问测试
测试动态页面:
vim webapps/ROOT/test02.jsp
<html>
<body>
<center>
Now time is: <%=new java.util.Date()%>
</center>
</body>
</html>
http://192.168.2.5:8080/test02.jsp 火狐访问测试,刷新可以看到时间变化
二,在tomcat创建虚拟主机
回顾 ,虚拟主机搭建方法
httpd
<virtualhost *:80>
Servername www.a.com
Documentroot /var/www/html
</virtualhost>
Nginx
http {
server {
listen 80;
server_name www.a.com;
root html;
index index.html;
}
}
Tomcat创建虚拟主机
<Host name=域名 appBase=网站存放目录 >
</Host>
vim conf/server.xml //打开配置文件在122行添加虚拟主机配置
<Host name="www.b.com" appBase="web_b" >
</Host>
[root@proxy tomcat]# mkdir -p web_b/ROOT //之后创建b网站的目录
[root@proxy tomcat]# echo "tomcat-A~~~" > webapps/ROOT/index.html
[root@proxy tomcat]# echo "tomcat-B~~~" > web_b/ROOT/index.html
bin/shutdown.sh //关闭tomcat
bin/startup.sh //开启
[root@proxy tomcat]# tail -1 /etc/hosts //查看域名解析
192.168.2.5 www.a.com www.b.com www.c.com
[root@proxy tomcat]# curl www.a.com:8080 //测试
tomcat-A~~~
[root@proxy tomcat]# curl www.b.com:8080
tomcat-B~~~
再次修改虚拟主机配置
<Host name="www.b.com" appBase="web_b"
unpackWARs="true" autoDeploy="true"> //添加unpackWARs自动解war包,和autoDeploy可以自动更新开发工程师编写的网站功能代码
</Host>
bin/shutdown.sh //然后重启tomcat
bin/startup.sh
netstat -ntulp | grep java //检查
测试自动解war包功能:
首先tomcat服务必须是开启状态
yum -y install java-1.8.0-openjdk-devel //安装软件包
jar -cf b.war /var/log //之后可以使用jar命令打war包
cp b.war web_b/ //将war包放入虚拟主机的网页目录
ls web_b/ //检查,可以看到已经自动解开
三,tomcat访问路径与页面位置
Context path 匹配用户输入的地址栏
docBase 可以定义网站页面位置
测试一: /usr/local/tomcat/web_b
<Host name="www.b.com" appBase="web_b"
unpackWARs="true" autoDeploy="true">
<Context path="" docBase="" /> //添加本行
</Host>
echo "web_b/index.html" > web_b/index.html //创建素材,定义新路径
echo "web_b/ROOT/index.html" > web_b/ROOT/index.html //默认页面路径
curl www.b.com:8080 //测试可以看到的是默认的页面路径
bin/shutdown.sh
bin/startup.sh
curl www.b.com:8080 //重启后测试可以看到新路径
测试二:
<Host name="www.b.com" appBase="web_b"
unpackWARs="true" autoDeploy="true">
<Context path="" docBase="abc" /> //修改成abc
</Host>
mkdir web_b/abc
echo "web_b/abc/index.html" > web_b/abc/index.html //创建测试页面
重启tomcat
curl www.b.com:8080 //再次访问可以看到新路径的页面
测试三:
<Host name="www.b.com" appBase="web_b"
unpackWARs="true" autoDeploy="true">
<Context path="" docBase="/abc" /> //当此处使用绝对路径时,可以更自由定义网页位置
</Host>
mkdir /abc
echo "/abc/index.html" > /abc/index.html
重启tomcat
curl www.b.com:8080 //访问测试,看到的是/abc/index.html的页面
测试四:
<Host name="www.b.com" appBase="web_b"
unpackWARs="true" autoDeploy="true">
<Context path="/test" docBase="/abc" /> //path后面添加内容可以匹配用户访问路径
</Host>
重启tomcat
[root@proxy tomcat]# curl www.b.com:8080/test/
/abc/index.html
[root@proxy tomcat]# curl www.b.com:8080
web_b/ROOT/index.html
测试五:
<Host name="www.b.com" appBase="web_b"
unpackWARs="true" autoDeploy="true">
<Context path="/test" docBase="abc" /> //将/abc改成abc
</Host>
重启tomcat
[root@proxy tomcat]# curl www.b.com:8080/test/
web_b/abc/index.html
[root@proxy tomcat]# curl www.b.com:8080
web_b/ROOT/index.html
下列需求如何实现?
访问www.b.com:8080 看到的是/usr/local/tomcat/test01/a/index.html中的内容
访问www.b.com:8080/abc/ 看到的是/var/www/html/index.html中的内容
<Host name="www.b.com" appBase="test01"
unpackWARs="true" autoDeploy="true">
<Context path="" docBase="a" />
<Context path="/abc" docBase="/var/www/html" />
</Host>
mkdir -p test01/a
echo "test01/a/index.html" > test01/a/index.html
给新创建的虚拟主机添加日志功能
vim conf/server.xml //修改配置文件,复制最后一页默认虚拟主机的日志配置
其中prefix是日志名称,suffix是日志后缀名
<Host name="www.b.com" appBase="test01"
unpackWARs="true" autoDeploy="true">
<Context path="" docBase="a" />
<Context path="/abc" docBase="/var/www/html" />
<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
prefix="www-b-com" suffix=".log"
pattern="%h %l %u %t "%r" %s %b" />
</Host>
配置好之后开启或者重启tomcat服务
curl www.b.com:8080 //访问一次网站,可以产生日志记录
[root@proxy tomcat]# ls logs/ 查看日志目录可以看到b网站的日志名称
四,使用maven上线网站
maven是一个软件项目管理工具
链接:https://pan.baidu.com/s/17JTUL57vwcc3ianlHCADSA
提取码:6666
KVM:在真机第二阶段/linux-soft/2/maven下
1, 将三个文件传入虚拟机root的家目录,原地释放
apache-maven-3.6.3-bin.tar.gz //maven工具包
cms.tar.gz //网站项目,代码已经都编写完毕
m2.tar.gz //依赖程序,释放之后是隐藏目录.m2
2,检查tomcat,必须是正常启用状态
Killall java
cd ~/lnmp_soft
rm -rf /usr/local/tomcat
cp -r apache-tomcat-8.0.30 /usr/local/tomcat //重新拷贝tomcat
mv /dev/random /dev/random.bak //解决随机字符问题
ln -s /dev/urandom /dev/random
/usr/local/tomcat/bin/startup.sh //开启tomcat
3,配置maven
mv apache-maven-3.6.3 /usr/local/maven
yum -y install java-1.8.0-openjdk
yum -y install java-devel
vim /usr/local/maven/conf/settings.xml //在第159行添加以下内容
<mirror>
<id>nexus-aliyun</id>
<mirrorOf>*</mirrorOf>
<name>Nexus aliyun</name>
<url>http://maven.aliyun.com/nexus/content/groups/public</url>
</mirror>
4,配置数据库与构建项目
yum -y install mariadb-server mariadb
systemctl restart mariadb
cd ~/CMS/ //到网站项目目录
cp src/main/resources/shishuocms.properties . //拷贝数据库相关文件到CMS目录
mysql -uroot -p < sql/install.sql //导入数据库关于网站的文件
mysqladmin password //修改数据库密码为12345678
/usr/local/maven/bin/mvn clean package //利用maven打包项目
rm -rf /usr/local/tomcat/webapps/ROOT //删除默认页
cp target/shishuocms-2.0.1.war /usr/local/tomcat/webapps/ROOT.war //拷贝
新项目网站到tomcat,然后会自动解war包产生ROOT目录
之后开启tomcat,使用http://www.a.com:8080访问可以看到师说页面则成功
如果tomcat恢复默认了,就访问192.168.2.5:8080
网友评论