operation 05
    =============================================
    一,使用tomcat搭建网站服务
    cd ~/lnmp_soft/
    tar -xf apache-tomcat-8.0.30.tar.gz //释放tomcat软件包
    cp -r apache-tomcat-8.0.30 /usr/local/tomcat
    cd /usr/local/tomcat/
    yum -y install java-1.8.0-openjdk //安装java程序运行环境包

    tomcat目录:
    bin 存放主程序
    logs 存放日志
    conf 配置文件
    webapps 存放网站页面
    lib 存放库文件
    work 存放编译后页面文件

    [root@proxy tomcat]# bin/startup.sh //开启服务
    http://192.168.99.5:8080/ //使用火狐访问
    netstat -ntulp | grep java //检查如果有8005、8009、8080端口则正常

    由于tomcat服务开启时需要大量随机字符,但系统中随机字符
    不够多的话会导致tomcat服务启动失败
    解决方案1:
    mv /dev/random /dev/random.bak //将random改名
    ln -s /dev/urandom /dev/random //用urandom替换random
    解决方案2:
    yum -y install rng-tools
    systemctl start rngd

    killall java //杀掉所有java程序
    [root@proxy tomcat]# bin/startup.sh //重新开启服务
    netstat -ntulp | grep java //检查如果有8005、8009、8080端口则正常

    ————————————————————————————-
    测试静态页面:
    cd /usr/local/tomcat
    echo “tomcat-test~~~~” > webapps/ROOT/test01.html
    http://192.168.99.5:8080/test01.html 火狐访问测试

    测试动态页面
    vim webapps/ROOT/test02.jsp



    Now time is: <%=new java.util.Date()%>



    http://192.168.99.5:8080/test02.jsp 火狐访问测试

    —————————————————————————————-
    二,使用tomcat创建虚拟主机
    回顾,
    httpd搭建虚拟主机

    servername www.a.com
    documentroot /var/www/html

    nginx搭建虚拟主机
    http {
    server {
    listen 80;
    server_name www.a.com;
    root html;
    index index.html;
    }
    }

    tomcat搭建虚拟主机

    vim conf/server.xml //打开配置文件在122行添加虚拟主机配置
    //这里顺便把下面的默认的
    虚拟主机的name=”localhost”改成 name=”www.a.com”

    mkdir -p web_b/ROOT //之后创建b网站的目录
    echo “tomcat-A~~~” > webapps/ROOT/index.html
    echo “tomcat-B~~~” > web_b/ROOT/index.html
    tail -1 /etc/hosts //查看域名解析
    192.168.99.5 www.a.com www.b.com
    bin/shutdown.sh //关闭tomcat
    bin/startup.sh //开启
    [root@proxy tomcat]# curl www.a.com:8080 //测试
    tomcat-A~~~
    [root@proxy tomcat]# curl www.b.com:8080
    tomcat-B~~~
    ————————————————————————————-
    查看虚拟主机www.a.com的配置
    unpackWARs=”true” //自动解war包
    autoDeploy=”true” //自动更新开发工程师编写的网站功能

    [root@proxy tomcat]# yum -y install java-1.8.0-openjdk-devel //安装可以制作war包的工具
    [root@proxy tomcat]# jar -cf a.war /var/log //之后可以使用jar命令打war包
    [root@proxy tomcat]# cp a.war webapps //将war包放入虚拟主机的网页目录
    [root@proxy tomcat]# ls webapps //检查,可以看到已经自动解开,如果无效可
    以尝试重启tomcat

    ————————————————————————————————-
    三,tomcat访问路径与页面位置
    Context path //匹配用户访问路径
    docBase //定义页面位置

    测试 1:
    <Host name=”www.b.com” appBase=”web_b”
    unpackWARs=”true” autoDeploy=”true”>

    echo “web_b/ROOT/index.html” > web_b/ROOT/index.html //默认页面路径
    echo “web_b/index.html” > web_b/index.html //创建素材,定义新路径
    curl www.b.com:8080 //测试可以看到的是默认的页面路径
    web_b/ROOT/index.html
    之后重启tomcat
    curl www.b.com:8080 //重启后测试可以看到新路径
    web_b/index.html

    测试 2:
    <Host name=”www.b.com” appBase=”web_b”
    unpackWARs=”true” autoDeploy=”true”>
    <Context path=”” docBase=”**abc**” /> //修改成abc

    mkdir web_b/abc //创建测试目录
    echo “web_b/abc/index.html” > web_b/abc/index.html //测试页面
    重启tomcat
    [root@proxy tomcat]# curl www.b.com:8080 //查看,见到新路径
    web_b/abc/index.html

    测试 3:
    <Host name=”www.b.com” appBase=”web_b”
    unpackWARs=”true” autoDeploy=”true”>
    <Context path=”” docBase=”**/abc**” /> //修改成/abc

    mkdir /abc //创建测试目录
    echo “/abc/index.html” > /abc/index.html //创建测试文件
    重启tomcat
    [root@proxy tomcat]# curl www.b.com:8080 //得到新路径
    /abc/index.html

    测试 4:
    <Host name=”www.b.com” appBase=”web_b”
    unpackWARs=”true” autoDeploy=”true”>
    <Context path=”**/test**” docBase=”/abc” /> //path后面添加内容可以匹配
    用户访问路径,当用户访问www.b.com:8080/test/时,看到的是/abc的内容,如果
    访问www.b.com:8080就看到web_b/ROOT的内容

    重启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

    测试 5:
    <Host name=”www.b.com” appBase=”web_b”
    unpackWARs=”true” autoDeploy=”true”>
    <Context path=”/test” docBase=”**abc**” /> //将/abc改成abc
    当用户访问www.b.com:8080/test/时,可以看到web_b/abc里的内容
    当用户访问www.b.com:8080时就看到web_b/ROOT的内容
    重启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

    ————————————————————————————————————————-
    四,给新创建的虚拟主机添加日志功能
    vim conf/server.xml //修改配置文件,复制最后一页默认虚拟主机的日志配置
    其中**prefix是日志名称suffix是日志后缀名
    unpackWARs=”true” autoDeploy=”true”>

    ** prefix=”www_b_com” suffix=”.log”
    pattern=”%h %l %u %t "%r" %s %b” />

    配置好之后开启或者重启tomcat服务
    curl www.b.com:8080 //访问一次网站,可以产生日志记录
    [root@proxy tomcat]# ls logs/ 查看日志目录可以看到b网站的日志名称
    —————————————————————————————————————
    五,通过maven构建项目
    maven是一个项目管理工具
    1, 将三个文件传入虚拟机root的家目录,原地释放
    apache-maven-3.6.3-bin.tar.gz //maven工具包
    cms.tar.gz //网站项目,代码已经都编写完毕
    m2.tar.gz //依赖程序,释放之后是隐藏目录.m2
    如果有软件包无法释放可以尝试安装bzip2软件包

    2,配置maven
    mv apache-maven-3.6.3 /usr/local/maven //将maven移动到/usr/local下
    yum -y install java-1.8.0-openjdk
    yum -y install java-devel
    vim /usr/local/maven/conf/settings.xml //打开配置文件在第158下面添加
    公网服务器地址

    nexus-aliyun
    *
    Nexus aliyun
    http://maven.aliyun.com/nexus/content/groups/public

    3,配置数据库
    yum -y install mariadb mariadb-server
    systemctl start mariadb
    [root@proxy ~]# cd ~/CMS/
    cp src/main/resources/shishuocms.properties . //拷贝网站数据库
    配置文件到当前目录,该文件定义了数据的用户名和密码等信息
    mysql -uroot -p < sql/install.sql //导入网站相关数据库文件
    Enter password: 直接回车
    mysqladmin password //修改数据库密码
    New password: //接下来输入12345678
    Confirm new password: //在输入一次12345678

    ————————————————————————————-
    如果密码输入错误
    mysqladmin password -uroot -p
    先输入旧密码,然后输入两次新密码

    如果密码忘记
    systemctl stop mariadb //停服务
    yum -y remove mariadb-server //删除
    rm -rf /var/lib/mysql/ //删除数据库文件,这样密码就没了
    yum -y install mariadb-server //重装
    systemctl start mariadb //启动数据库
    ——————————————————————————————-

    4,利用maven打包项目
    /usr/local/maven/bin/mvn clean package //按照之前定义的
    公网服务器地址、数据库配置等内容打包项目,注意该命令要在CMS目录进行

    rm -rf /usr/local/tomcat/webapps/ROOT //删除原有默认页面目录
    cp target/shishuocms-2.0.1.war /usr/local/tomcat/webapps/ROOT.war
    //将新项目移动到tomcat中,然后会自动解包
    打开浏览器 访问 www.a.com:8080 看到“师说”页面则成功

    如果真机无法解析www.a.com,或者tomcat配置文件有误,则按以下方式恢复
    cp ~/lnmp_soft/apache-tomcat-8.0.30/conf/server.xml /usr/local/tomcat/conf/
    cp: 是否覆盖 “/usr/local/tomcat/conf/server.xml”? y //把tomcat的配置
    文件恢复默认
    重启tomcat
    然后真机打开浏览器访问192.168.99.5:8080看到“师说”页面则成功