Linux部署

前言

DW! X 是一款以 JAVA 为编程语言,以 MySQL 为数据库,并使用 Apache Tomcat 提供 web 服务的产品。要搭建 DW! X 站点,服务器必须安装由 JAVA、MySQL、Apache Tomcat 构成的环境。

Linux 服务器部署时,需要按照一定的部署顺序,即:

  系统环境初始化 -> Apache Tomcat、MySQL、JAVA 环境包下载 ->  Apache Tomcat、MySQL、JAVA 环境包安装 -> 项目部署与发布

下面以在 Linux 服务器上部署DW为例,演示部署的具体过程。

注:本说明主要是针对DW项目的部署,对于linux服务器的更多操作问题,大家可以自行学习。

系统约定

约定名
软件源代码包存放位置 /usr/local/src
Tomcat,Mysql,JDK安装目录 /usr/local/dw/software_name
Mysql 数据库位置 /data/Mysql
Tomcat 网站根目录 /data/wwwwroot/
Tomcat 虚拟机日志 /data/wwwwroot/logs
运行账号 /www:www

系统准备

一台装有linux系统的服务器,如果没有的话,可以去阿里云或百度云平台去购买很方便。

阿里购买地址:

https://www.aliyun.com/product/ecs/?spm=5176.7960203.237031.14.u6rbDH

百度购买地址:

https://bce.baidu.com/product/bcc.html

系统选择CentOS,最新版本就好。

创建 web 运行用户

groupadd www

useradd -g www www

mkdir -p /data/wwwroot

chmod +w /data/wwwroot

chown www:www /data/wwwroot -R

JAVA环境配置

JAVA JDK

推荐版本 1.6以上,下载地址为

http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html

下载JDK

从上面提到的官方地址获得下载到本地,然后使用SCP上传到服务器

➜  ~ 
➜  ~ scp Downloads/jdk-8u91-linux-x64.tar.gz root@112.74.110.139:/root/
root@112.74.110.139's password: 
jdk-8u91-linux-x64.tar.gz                                                        100%  173MB 881.2KB/s   03:21   

也可以从我们提供的地址上直接wget下载,wget地址

wget http:c.ss.net/jdk.tt

解压JDK

这时候在root目录下面就有了jdk-8u91-linux-x64.tar.gz的压缩包,下一步解压此包到/usr/local/目录

[root@iZ9416749krZ ~]# cd /usr/local/
[root@iZ9416749krZ local]# tar -zxvf /root/jdk-8u91-linux-x64.tar.gz 

配置JDK的环境变量

至此JDK已经安装完成,但还没有配置系统环境变量,这时候如果我们tomcat要想使用就得明确指定JDK存放的位置。

现在我们把jdk加入到系统环境中,变成全局变量。

[root@iZ9416749krZ jdk1.8.0_91]# pwd 
/usr/local/jdk1.8.0_91
[root@iZ9416749krZ jdk1.8.0_91]# vi /etc/profile
[root@iZ9416749krZ jdk1.8.0_91]# 

配置:在/etc/profile文件末尾行添加

#set java environment
JAVA_HOME=/usr/local/jdk1.8.0_91
CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
PATH=$JAVA_HOME/bin:$PATH
export JAVA_HOME CLASSPATH PATH
[root@iZ9416749krZ jdk1.8.0_91]# 
[root@iZ9416749krZ jdk1.8.0_91]# java -version
bash: java: command not found
[root@iZ9416749krZ jdk1.8.0_91]# source /etc/profile
[root@iZ9416749krZ jdk1.8.0_91]# java -version
java version "1.8.0_91"
Java(TM) SE Runtime Environment (build 1.8.0_91-b14)
Java HotSpot(TM) 64-Bit Server VM (build 25.91-b14, mixed mode)
[root@iZ9416749krZ jdk1.8.0_91]# 

至此JDK环境配置完成,下一步我们将配置tomcat服务器。

Tomcat程序配置

Apache Tomcat

推荐版本 6.0以上,下载地址为 http://tomcat.apache.org/

下载Tomcat

从上面提到的官方地址获得下载到本地,然后使用SCP上传到服务器。

