0基础自学linux运维-2.4-centOS6.5安装LNMT

一、安装环境:

所谓的LNMT就是:linux+nginx+mysql+tomcat组合,所需要的软件如下:

jdk:jdk-8u144-linux-x64.rpm,tomcat需要java环境

nginx:目前版本1.12.1,yum安装主要是做代理,将来可以用做负载均衡

mysql:目前版本5.6.37,yum安装,为了方便升级

tomcat:apache-tomcat-8.5.20.tar.gz二进制安装

1.1.操作系统:

操作系统:centOS6.5最小化安装

1)查看linux系统环境

[root@vm5~]# cat /etc/redhat-release

CentOSrelease 6.5 (Final)

[root@vm5~]#uname -r

2.6.32-431.el6.x86_64

[root@vm5~]# uname -m

x86_64

提示:也可以用uname -a

2)

外网:192.168.0.165/24

内网:192.168.3.165/24

1.2.关闭iptables和selinux

服务器端和客户端同时操作

1)关闭iptables

service iptables stop

chkconfig iptables off

#下面是centOS7的,关闭防火墙

#停止firewall

systemctl stop firewalld.service

#禁止firewall开机启动

systemctl disable firewalld.servic


2)关闭selinux

setenforce off

sed -i '/^SELINUX=/s/enforcing/disabled/' /etc/selinux/config

grep '^SELINUX=' /etc/selinux/config


1.3.时间同步(非必要)

yum install ntp -y

/usr/sbin/ntpdate pool.ntp.org

echo '#time sync by hua'>>/var/spool/cron/root

echo '*/5 * * * * /usr/sbin/ntpdate pool.ntp.org >/dev/null 2>&1'>>/var/spool/cron/root

crontab -l


二、安装jdk

打开http://www.oracle.com/technetwork/java/javase/downloads/index.html页面

点java的下载图标,如下:

此时会跳到下载页面,你这里下载最新版本的jdk-8u144-linux-x64.rpm包

#JDK安装

cd /disk1/tools/

#上传刚刚下载的jdk,

rpm -ih jdk-8u144-linux-x64.rpm

java -version

javac -version

三、安装nginx(yum)

3.1.nginx安装

#下面是centos7的nginx

yum源

#rpm -ivh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm

rpm -ivh http://nginx.org/packages/centos/6/noarch/RPMS/nginx-release-centos-6-0.el6.ngx.noarch.rpm

yum install nginx -y


3.2.nginx启动及测试

/etc/init.d/nginx start

/etc/init.d/nginx status

ps -ef|grep nginx

chkconfig nginx on

#打开浏览器用IP访问试下

输入:http://192.168.0.75,得到如下图所示,说明安装成功。

四、mysql安装(yum)

4.1.mysql下载及安装(yum)

cd /disk1/tools/

wget https://repo.mysql.com/mysql-community-release-el6-7.noarch.rpm

rpm -ih mysql-community-release-el6-7.noarch.rpm

#也可以用yum install mysql-community-devel mysql-community-client mysql-community-server安装

yum install mysqlmysql-server mysql-devel -y

#建立相关的数据和日志目录

mkdir -p /disk1/mysqlData/mysql5.6

mkdir -p /disk1/logs/mysql/mysql5.6/error

mkdir -p /disk1/logs/mysql/mysql5.6/slow

chown mysql.mysql -R/disk1/mysqlData

chown mysql.mysql -R/disk1/logs/mysql

2.修改mysql配置

#1)备份并修改my.cnf

cp /etc/my.cnf /etc/my.cnf.orig

vi /etc/my.cnf

[mysql]

default-character-set=utf8

[mysqld]

#datadir=/var/lib/mysql

datadir = /disk1/mysqlData/mysql5.6

##add by hua

port = 3306

server_id =1

#socket = /tmp/mysql.sock

#设置默认编码,也可以取消

default-storage-engine=INNODB

character-set-server=utf8

collation-server=utf8_general_ci


log-bin=/disk1/logs/mysql/mysql5.6/mysql-bin

innodb_file_per_table=1


