LNMP架构针对的开发语言是PHP语言,php 是一门开发web程序很是流行的语言,早些年流行的是asp,在Windows平台上运行的一种编程语言,但安全性差,就网站开发人员就开始转到php,并且php相对的比较安全php
java是一门比较庞大的开发语言,不只能够开发建站,也能够开发大型软件工具和游戏html
Tomcat介绍java
1.Tomcat是Apache软件基金会(Apache Software Foundation)的Jakarta项目中的一个核心项目,由Apache、Sun和其余一些公司及我的共同开发而成。mysql
2.java程序写的网站用tomcat+jdk来解析、运行linux
3.tomcat是一个中间件,用来运行java语言写的网站,真正起做用的,解析java脚本的是jdknginx
4.jdk(java development kit)是整个java的核心,它包含了java运行环境和一堆java相关的工具以及java基础库。 5.最主流的jdk为sun公司发布的jdk,除此以外,其实IBM公司也有发布JDK,CentOS上也能够用yum安装openjdkweb
安装jdk目录概要redis
JAVA_HOME=/usr/local/jdk1.8/ JAVA_BIN=/usr/local/jdk1.8/bin JRE_HOME=/usr/local/jdk1.8/jre PATH=$PATH:/usr/local/jdk1.8/bin:/usr/local/jdk1.8/jre/bin CLASSPATH=/usr/local/jdk1.8/jre/lib:/usr/local/jdk1.8/lib:/usr/local/jdk1.8/jre/lib/charsets.jar
1.安装tomcat和jdk,首先须要安装jdk,由于tomcat要想启动,依赖于jdk的环境变量sql
2.jdk版本目前有1.六、1.七、1.8,简称为六、七、8数据库
3.这里使用的是JDK的1.8版本,官网地址
4.用浏览器打开jdk的官网,而后将手动将jdk下载到windows上,打开官网后,首先点赞成 Accept License Agreement ,再选择一个对应的版本,即 tar.gz 的(选择的时候要看清本身的系统是多少位的,在centos6以前是区分32位或64位的,但在centos7中不在区分的,虽然有32位的版本,可是是基于64位的版本的基础上编译出来的,因此最终仍是一个64位的),因此再用centos7的系统,那下载的jdk版本确定是 x86 的
5.选择以下版本,而后点击下载
6.下载好jdk后,在linux系统中切换到 /usr/local/src 目录下
[root@xuexi-001 ~]# cd /usr/local/src/ [root@xuexi-001 ~]# ls apr-1.6.3 nginx-1.12.1 apr-1.6.3.tar.gz nginx-1.12.1.tar.gz apr-util-1.6.1 php-5.6.30 apr-util-1.6.1.tar.bz2 php-5.6.30.tar.gz httpd-2.4.29 php-7.1.6 httpd-2.4.29.tar.gz php-7.1.6.tar.bz2 mariadb-10.2.6-linux-glibc_214-x86_64.tar.gz phpredis-develop mysql-5.6.35-linux-glibc2.5-x86_64.tar.gz phpredis-develop.zip
7.将jdk传输到 /usr/local/src目录下,直接输入ctrl+alt+f快捷键,用xftp传输,比较方便,还很是安全,它是基于ssh传输,不须要开启ftp的端口
[root@xuexi-001 src]# ls apr-1.6.3 nginx-1.12.1 apr-1.6.3.tar.gz nginx-1.12.1.tar.gz apr-util-1.6.1 php-5.6.30 apr-util-1.6.1.tar.bz2 php-5.6.30.tar.gz httpd-2.4.29 php-7.1.6 httpd-2.4.29.tar.gz php-7.1.6.tar.bz2 jdk-8u161-linux-x64.tar.gz phpredis-develop mariadb-10.2.6-linux-glibc_214-x86_64.tar.gz phpredis-develop.zip mysql-5.6.35-linux-glibc2.5-x86_64.tar.gz
8.解压jdk安装包
[root@xuexi-001 src]# tar zxf jdk-8u161-linux-x64.tar.gz //解压包 [root@xuexi-001 src]# du -sh jdk1.8.0_181/ 368M jdk1.8.0_181/
9.将解压完的包放到/usr/local/目录下,并修更名称为jdk1.8
[root@xuexi-001 src]# mv jdk1.8.0_181/ /usr/local/jdk1.8
10.编辑/etc/profile文件,这个文件是编辑环境变量
[root@xuexi-001 src]# vi /etc/profile 在文件最下方加上如下配置,主要用于定义环境变量 JAVA_HOME=/usr/local/jdk1.8/ JAVA_BIN=/usr/local/jdk1.8/bin JRE_HOME=/usr/local/jdk1.8/jre PATH=$PATH:/usr/local/jdk1.8/bin:/usr/local/jdk1.8/jre/bin CLASSPATH=/usr/local/jdk1.8/jre/lib:/usr/local/jdk1.8/lib:/usr/local/jdk1.8/jre/lib/charsets.jar 保存退出
11.编辑完配置文件,使用 source 命令使文件生效
[root@xuexi-001 src]# source /etc/profile
12.检验jdk是否安装成功,使用命令java -version,看版本是否为安装的1.8.0_161,在运行命令后出现如下配置,说明jdk安装成功
[root@xuexi-001 src]# java -version java version "1.8.0_181" Java(TM) SE Runtime Environment (build 1.8.0_181-b13) Java HotSpot(TM) 64-Bit Server VM (build 25.181-b13, mixed mode)
13.如果运行命令java -version ,结果 出现的数字和咱们下载的版本不一致,或者是openjdk,这时候去思考下是否安装过openjdk,如有openjdk,能够卸载掉openjdk(直接卸载指的是线下的服务器没跑任务的东西,如果线上的服务器运行后出现其余的版本或显示openjdk,这时不能随便的卸载这个包,由于系统的某个程序有可能在使用这个openjdk)
[root@xuexi-001 src]# rpm -qa |grep openjdk [root@xuexi-001 src]# yum list | grep openjdk
1.切换到/ues/local/src/目录下
[root@xuexi-001]# cd /usr/local/src
2.下载tomcat的安装包(二进制免编译包),命令 wget https://mirrors.tuna.tsinghua.edu.cn/apache/tomcat/tomcat-9/v9.0.11/bin/apache-tomcat-9.0.11.tar.gz
[root@xuexi-001 src]# wget https://mirrors.tuna.tsinghua.edu.cn/apache/tomcat/tomcat-9/v9.0.11/bin/apache-tomcat-9.0.11.tar.gz
3.解压包
[root@xuexi-001 src]# tar -zxvf apache-tomcat-9.0.11.tar.gz
4.解压完以后,移动到/usr/local/目录下,并更更名字为tomcat
[root@xuexi-001 src]# mv apache-tomcat-9.0.11 /usr/local/tomcat
5.启动tomcat,由于tomcat软件包下载的是 二进制免编译包 ,不用去编译
[root@xuexi-001 src]# /usr/local/tomcat/bin/startup.sh Using CATALINA_BASE: /usr/local/tomcat Using CATALINA_HOME: /usr/local/tomcat Using CATALINA_TMPDIR: /usr/local/tomcat/temp Using JRE_HOME: /usr/local/jdk1.8 Using CLASSPATH: /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar Tomcat started.
6.这时候能够grep查看是否有java的进程,如果有java这个进程,说明tomcat正常启动了
[root@xuexi-001 src]# ps aux | grep java root 1997 13.5 4.5 2509108 84612 pts/0 Sl 08:42 0:04 /usr/local/jdk1.8/bin/java -Djava.util.logging.config.file=/usr/local/tomcat/conf/logging.properties -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djdk.tls.ephemeralDHKeySize=2048 -Djava.protocol.handler.pkgs=org.apache.catalina.webresources -Dorg.apache.catalina.security.SecurityListener.UMASK=0027 -Dignore.endorsed.dirs= -classpath /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar -Dcatalina.base=/usr/local/tomcat -Dcatalina.home=/usr/local/tomcat -Djava.io.tmpdir=/usr/local/tomcat/temp org.apache.catalina.startup.Bootstrap start root 2042 0.0 0.0 112720 968 pts/0 S+ 08:43 0:00 grep --color=auto java
7.关闭tomcat的命令为/usr/local/romcat/bin/shutdown.sh ,tomcat不支持restart,如果更改了配置文件,须要去从新启动,先stop,而后start
[root@xuexi-001 src]# /usr/local/tomcat/bin/shutdown.sh Using CATALINA_BASE: /usr/local/tomcat Using CATALINA_HOME: /usr/local/tomcat Using CATALINA_TMPDIR: /usr/local/tomcat/temp Using JRE_HOME: /usr/local/jdk1.8 Using CLASSPATH: /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar [root@xuexi-001 src]# ps aux |grep java root 2072 0.0 0.0 112720 972 pts/0 S+ 08:45 0:00 grep --color=auto java 这时再启动tomcat [root@xuexi-001 src]# /usr/local/tomcat/bin/startup.sh Using CATALINA_BASE: /usr/local/tomcat Using CATALINA_HOME: /usr/local/tomcat Using CATALINA_TMPDIR: /usr/local/tomcat/temp Using JRE_HOME: /usr/local/jdk1.8 Using CLASSPATH: /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar Tomcat started. [root@xuexi-001 src]# ps aux |grep java root 2088 55.4 4.5 2508912 85096 pts/0 Sl 08:45 0:02 /usr/local/jdk1.8/bin/java -Djava.util.logging.config.file=/usr/local/tomcat/conf/logging.properties -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djdk.tls.ephemeralDHKeySize=2048 -Djava.protocol.handler.pkgs=org.apache.catalina.webresources -Dorg.apache.catalina.security.SecurityListener.UMASK=0027 -Dignore.endorsed.dirs= -classpath /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar -Dcatalina.base=/usr/local/tomcat -Dcatalina.home=/usr/local/tomcat -Djava.io.tmpdir=/usr/local/tomcat/temp org.apache.catalina.startup.Bootstrap start root 2131 0.0 0.0 112720 968 pts/0 R+ 08:45 0:00 grep --color=auto java
9.查看tomcat的监听端口,会看到的监听端口为8080端口和8009端口,还有一个8005端口
[root@xuexi-001 src]# netstat -lntp |grep java tcp6 0 0 :::8080 :::* LISTEN 2088/java tcp6 0 0 127.0.0.1:8005 :::* LISTEN 2088/java tcp6 0 0 :::8009 :::* LISTEN 2088/java
10.测试tomcat访问页面
11.关闭防火墙
关闭防火墙 [root@xuexi-001 src]# systemctl stop firewalld [root@xuexi-001 src]# systemctl disable firewalld Removed symlink /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service. Removed symlink /etc/systemd/system/basic.target.wants/firewalld.service. [root@xuexi-001 src]# iptables -nvL Chain INPUT (policy ACCEPT 0 packets, 0 bytes) pkts bytes target prot opt in out source destination Chain FORWARD (policy ACCEPT 0 packets, 0 bytes) pkts bytes target prot opt in out source destination Chain OUTPUT (policy ACCEPT 0 packets, 0 bytes) pkts bytes target prot opt in out source destination [root@hf-01 src]#
12.关闭防火墙以后,打开浏览器访问 虚拟机的IP 加 8080端口 ,如 192.168.202.131:8080
13.打开以下的界面就是访问成功了
Connector port="8080" protocol="HTTP/1.1"修改成Connector port="80" protocol="HTTP/1.1"
1.tomcat监听的是8080端口,若想要直接直接访问,不须要8080端口访问,就是默认输入一个IP或者域名,访问的是80端口(访问的时候80端口是能够省略的)
2.tomcat是支持自定义端口的,把 8080端口 改成 80端口
3.编辑tomcat的配置文件,在 /usr/local/tomcat/conf/目录下有一个server.xml文件
[root@xuexi-001 ~]# vim /usr/local/tomcat/conf/server.xml 搜索 /8080 这里是控制监听端口的,将这里的 8080 改成 80 <Connector port="80" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" /> 保存退出
4.改完配置文件后,重启服务,由于是不支持restart的,只能先中止,而后在开启
[root@xuexi-001 ~]# /usr/local/tomcat/bin/shutdown.sh Using CATALINA_BASE: /usr/local/tomcat Using CATALINA_HOME: /usr/local/tomcat Using CATALINA_TMPDIR: /usr/local/tomcat/temp Using JRE_HOME: /usr/local/jdk1.8 Using CLASSPATH: /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar [root@xuexi-001 ~]# /usr/local/tomcat/bin/startup.sh Using CATALINA_BASE: /usr/local/tomcat Using CATALINA_HOME: /usr/local/tomcat Using CATALINA_TMPDIR: /usr/local/tomcat/temp Using JRE_HOME: /usr/local/jdk1.8 Using CLASSPATH: /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar Tomcat started.
5.这时再来查看监听端口是否改变,会看到监听了80端口
[root@xuexi-001 ~]# netstat -lntp |grep java tcp6 0 0 :::80 :::* LISTEN 1863/java tcp6 0 0 127.0.0.1:8005 :::* LISTEN 1863/java tcp6 0 0 :::8009 :::* LISTEN 1863/java
6.但有可能会没看到tomcat监听80端口,由于nginx已经监听了80端口,80端口被占用
7.这时再来浏览器访问IP (如果刚重启tomcat服务,8005端口还没启动,那么浏览器访问就会比较慢)
18.如果在实际线上的生产环境,就不能直接停掉Nginx,这时可让nginx代理tomcat了,80 代理 8080
<Host name="www.123.cn" appBase="" unpackWARs= "true" autoDeploy="true" xmlValidation="false" xmlNamespaceAware="false"> <Context path="" docBase="/data/wwwroot/123.cn/" debug="0" reloadable="true" crossContext="true"/> </Host>
1.打开tomcat虚拟主机配置文件
[root@xuexi-001 ~]# vim /usr/local/tomcat/conf/server.xml 搜索 /<Host <Host name="localhost" appBase="webapps" unpackWARs="true" autoDeploy="true"> <!-- SingleSignOn valve, share authentication between web applications Documentation at: /docs/config/valve.html --> <!-- <Valve className="org.apache.catalina.authenticator.SingleSignOn" /> --> <!-- Access log processes all example. Documentation at: /docs/config/valve.html Note: The pattern used is equivalent to using pattern="common" --> <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs" //日志相关 prefix="localhost_access_log" suffix=".txt" //日志相关 pattern="%h %l %u %t "%r" %s %b" /> //日志相关 </Host>
2.增长虚拟主机,编辑server.xml,在</Host>下面增长以下内容
<Host name="www.123.cn" appBase="" ##域名为www.123.cn,appbase后为空,就不会于docBase相互干扰 unpackWARs= "true" autoDeploy="true" xmlValidation="false" xmlNamespaceAware="false"> <Context path="" docBase="/data/wwwroot/123.cn/" debug="0" reloadable="true" crossContext="true"/> ## 自定义站点路径,不使用自动安装war的方式 </Host> 保存退出
3.为了方便测试,下载一个zrlog(java写的blog站点应用,轻量),zrlog实际就是一个war包,进行测试
[root@xuexi-001 ~]# cd /usr/local/src/ [root@xuexi-001 src]# wget http://dl.zrlog.com/release/zrlog-1.7.1-baaecb9-release.war
4.zrlog安装很简单,appbase是支持自动解压war包的,将war文件放到appbase里面,appbase默认是在/usr/local/tomcat/webapps/
[root@xuexi-001 src]# ls /usr/local/tomcat/webapps/ docs examples host-manager manager ROOT
5.将zrlog的war文件拷贝到/usr/local/tomcat/webapps/目录下,而后再来查看/usr/local/tomcat/webapps/,会看到war包自动解压了——>前提,tomcat正常启动着,不然是没法自动解压的
[root@xuexi-001 src]# cp zrlog-1.7.1-baaecb9-release.war /usr/local/tomcat/webapps/ [root@xuexi-001 src]# ls /usr/local/tomcat/webapps/ docs ROOT examples zrlog-1.7.1-baaecb9-release host-manager zrlog-1.7.1-baaecb9-release.war manager
6.解压完以后,就能够正常去访问了,修改zrlog包名称
[root@xuexi-001 src]# cd /usr/local/tomcat/webapps/ [root@xuexi-001 webapps]# mv zrlog-1.7.1-baaecb9-release zrlog [root@xuexi-001 webapps]# ls docs host-manager ROOT zrlog-1.7.1-baaecb9-release.war examples manager zrlog
7.而后去访问,使用浏览器访问IP,会看到安装向导,其实就是一个配置数据库的过程
8.检查mysql服务是否正常启动
[root@xuexi-001 webapps]# ps aux |grep mysql root 1091 0.0 0.0 115432 1724 ? S 19:41 0:00 /bin/sh /usr/local/mysql/bin/mysqld_safe --datadir=/data/mysql --pid-file=/data/mysql/xuexi-001.pid mysql 1249 0.0 24.4 1300836 456436 ? Sl 19:42 0:04 /usr/local/mysql/bin/mysqld --basedir=/usr/local/mysql --datadir=/data/mysql --plugin-dir=/usr/local/mysql/lib/plugin --user=mysql --log-error=/data/mysql/xuexi-001.err --pid-file=/data/mysql/xuexi-001.pid --socket=/tmp/mysql.sock root 2058 0.0 0.0 112720 968 pts/0 R+ 21:11 0:00 grep --color=auto mysql
9.进入到数据库中,在数据库里面建立一个zrlog的数据库
[root@xuexi-001 webapps]# mysql -uroot -p123456 Warning: Using a password on the command line interface can be insecure. Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 2 Server version: 5.6.36 MySQL Community Server (GPL) Copyright (c) 2000, 2017, Oracle and/or its affiliates. All rights reserved. Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. mysql> create database zrlog; Query OK, 1 row affected (0.00 sec) mysql>
10.建立完数据库以后,还须要建立一个用户(库名能够不加单引号)
mysql> grant all on zrlog.* to 'zrlog'@127.0.0.1 identified by 'xuexi1'; ERROR 1290 (HY000): The MySQL server is running with the --skip-grant-tables option so it cannot execute this statement mysql> flush privileges; Query OK, 0 rows affected (0.00 sec) mysql> grant all on zrlog.* to 'zrlog'@127.0.0.1 identified by 'xuexi1'; Query OK, 0 rows affected (0.00 sec) mysql> quit
11.检查建立的数据库用户是否正确
[root@xuexi-001 webapps]# mysql -uzrlog -h127.0.0.1 -pxuexi1 Warning: Using a password on the command line interface can be insecure. Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 5 Server version: 5.6.36 MySQL Community Server (GPL) Copyright (c) 2000, 2017, Oracle and/or its affiliates. All rights reserved. Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. mysql> show database; ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'database' at line 1 mysql> show databases; +--------------------+ | Database | +--------------------+ | information_schema | | test | | zrlog | +--------------------+ 3 rows in set (0.00 sec)
12.接下来就是在浏览器访问IP打开的网页,填写数据库的信息(系统信箱自定义便可),以后就能访问了,密码为 xuexi1
13.正常访问搭建的博客,并能够在文章后台发布文章
1.首先部署环境,tomcat加jdk 2.部署完环境后,下载zrlog的war包过来 3.把war包放到appbase里面,它会自动的帮你解压,解压成一个目录,这个目录就是咱们须要项目 4.配置一个数据库,对应的用户,数据库,密码 5.但这种访问,还须要在后面加一个目录
###搭建好zrlog(测试用docBase指定路径,访问是否生效)
1.在搭建好zrlog后,在访问这个博客的时候,不想要这个目录,好比访问 192.168.5.130/zrlog/ ,去掉zrlog这个目录,直接用域名去访问
2.查看tomcat是配置文件,在配置文件中已经建立了一个新的虚拟主机,域名叫作www.123.cn,appbase没有去定义,也就是说不须要弄任何的war包过来,但定义了一个docbase,docbase就是一个目录,这里面不须要设置任何的war包,而是war包解压完的目录放进去
<Host name="www.123.cn" appBase="" ##域名为www.123.cn,appbase后为空,就不会于docBase相互干扰 unpackWARs= "true" autoDeploy="true" xmlValidation="false" xmlNamespaceAware="false"> <Context path="" docBase="/data/wwwroot/123.cn/" debug="0" reloadable="true" crossContext="true"/> ## 自定义站点路径,不使用自动安装war的方式 </Host>
3.建立/data/wwwroot/123.cn/目录
[root@xuexi-001 webapps]# mkdir /data/wwwroot/123.cn
4.而后把appbase下的zrlog目录下的全部文件,所有移动到docbase下的/data/wwwroot/123.cn/目录下
[root@xuexi-001 webapps]# mv /usr/local/tomcat/webapps/zrlog/* /data/wwwroot/123.cn/
5.绑定hosts,在window物理机的hosts文件中,加入虚拟机的IP和网址
192.168.5.130 www.123.cn
6.在windows物理机上ping www.123.cn,若是放到到的的虚拟机上,就能够去访问它了
7.而后重启tomcat服务
[root@xuexi-001 webapps]# /usr/local/tomcat/bin/shutdown.sh Using CATALINA_BASE: /usr/local/tomcat Using CATALINA_HOME: /usr/local/tomcat Using CATALINA_TMPDIR: /usr/local/tomcat/temp Using JRE_HOME: /usr/local/jdk1.8/jre Using CLASSPATH: /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar [root@xuexi-001 webapps]# /usr/local/tomcat/bin/startup.sh Using CATALINA_BASE: /usr/local/tomcat Using CATALINA_HOME: /usr/local/tomcat Using CATALINA_TMPDIR: /usr/local/tomcat/temp Using JRE_HOME: /usr/local/jdk1.8/jre Using CLASSPATH: /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar Tomcat started.
8.查看端口
[root@xuexi-001 webapps]# netstat -lntp |grep 80 tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 1080/master tcp6 0 0 :::80 :::* LISTEN 1863/java tcp6 0 0 ::1:25 :::* LISTEN 1080/master tcp6 0 0 127.0.0.1:8005 :::* LISTEN 1863/java tcp6 0 0 :::41480 :::* LISTEN 851/rpc.statd tcp6 0 0 :::8009 :::* LISTEN 1863/java
9.浏览器访问www.123.cn ,按ctrl+f5刷新
[root@xuexi-001 ~]# ls /usr/local/tomcat/logs catalina.2018-08-30.log localhost.2018-08-30.log catalina.out localhost_access_log.2018-08-30.txt host-manager.2018-08-30.log manager.2018-08-30.log [root@xuexi-001 ~]# cd /usr/local/tomcat/logs/ [root@xuexi-001 logs]# less catalina.out
<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs" prefix="123.cn_access" suffix=".log" pattern="%h %l %u %t "%r" %s %b" />