➜  ~ 
➜  ~ scp Downloads/apache-tomcat-8.5.3_1.tar.gz root@112.74.110.139:/root/ 
root@112.74.110.139's password: 
apache-tomcat-8.5.3_1.tar.gz                                                     100% 9056KB 823.2KB/s   00:11    
➜  ~ 

也可以从使用wget从官方直接下载

wget http://mirrors.hust.edu.cn/apache/tomcat/tomcat-8/v8.5.3/bin/apache-tomcat-8.5.3.tar.gz

解压Tomcat

将上面得到apache-tomcat-8.5.3.tar.gz 文件解压到 /usr/local


[root@iZ9416749krZ ~]# ls
apache-tomcat-8.5.3_1.tar.gz  jdk-8u91-linux-x64.tar.gz
apache-tomcat-8.5.3.tar.gz    mysql57-community-release-el6-8.noarch.rpm
[root@iZ9416749krZ ~]# cd /usr/local/
[root@iZ9416749krZ local]# 
[root@iZ9416749krZ local]# tar -zxvf /root/apache-tomcat-8.5.3.tar.gz 

启动测试

进入/usr/local/apache-tomcat-8.5.3/bin目录执行

[root@iZ9416749krZ local]# cd apache-tomcat-8.5.3/
[root@iZ9416749krZ apache-tomcat-8.5.3]# ls
bin  conf  lib  LICENSE  logs  NOTICE  RELEASE-NOTES  RUNNING.txt  temp  webapps  work
[root@iZ9416749krZ apache-tomcat-8.5.3]# cd bin/
[root@iZ9416749krZ bin]# ./startup.sh 
Using CATALINA_BASE:   /usr/local/apache-tomcat-8.5.3
Using CATALINA_HOME:   /usr/local/apache-tomcat-8.5.3
Using CATALINA_TMPDIR: /usr/local/apache-tomcat-8.5.3/temp
Using JRE_HOME:        /usr/local/jdk1.8.0_91
Using CLASSPATH:       /usr/local/apache-tomcat-8.5.3/bin/bootstrap.jar:/usr/local/apache-tomcat-8.5.3/bin/tomcat-juli.jar
Tomcat started.
[root@iZ9416749krZ bin]# 

控制台输出Tomcat started说明启动成功,再通过终端浏览器访问IP地址:

112.74.110.139:8080

会出现如下页面说明所有基本配置都成功

pic

因为这部分主要是说明tomcat基本安装,后面项目部署将介绍对tomcat更多的配置。

Mysql程序安装

Mysql

推荐稳定版 5.5.18,下载地址为 http://www.mysql.com/downloads/mysql/

文中的配置文件和脚本限于篇幅,请到以下地址下载(仅支持 Linux 下使用 wget 下载)

先跟大家介绍最简单的通过yum快速安装MYSQL

系统环境:aliyun ecs Centos 6.5

1、 下载二进制安装文件,wget下载=或者下载后上传到服务器端。

wget镜像下载

wget http://mirrors.sohu.com/mysql/MySQL-5.7/mysql-5.7.13-linux-glibc2.5-x86_64.tar.gz

2、 解压下载文件

cd 到 /usr/local/,然后再使用tar命令解压

cd /usr/local/

tar -zxvf /root/mysql-5.7.13-linux-glibc2.5-x86_64.tar.gz

3、 对解压后文件重命名

继续在/usr/local目录,执行对解压完成文件的重命名为 mysql 文件夹

mv mysql-5.7.13-linux-glibc2.5-x86_64.tar.gz mysql

4、创建linux系统账号,用于运行mysql

groupadd mysql

useradd -r -g mysql -s /bin/false mysql

id mysql

5、创建存放数据文件的目录

创建/db/data/mysql目录来存放数据库

mkdir -p /db/mysql/data

6、分配目录权限

把mysql数据文件目录权限给linux系统的mysql用户

chown mysql:mysql -R /db/mysql/data

7、初始化安装

在/usr/local/mysql/目录下执行

cd /usr/local/mysql

./bin/mysql_install_db --user=mysql --basedir=/usr/local/mysql --datadir=/db/mysql/data

8、配置cnf

配置/etc/my.cnf文件