slow-query-log = on

slow_query_log_file =/disk1/logs/mysql/mysql5.6/slow/slowquery.log

long_query_time = 3

log-queries-not-using-indexes= on

log-error =/disk1/logs/mysql/mysql5.6/error/error.log

[mysqld_safe]

#log-error=/var/log/mysqld.log

log-error=/disk1/logs/mysql/mysql5.6/error/error.log

#建立相应的文件:

touch /disk1/logs/mysql/mysql5.6/error/error.log

chown mysql.mysql/disk1/logs/mysql/mysql5.6/error/error.log


#启动mysql,第一次启动会初始化数据库

/etc/init.d/mysqld start

/etc/init.d/mysqld status

#开机启动

chkconfig mysqld on


3.授权

#修改登陆密码并授权外网段能使用hua登陆mysql,密码均为123456

#hua为了安全起见账号只能在局域网内登陆,因为密码过于简单,外网请设置复杂密码

mysql -uroot

set password for'root'@'localhost' = password('123456');

GRANT ALL PRIVILEGES ON *.*TO 'hua'@'192.168.%.%' IDENTIFIED BY '123456' WITH GRANT OPTION;

flush privileges;

\q

#测试mysql登陆

mysql -uroot -p

#输入密码123456

show databases;

\q

#用本机win测试一下远程登陆情况,我这里用的是SQLyog客户端(也可以用Navicat for MySQL)

#提示“Connection

successful”表示测试连接成功,如下图所示:


五、安装tomcat(二进制)

5.1.安装(二进制)

#按照tomcat官方建议用二进制文件安装

wgethttp://mirror.bit.edu.cn/apache/tomcat/tomcat-8/v8.5.20/bin/apache-tomcat-8.5.20.tar.gz

mkdir /disk1/app

tar -xf apache-tomcat-8.5.20.tar.gz

mv apache-tomcat-8.5.20 /disk1/app/tomcat-8.5.20

#建立软件链接方便以后升级和维护

ln -s /disk1/app/tomcat-8.5.20 /disk1/app/tomcat

5.2.设置环境变量

echo 'export PATH=$PATH:/disk1/app/tomcat/bin' >>/etc/profile.d/tomcat.sh

cat /etc/profile.d/tomcat.sh

#使用环境变量生效

source /etc/profile.d/tomcat.sh

5.3.启动tomcat

/disk1/app/tomcat/bin/catalina.sh

--help

#启动服务

#/app/tomcat/bin/catalina.sh start

catalina.sh start

sleep 3

netstat -atlnp |grep 8080

#测试结果:

打开浏览器输入http://192.168.0.75:8080

5.4.设置开机启动脚本

vi /etc/init.d/tomcat

#添加如下内容

#!/bin/bash

#chkconfig:

35 85 15

#description:auto_run

#注意路径尾部没有"/"符号

JAVA_HOME=/usr/java/jdk1.8.0_144

TOMCAT1_HOME=/disk1/app/tomcat

################################################

start_tomcat=$TOMCAT1_HOME/bin/startup.sh

stop_tomcat=$TOMCAT1_HOME/bin/shutdown.sh


start() {

    echo -n"Starting tomcat1: "

    ${start_tomcat}

    echo"tomcat1 start ok"

}


stop() {

    echo -n"Shutdown tomcat1"

    ${stop_tomcat}

    echo"tomcat1 stop ok"

}


#how we were called


case "$1" in

    start)

        start

        ;;

    stop)

        stop

        ;;

    restart)

        stop

        sleep 5

        start

        ;;

    *)

        echo"Usage: $0 {start|stop|restart}"

esac

exit 0

:wq保存退出


chmod +x /etc/init.d/tomcat

/etc/init.d/tomcat start

/etc/init.d/tomcat stop

/etc/init.d/tomcat restart


#设置开机启动

chkconfig --add tomcat

chkconfig tomcat on


5.测试

cd /disk1/app/tomcat/webapps/ROOT/

echo "this is a html of tomcat root ">t1.html

#如果能打开说明默认的路径放对了