查看/etc/下有没有my.cnf文件,没有则复制一份过去

cp -a /usr/local/mysql/support-files/my-default.cnf /etc/my.cnf

vi /etc/my.cnf

pic

修改my.cnf内容为

[mysqld]

datadir = /db/mysql/data

socket = /db/mysql/data/mysql.sock

user = mysql

[client]

socket = /db/mysql/data/mysql.sock

9、注册mysqld

cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld

chkconfig --list mysqld

chkconfig --add mysqld

chkconfig --list mysqld

10、启动mysql服务

service mysqld start

11、登录mysql并修改账号

取得初始登录密码

cat /root/.mysql_secret

登录

./bin/mysql -u root -p

登录后修改密码

set password for 'root'@'localhost'=password('LSWxQ#&e*90t_newpwd')

12、配置环境变量

如果顺利登录,并修改完成密码说明基础安装都已经成功,下面把mysql/bin目录加入到系统环境

退出mysql登录

exit;

修改/etc/profile文件使其永久性生效,并对所有系统用户生效,在文件末尾加上如下两行代码

修改profile文件

vi /etc/profile

profile文件修改的内容,在文件最后追加如下内容

pic

PATH=$PATH:/usr/local/mysql/bin/

export PATH

source /etc/profile

echo $PATH

就可以直接使用mysql命令登录数据库

mysql -u root -p

进行登录

直此mysql基本安装都已经完成,下面将进行项目数据库创建与数据导入

以下是整个安装过程执行快照

mysql安装程序下载

[root@iZ9487tkhvlZ ~]# 
[root@iZ9487tkhvlZ ~]# wget http://mirrors.sohu.com/mysql/MySQL-5.7/mysql-5.7.13-linux-glibc2.5-x86_64.tar.gz
..........
100%[=========================================================================================>] 639,864,682 1.39M/s   in 7m 15s

2016-07-01 16:39:59 (1.40 MB/s) - “mysql-5.7.13-linux-glibc2.5-x86_64.tar.gz” saved [639864682/639864682]

[root@iZ9487tkhvlZ ~]# 
[root@iZ9487tkhvlZ ~]# cd /usr/local/
[root@iZ9487tkhvlZ local]# tar -zxvf /root/mysql-5.7.13-linux-glibc2.5-x86_64.tar.gz 
mysql-5.7.13-linux-glibc2.5-x86_64/
mysql-5.7.13-linux-glibc2.5-x86_64/README
mysql-5.7.13-linux-glibc2.5-x86_64/lib/
mysql-5.7.13-linux-glibc2.5-x86_64/lib/libmysqlclient.a
mysql-5.7.13-linux-glibc2.5-x86_64/lib/libmysqlclient.so
mysql-5.7.13-linux-glibc2.5-x86_64/lib/libmysqlservices.a
mysql-5.7.13-linux-glibc2.5-x86_64/lib/mecab/
mysql-5.7.13-linux-glibc2.5-x86_64/lib/mecab/dic/
..........

[root@iZ9487tkhvlZ local]# ls
aegis  bin  etc  games  include  lib  lib64  libexec  mysql-5.7.13-linux-glibc2.5-x86_64  sbin  share  src
[root@iZ9487tkhvlZ local]# mv mysql-5.7.13-linux-glibc2.5-x86_64 mysql
[root@iZ9487tkhvlZ local]# ls
aegis  bin  etc  games  include  lib  lib64  libexec  mysql  sbin  share  src
[root@iZ9487tkhvlZ local]#

[root@iZ9487tkhvlZ local]# 
[root@iZ9487tkhvlZ local]# groupadd mysql
[root@iZ9487tkhvlZ local]# cat /etc/group |grep mysql
mysql:x:500:
[root@iZ9487tkhvlZ local]# useradd -r -g mysql -s /bin/false mysql
[root@iZ9487tkhvlZ local]# id mysql
uid=498(mysql) gid=500(mysql) groups=500(mysql)
[root@iZ9487tkhvlZ local]#

[root@iZ9487tkhvlZ local]# mkdir -p /db/mysql/data
[root@iZ9487tkhvlZ local]# 
[root@iZ9487tkhvlZ local]# chown mysql:mysql -R /db/mysql/data/