http://192.168.8.165:8080/t1.html

#建立jsp测试页面

cat>t1.jsp<

<%@ page

contentType="text/html;charset=UTF-8" language="java" pageEncoding="utf-8"

%>

Hello</p> <p>World

jsp display:

<%

out.println("this is a

jsp");

%>

EOF

cat t1.jsp

#如果在浏览器输入http://192.168.3.165:8080/t1.jsp

#能显示如下页面则表示运行jsp成功


5.6.修改tomcat配置

cd ../../conf/

cp server.xml server.xml.orig

vim server.xml +148

....

在之前添加

#在实际工作中我们一般不是这样的话,一般是建立虚拟主机,所以把上面的注解掉

# localhost表示主机名,会自动在Catalina下生成目录,如果添加多一个主机一般会在Catalina

#目录下生成一个以主机命名的目录,如果没有手工建立即可,注意目录权限。

cd

/disk1/app/tomcat/conf/Catalina/localhost/

#因路径为根目录,所在文件名必需是ROOT.xml,如果是非根目录可以是其它

cat>ROOT.xml<

EOF

cat ROOT.xml

#注:

添加有时会出问题,所以我注解掉。


#重启tomcat

/etc/init.d/tomcat restart

#如果重启报错,如下:

可以把ROOT.xml先mv ROOT.xml  ROOT.xml.bad,手工杀掉进程,能正常访问再用把配置文件改回来

mv ROOT.xml  ROOT.xml.bad

mv ROOT.xml.bad ROOT.xml

ps -ef|grep tomcat|grep -v grep|awk'{print $2}'|xargs kill

/etc/init.d/tomcat restart

#正常访问后再执行下面命令

mv ROOT.xml.bad ROOT.xml

/etc/init.d/tomcat restart


5.7.测试JSP

mkdir -p /disk1/www/hualinux.com

cd /disk1/www/hualinux.com/

#添加如下内容

cat> index.jsp<

Hello</p> <p>World

jsp display:

<%

out.println("this is index.jsp");

%>

EOF

cat index.jsp

/etc/init.d/tomcat restart

#测试tomcat本身能否访问

http://192.168.8.165:8080/t2.jsp

5.8.配置nginx代理访问tomcat

         这里通过配置nginx反代理访问tomcat的8080端口,在本机上为了加速访问本地127.0.0.1的IP地址。

cd /etc/nginx/conf.d/

cp default.conf

default.conf.orig

vim default.conf

server {

    listen      80;

    server_name www.hualinux.com hualinux.com;


    #charset koi8-r;

    #access_log /var/log/nginx/host.access.log main;


    location / {

        proxy_pass   http://127.0.0.1:8080;

        proxy_redirect     off;

        proxy_set_header   Host            $host;

        proxy_set_header   X-Real-IP        $remote_addr;

        proxy_set_header   X-Forwarded-For  $proxy_add_x_forwarded_for;

        #root  /usr/share/nginx/html;

        #index index.html index.htm;

    }

         ...

}

#按如下图进行修改

nginx -t

/etc/init.d/nginx reload


#再测试通过nginx是否能访问

#先绑定本机host文件192.168.0.75

www.hualinux.com hualinux.com

#如果在浏览器输入http://www.hua.com

也可以直接通过IP地址访问


可能有人还问我能不能直接在tomcat上配置域名进行访问,答案是肯定的,只要在server.xml添加多一个就行,我们不建议直接把tomcat当web用来,第9点会提到。

         现在我们直接在tomcat中配置多一个二级域名叫t1.hualinux.com,操作如下:

cd /disk1/app/tomcat/conf

cp server.xml  server.xml.orig

vim server.xml +148

复制一份 ...标签进行修改,如下图:

注:如果要配置多域名可以在下添加“”标签,如

t.hualinux.com

#重启生效

/etc/init.d/tomcat restart

#配置网站

cd Catalina/t1.hualinux.com/

cat>ROOT.xml<

docBase="/disk1/www/t1.hualinux.com" debug="0"

reloadable="true" crossContext="true">

EOF

cat ROOT.xml

/etc/init.d/tomcat restart

#建立网站目录及jsp文件

mkdir -pv /disk1/www/t1.hualinux.com

cd /disk1/www/t1.hualinux.com

cat> index.jsp<

Hello</p> <p>World

jsp display:

<%

out.println("this is

t1.hualinux.com index.jsp");

%>

EOF

cat index.jsp


#绑定本机win的host文件,添加多记得保存!

192.168.3.75 www.hualinux.com

hualinux.com t1.hualinux.com t.hualinux.com

#打开浏览器访问tomcat试下,如果无法访问请重启一下tomcat,等10s这样再访问。

浏览器输入“http://t1.hualinux.com:8080”结果如下:

有人又问了,如果我的tomcat是多站点的怎搞?

方法一:

在nginx中配置多个反向代理,如

location / {

        proxy_pass   http://t1.hualinux.com:8080;

                   ...

    }

 location / {

        proxy_pass   http://t2.hualinux.com:8080;

                   ...

    }

方法二:

如果tomcat要用ip访问那么就要在tomcat配置成二级目录方式,这样nginx反代指点到二级目录就行了,如下形式

 location / {

        proxy_pass   http://127.0.0.1:8080/projectA/;

                   ...

    }

 location / {

        proxy_pass   http://t2.hualinux.com:8080/projectB/;

                   ...

    }


5.9.关于tomcat前面加web的疑问

可能有人会有这样的疑问,tomcat本身不也可以做web吗,为什么还要在前面加一个代理。

因为:

         tomcat是java写的,java支持多线程,所以线程也不错的,如果既处理web请求又处理动态请求会很繁忙,所以在前面加多一个反代理nginx或apache,用于接受用户请求,把.jsp请求转到tomcat中。nginx处理静态页面的处理速度会比tomcat快很多,就像工厂的流水线一样,让专业的人做专业的事,这样效率和速度会高很多。

         tomcat因用的是java编写,JVM实例的创建和撤销要比PHP进程代价要大的多的多,比nginx代价更大,如果直接用tomcat也参与处理web请求,并发理大的时候性能严重受影响。



七、让java支持mysql

7.1.下载支持mysql的java插件

#去mysql官网下载mysql-connector-java插件,它包括JDBC

#https://dev.mysql.com/downloads/connector/j/

cd /disk1/tools

wget https://cdn.mysql.com//Downloads/Connector-J/mysql-connector-java-5.1.43.tar.gz

tar -xf mysql-connector-java-5.1.43.tar.gz

cd mysql-connector-java-5.1.43

cp mysql-connector-java-5.1.43-bin.jar /disk1/app/tomcat/lib/

ll /disk1/app/tomcat/lib/|grep mysql

#配置这个的目的是让你的java应用程序找到连接mysql的驱动。

#拷贝这一步就是为JSP连接数据库配置驱动。

#重启tomcat,使其生效

/etc/init.d/tomcat restart

7.2.建立数据库

         为了测试我建议了一个hua的数据库,有一张t1表,随便插入些数据,如下图:

#操作如下:

vi hua_t1.sql

#添加如下内容

CREATE DATABASE /*!32312 IF NOT

EXISTS*/`hua` /*!40100 DEFAULT CHARACTER SET utf8 */;

USE `hua`;

DROP TABLE IF EXISTS `t1`;


CREATE TABLE `t1` (

 `id` int(6) unsigned NOT NULL DEFAULT '0',

 `sid` int(6) NOT NULL,

 `name` char(10) NOT NULL,

 `yuwen` float DEFAULT '0',

 `shuxue` float DEFAULT '0',

 `sex` char(2) NOT NULL DEFAULT '男',

 `zhiwei` char(6) NOT NULL DEFAULT '学生',

 `login_time` datetime DEFAULT NULL,

 `exit_time` datetime DEFAULT NULL

) ENGINE=InnoDB DEFAULT

CHARSET=utf8;


/*Data for the table `t1` */


insert  into`t1`(`id`,`sid`,`name`,`yuwen`,`shuxue`,`sex`,`zhiwei`,`login_time`,`exit_time`)values

(1,1,'张三',51,65,'男','学生','2016-10-26 10:00:01','2016-10-26 19:00:01'),

(2,2,'李四',71,0,'男','学生','2016-10-26 10:10:01','2016-10-26 19:30:01'),

(3,3,'王五',87.6,90,'男','学生','2016-10-26 10:10:01','2016-10-26 19:30:01'),

(4,4,'陈六',55.9,88,'男','学生','2016-10-26 10:10:01','2016-10-26 21:30:01'),

(5,0,'谢九',77,59,'男','学生','2017-01-09 10:05:01','2017-01-09 19:10:01'),

(6,6,'天天',45,90,'男','学生','2017-01-05 09:10:01','2016-10-26 19:30:01'),

(7,7,'开心',70,100,'女','学生','2017-01-02 09:10:01','2016-10-26 19:05:01'),

(8,8,'乐儿',65,50,'女','音乐委','2016-10-26 10:10:01','2016-10-26 19:30:01'),

(9,9,'乐乐',88,29.5,'女','学生','2017-01-09 10:10:01','2017-01-09 19:10:01'),

(10,10,'笑笑',73,69,'女','学生','2016-10-26 10:10:01','2016-10-26 19:30:01'),

(11,11,'fly',90,89,'男','学生','2017-01-09 10:10:01','2017-01-09 19:10:01'),

(12,12,'乐天',90,70,'男','副班长','2017-01-09 10:10:01','2017-01-09 19:10:01'),

(13,13,'云儿',95,65,'女','学生','2016-10-26 10:10:01','2016-10-26 19:30:01'),

(14,14,'伊洛',14,70,'男','班长','2017-01-09 10:10:01','2017-01-09 19:10:01'),

(15,15,'abc',86,98,'男','学生','2016-10-26 10:10:01','2016-10-26 19:30:01'),

(16,16,'菲菲',90,99,'女','学习委','2017-01-09 10:15:01','2017-01-09 19:10:01'),

(17,19,'mm',71,61,'女','学生','2017-01-09 10:10:01','2017-01-09 19:10:01'),

(18,18,'meiei',98,61,'男','学生','2017-01-09 10:10:01',NULL);

mysql -uroot -p

#查询一下表情况

mysql -uroot -p -e 'usehua;select * from t1;'


7.3.建立简单查询数据库的jsp文件

#为了方便我只写了查询前3个字段的

cd /disk1/www/hualinux.com/

cat>mysql.jsp<

<%@ page

contentType="text/html;charset=UTF-8" language="java"

pageEncoding="UTF-8" %>

<%@ page

import="com.mysql.jdbc.Driver" %>

<%@ page import="java.sql.*"

%>

<%

//加载驱动程序  

String driverName="com.mysql.jdbc.Driver";

//数据库信息 

String userName="root";

//密码  

String userPasswd="123456";

//数据库名  

String dbName="hua";

//表名  

String tableName="t1";

//将数据库信息字符串连接成为一个完整的url(也可以直接写成url,分开写是明了可维护性强)  


String url="jdbc:mysql://localhost/"+dbName+"user="+userName+"&password="+userPasswd;

Class.forName("com.mysql.jdbc.Driver").newInstance();

Connection conn=DriverManager.getConnection(url);

Statement stmt =conn.createStatement();

String sql="SELECT * FROM"+tableName;

ResultSet rs =stmt.executeQuery(sql);

out.print("id");

out.print("|");

out.print("sid");

out.print("|");

out.print("name");

out.print("
");

while(rs.next()) {

out.print(rs.getString(1)+"

");

out.print("|");

out.print(rs.getString(2)+"

");

out.print("|");

out.print(rs.getString(3));

out.print("
");

}

out.print("
");

out.print("ok, Database

Query Successd!");

rs.close();

stmt.close();

conn.close();

%>

EOF

cat mysql.jsp

效果如下图所示:

你可能感兴趣的:(0基础自学linux运维-2.4-centOS6.5安装LNMT)