[root@iZ9487tkhvlZ local]# cd /db/mysql/
[root@iZ9487tkhvlZ mysql]# ll
total 4
drwxr-xr-x 2 mysql mysql 4096 Jul  1 16:53 data
[root@iZ9487tkhvlZ mysql]#

[root@iZ9487tkhvlZ mysql]# cd /usr/local/mysql/
[root@iZ9487tkhvlZ mysql]# ./bin/mysql_install_db --user=mysql --basedir=/usr/local/mysql --datadir=/db/mysql/data
2016-07-01 16:55:58 [WARNING] mysql_install_db is deprecated. Please consider switching to mysqld --initialize
2016-07-01 16:56:04 [WARNING] The bootstrap log isn't empty:
2016-07-01 16:56:04 [WARNING] 2016-07-01T08:55:58.177072Z 0 [Warning] --bootstrap is deprecated. Please consider using --initialize instead

[root@iZ9487tkhvlZ mysql]#

[root@iZ9487tkhvlZ mysql]# 
[root@iZ9487tkhvlZ mysql]# vi /etc/my.cnf 
[root@iZ9487tkhvlZ mysql]# vi /etc/my.cnf 
[root@iZ9487tkhvlZ mysql]# 
[root@iZ9487tkhvlZ mysql]# 
[root@iZ9487tkhvlZ mysql]# cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
[root@iZ9487tkhvlZ mysql]# chkconfig --list mysqld
service mysqld supports chkconfig, but is not referenced in any runlevel (run 'chkconfig --add mysqld')
[root@iZ9487tkhvlZ mysql]# chkconfig --add mysqld
[root@iZ9487tkhvlZ mysql]# chkconfig --list mysqld
mysqld          0:off 1:off 2:on  3:on  4:on  5:on  6:off
[root@iZ9487tkhvlZ mysql]# 
[root@iZ9487tkhvlZ mysql]# 
[root@iZ9487tkhvlZ mysql]# service mysqld start
Starting MySQL.                                            [  OK  ]
[root@iZ9487tkhvlZ mysql]# cat /root/.mysql_secret 
# Password set for user 'root@localhost' at 2016-07-01 16:55:58 
p:XQKM*kVav/
[root@iZ9487tkhvlZ mysql]# ./bin/mysql -u root -p
Enter password: 
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 2
Server version: 5.7.13

Copyright (c) 2000, 2016, 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> set password for 'root'@'localhost'=password('LSWxQ#&e*90t_newpwd')
    -> ;
Query OK, 0 rows affected, 1 warning (0.00 sec)

mysql> exit;
Bye
[root@iZ9487tkhvlZ mysql]#

Bye
[root@iZ9487tkhvlZ mysql]# vi /etc/profile
[root@iZ9487tkhvlZ mysql]# source /etc/profile
[root@iZ9487tkhvlZ mysql]# echo $PATH
/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin:/usr/local/mysql/bin/
[root@iZ9487tkhvlZ mysql]# 
[root@iZ9487tkhvlZ mysql]# mysql -u root -p
Enter password: 
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 3
Server version: 5.7.13 MySQL Community Server (GPL)

Copyright (c) 2000, 2016, 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>

项目部署

前面已经介绍如何搭建基本的项目运行环境,下面我们将介绍如何配置及部署项目

mysql参数配置

配置my.cnf,这是mysql的参数文件

http://c.diaowen.net/wget/jdk-8u91-linux-x64.tar.gz

http://c.diaowen.net/wget/apache-tomcat-8.5.3.tar.gz

http://c.diaowen.net/wget/mysql57-community-release-el6-8.noarch.rpm

1、添加mysql组与mysql用户,用于设置mysql安装目录文件所有者和所属组

  groupadd mysql

  useradd -g mysql -s /sbin/nologin -M mysql

-s /sbin/nologin 指账号没法通过shell登录,

-M 指不创建 mysql用户目录,也就是不创建 /home/mysql就个目录

mysql数据库配置

将Mysql默认数据库目录更改为/data/mysql/

mkdir -p /data/mysql/mysql3306/{data,logs,tmp}

tomcat参数配置

tomcat项目配置


项目发布