[java手把手教程][第二季]java后端博客系统文章系统——No8

项目github地址:github.com/pc859107393…

实时项目同步的地址是国内的码云:git.oschina.net/859107393/m…

我的简书首页是:www.jianshu.com/users/86b79…

上一期是:[手把手教程][第二季]java 后端博客系统文章系统——No7

行走的java全栈
工具
  • IDE为idea16
  • JDK环境为1.8
  • gradle构建,版本:2.14.1
  • Mysql版本为5.5.27
  • Tomcat版本为7.0.52
  • 流程图绘制(xmind)
  • 建模分析软件PowerDesigner16.5
  • 数据库工具MySQLWorkBench,版本:6.3.7build
本期目标

在Linux上面发布项目

思路解析

在win上面我们发布java web项目我们的大致思路如下:

① 配置JDK

② 安装MySQL

③ 安装Tomcat

④ 发布项目

⑤ 安装Nginx等···

但是我们这里忽略了最重要的初始第一步,what?其实不论我们在什么设备上面进行操作,第一件事是需要连接到设备上面。

但是我们平常做的操作就是一直在操作我们可以直接触碰到的物理机,也就是说我们通过直接操作物理机连接了我们面前的电脑设备。

所以,当我们需要将项目发布到服务器的时候,我们需要通过手段连接到服务器设备上面。常见的发布项目的连接手段有:

  • 远程连接(win系统服务器常用)
  • ssh连接( linux/mac服务器,可以直接通过Linux/mac的终端连接 )
  • SFTP连接(基于SSH连接的文件传输协议)
  • 等···

通过上面的介绍后,我们也就明白要想连接上Linux/mac的服务器,我们需要通过ssh链接或者SFTP连接上服务器。


SSH连接服务器

既然我们要发布项目到服务器,首先我们需要在本地连接上远程服务器,连接成功的截图如下:

ssh连接服务器成功

我们可以看到上面途中我用红色矩形圈出来一部分东西,同时在右边写上了编号。

  • ①这里的命令是使用ssh协议登录服务器的意思。
ssh 10.211.55.7 -l pc
//这里的意思是使用ssh协议、远程服务器IP地址是10.211.55.7、被登录的用户是pc

//当然我们可以简单点,不指定用户登录如: 
ssh 10.211.55.7 
//但是这样的话终端中会询问使用什么用户登录。 所以推荐使用第一种指定用户登录的方式。复制代码
  • ②提示SSH连接的密钥信息,输入yes继续,或者输入no结束。
  • ③输入登录用户的密码,该密码不会再终端中显示。

当一切需要的信息都正确后,我们就能链接到服务器了。当然我们通过终端连接服务器成功后,我们终端中的操作就相当于本地命令操作。所以,我们需要了解Linux常用命令

正如上图所示,我们已经连接成功服务器,接着就应该执行上面的五步。

安装和配置JDK

a. 检测jdk是否存在,在终端中输入java -version后如下所示:

[pc@centos-linux ~]$ java -version
java version "1.7.0_131"
OpenJDK Runtime Environment (rhel-2.6.9.0.el6_8-x86_64 u131-b00)
OpenJDK 64-Bit Server VM (build 24.131-b00, mixed mode)
[pc@centos-linux ~]$复制代码

检查java版本的命令执行后我们可以看到对应的提示信息如下:

  • 已经存在JDK
  • JDK版本是1.7.0_131
  • 最重要的是JDK不是我们常用的 oracle JDK,而是开源的OpenJDK

这个时候我们需要处理什么呢?严格的来说,我们需要将服务器上面的jdk置换为我们开发版本所使用的JDK,这样我们能避免很多不必要的问题,所以我们应该执行后续步骤,也就是卸载OpenJDK,然后安装和配置oracle JDK。

b. 检测openJDk,并卸载,在终端输入 rpm -qa | grep java 后如下:

[pc@centos-linux ~]$ rpm -qa | grep java
java-1.6.0-openjdk-1.6.0.41-1.13.13.1.el6_8.x86_64
tzdata-java-2017a-1.el6.noarch
java-1.7.0-openjdk-1.7.0.131-2.6.9.0.el6_8.x86_64
[pc@centos-linux ~]$ 
//注意:
    //rpm是小红帽下面的包管理,相关的请自行百度
    //rpm -qa 是查询本机当前系统下所有的Linux软件包
    // | grep java 是管道查询java相关的包
    //具体的详细信息请自行百度,不再多余赘述复制代码

在上面的命令运行结果中我们可以看到跟java相关的东西有三个,但是有一个tzdata-java-2017a-1.el6.noarch我们不知道是什么,既然我们不知道那么我们就不管它,直接卸载OpenJDk。

  • 先卸载 openjdk-1.7
  • 再卸载 openjdk-1.6
  • 既然在终端中操作,那么我们接着就应该输入命令来删除jdk,如下:
[pc@centos-linux ~]$ rpm -e --nodeps java-1.7.0-openjdk-1.7.0.131-2.6.9.0.el6_8.x86_64
error: can't create transaction lock on /var/lib/rpm/.rpm.lock (Permission denied)
[pc@centos-linux ~]$ 
// 这里提示我们不能进行卸载操作,原因是我们没有足够的权限。
//所以我们接着使用root用户来卸载,如下:
[pc@centos-linux ~]$ su
Password: 
[root@centos-linux pc]# rpm -e --nodeps java-1.7.0-openjdk-1.7.0.131-2.6.9.0.el6_8.x86_64

[root@centos-linux pc]# 
//这时候按照道理讲我们应该已经删除了JDK1.7,不过为了验证我们还是需要执行查看java包的命令,如下:

[root@centos-linux pc]# rpm -qa | grep java
java-1.6.0-openjdk-1.6.0.41-1.13.13.1.el6_8.x86_64
tzdata-java-2017a-1.el6.noarch
[root@centos-linux pc]# 

// 我们可以看到已经成功的卸载了jdk1.7,接着卸载jdk1.6再验证

[root@centos-linux pc]# rpm -e --nodeps java-1.6.0-openjdk-1.6.0.41-1.13.13.1.el6_8.x86_64
[root@centos-linux pc]# rpm -qa | grep java
tzdata-java-2017a-1.el6.noarch
[root@centos-linux pc]#复制代码

上面的操作中我们已经卸载完成了jdk,涉及到的主要命令有:

  • rpm的管道查询java包,命令是:rpm -qa | grep java
  • rpm卸载java包,命令是: rpm -e --nodeps 完整包名

c. 安装oracleJDK

我们来回顾下我们在win上面安装jdk的步骤。

  1. 下载jdk
  2. 找到jdk安装文件并运行该文件
  3. 设置jdk存放目录,等待安装程序执行完成
  4. 配置环境变量
  5. 重启电脑使环境变量生效

通过上面的总结我们可以大致明白Linux的步骤应该是类似的,可能只是在一些细节上面不一样。let's go!

第一步: 上传jdk安装包到服务器。因为我是mac系统,我就直接使用了图形化工具Cyberduck来进行SFTP连接,如下:

Cyberduck连接到服务器

在左上角的新建连接那里我们可以点击后新建连接,然后在弹出框里面输入对应的信息(服务器地址、用户名、密码)就可以创建连接成功。接着我们开始上传文件:

Cyberduck连接成功后上传文件第一步

我们在图形化界面中,可以手动选择指定目录到/usr/src/java,当然也可以是其他目录。这个图形化界面基本操作就和文件浏览器一样,主要快捷功能都在鼠标右键里面。

文件上传成功后,我们可以看到信息如下:

Cyberduck上传文件成功

第二步: 安装jdk到服务器。这个时候我们切换到终端来继续操作。输入安装指令如下:

[root@centos-linux java]# ls
jdk-8u131-linux-x64.rpm
[root@centos-linux java]# chmod +x jdk-8u131-linux-x64.rpm
[root@centos-linux java]# rpm -ivh jdk-8u131-linux-x64.rpm
Preparing...                ########################################### [100%]
   1:jdk1.8.0_131           ########################################### [100%]
Unpacking JAR files...
    tools.jar...
    plugin.jar...
    javaws.jar...
    deploy.jar...
    rt.jar...
    jsse.jar...
    charsets.jar...
    localedata.jar...
[root@centos-linux java]#复制代码

首先我们先给可执行文件(jdk的安装包)授予可执行权限,代码为: chmod +x 可执行文件完整路径和名称。 当然如果在当前目录下,则是直接使用: chmod +x 文件名。

接着,我们使用rpm命令执行安装程序,命令为:rpm -ivh 文件名。

到这里我们的JDK安装程序基本是完成了。接着我们应该配置环境变量。

第三步骤: 配置环境变量。 我们先查询安装jdk的目录,具体如下:

[root@centos-linux java]# ls
jdk-8u131-linux-x64.rpm
[root@centos-linux java]# cd ..
[root@centos-linux src]# ls
debug  java  kernels
[root@centos-linux src]# cd ..
[root@centos-linux usr]# ls
bin  games    java  lib64    local  share  tmp
etc  include  lib   libexec  sbin   src
[root@centos-linux usr]# cd java
[root@centos-linux java]# ls
default  jdk1.8.0_131  latest
[root@centos-linux java]# cd jdk1.8.0_131
[root@centos-linux jdk1.8.0_131]# ls
bin        javafx-src.zip  man          THIRDPARTYLICENSEREADME-JAVAFX.txt
COPYRIGHT  jre             README.html  THIRDPARTYLICENSEREADME.txt
db         lib             release
include    LICENSE         src.zip
[root@centos-linux jdk1.8.0_131]# pwd
/usr/java/jdk1.8.0_131复制代码

通过上面的一系列操作,我们拿到了jdk的目录,接下来创建环境变量,输入命令:vi /etc/profile 后结果如下:

# /etc/profile

# System wide environment and startup programs, for login setup
# Functions and aliases go in /etc/bashrc

# It's NOT a good idea to change this file unless you know what you
# are doing. It's much better to create a custom.sh shell script in
# /etc/profile.d/ to make custom changes to your environment, as this
# will prevent the need for merging in future updates.

pathmunge () {
    case ":${PATH}:" in
        *:"$1":*)
            ;;
        *)
            if [ "$2" = "after" ] ; then
                PATH=$PATH:$1
            else
                PATH=$1:$PATH
            fi
    esac
}


if [ -x /usr/bin/id ]; then
    if [ -z "$EUID" ]; then
        # ksh workaround
        EUID=`id -u`
        UID=`id -ru`
    fi
    USER="`id -un`"
    LOGNAME=$USER
    MAIL="/var/spool/mail/$USER"

fi

# Path manipulation
if [ "$EUID" = "0" ]; then
    pathmunge /sbin
    pathmunge /usr/sbin
    pathmunge /usr/local/sbin
else
    pathmunge /usr/local/sbin after
    pathmunge /usr/sbin after
    pathmunge /sbin after
fi

HOSTNAME=`/bin/hostname 2>/dev/null`
HISTSIZE=1000
if [ "$HISTCONTROL" = "ignorespace" ] ; then
    export HISTCONTROL=ignoreboth
else
    export HISTCONTROL=ignoredups
fi

export PATH USER LOGNAME MAIL HOSTNAME HISTSIZE HISTCONTROL

# By default, we want umask to get set. This sets it for login shell
# Current threshold for system reserved uid/gids is 200
# You could check uidgid reservation validity in
# /usr/share/doc/setup-*/uidgid file
if [ $UID -gt 199 ] && [ "`id -gn`" = "`id -un`" ]; then
    umask 002
else
    umask 022
fi

for i in /etc/profile.d/*.sh ; do
    if [ -r "$i" ]; then
        if [ "${-#*i}" != "$-" ]; then
            . "$i"
        else
            . "$i" >/dev/null 2>&1
        fi
    fi
done

unset i
unset -f pathmunge复制代码

在上面的代码中我们没有看到jdk的配置,所以我们接着按一下a键开始输入内容,输入内容如下:

#set java enviroment

JAVA_HOME=/usr/java/jdk1.8.0_131
CLASSPATH=.:$JAVA_HOME/lib.tools.jar
PATH=$JAVA_HOME/bin:$PATH
export JAVA_HOME CLASSPATH PATH复制代码

输入完成后,我们按一下esc退出编辑,接着输入 :wq 退出并保存编辑,最后我们输入命令查看是否写入成功,命令如下:

//查看环境变量配置文件
[root@centos-linux /]# cat /etc/profile
//应用环境变量
[root@centos-linux /]# source /etc/profile复制代码

我们可以看到已经把配置写入环境变量中了,这时候输入:java -version可以看到我们的jdk已经安装完成并且生效。

[root@centos-linux jdk1.8.0_131]# java -version
java version "1.8.0_131"
Java(TM) SE Runtime Environment (build 1.8.0_131-b11)
Java HotSpot(TM) 64-Bit Server VM (build 25.131-b11, mixed mode)
[root@centos-linux jdk1.8.0_131]#复制代码

注意:如果你最后发现所有命令都失效,建议仔细检查profile里面的内容是否有错误修改或者是否插入了非英文状态下的符号

Linux安装JDK总结:

  1. 卸载OpenJDK
  2. 上传JDK的rpm安装包(mac系统使用Cyberduck,win下使用FlashFXP)
  3. ssh中使用命令安装JDK
  4. 配置环境变量
  5. (可选) 删除OpenJDK依赖,添加OracleJDK依赖
  6. 应用环境变量(source /etc/profile)
安装和配置MySQL

通过类比归纳,我们安装软件的步骤都是一样类似的,所以下面简要的介绍MySQL在centos上面的安装。

  1. 检测系统是否存在MySQL,有则卸载,无则进行第二步。
检查mysql是否存在:rpm -qa | grep mysql
卸载mysql: rpm -e --nodeps mysql名称复制代码
  1. 进入MySQL官网选择MySQL Yum Repository,在该页面选择对应的linux版本进行下载对应的安装包。
MySQL官网下载中心连接:https://dev.mysql.com/downloads/repo/yum/

我这里直接执行命令下载:wget http://dev.mysql.com/get/Downloads/MySQL-5.6/MySQL-5.6.22-1.el6.i686.rpm-bundle.tar

解压后安装:rpm -ivh MySQL-server-5.6.22-1.el6.i686.rpm
提示资源缺失,执行命令:

yum install zlib.i686
yum install libaio.so.1
yum install libstdc++.i686

接着执行mysql安装命令,最后顺利安装。提示信息如下:

[root@centos-linux mysql]# rpm -ivh MySQL-server-5.6.22-1.el6.i686.rpm
Preparing...                ########################################### [100%]
   1:MySQL-server           ########################################### [100%]
···省略若干字···
A RANDOM PASSWORD HAS BEEN SET FOR THE MySQL root USER !
You will find that password in '/root/.mysql_secret'.

You must change that password on your first connect,
no other statement but 'SET PASSWORD' will be accepted.
See the manual for the semantics of the 'password expired' flag.

Also, the account for the anonymous user has been removed.

In addition, you can run:

  /usr/bin/mysql_secure_installation

which will also give you the option of removing the test database.
This is strongly recommended for production servers.

See the manual for more instructions.

Please report any problems at http://bugs.mysql.com/

The latest information about MySQL is available on the web at

  http://www.mysql.com

Support MySQL by buying support/licenses at http://shop.mysql.com

New default config file was created as /usr/my.cnf and
will be used by default by the server when you start it.
You may edit this file to change server settings

至此安装基本完成,接着我们需要配置什么呢?看上面的提示信息,可以发现最重要的是mysql密码,接着修改密码如下:

一、 安装mysql连接工具:rpm -ivh MySQL-client-5.6.22-1.el6.i686.rpm
二、提示出错,需要依赖资源:libncurses.so.5 libtinfo.so.5
三、执行命令安装依赖:yum -y install libncurses.so.5 libtinfo.so.5
四、最后再安装mysql连接工具。复制代码
  1. 查看MySQL服务状态,并且确保启动mysql
查看:service mysql status
启动:service mysql start
停止:service mysql stop复制代码
  1. 修改mysql的root密码
查看第一次登陆密码:cat /root/.mysql_secret
登录,并且输入上面的密码: mysql -uroot -p;
更新root密码:SET PASSWORD = PASSWORD('你的密码');复制代码
  1. 开启mysql远程访问(可选)
设置远程访问(使用root密码):
grant all privileges on *.* to 'root' @'%' identified by '123456'; 
flush privileges;

防火墙打开3306端口
开启3306端口:/sbin/iptables -I INPUT -p tcp --dport 3306 -j ACCEPT
保存配置:/etc/rc.d/init.d/iptables save
检测端口状态:/etc/init.d/iptables status复制代码
  1. 设置开机启动mysql服务
加入到系统服务:
chkconfig --add mysql
自动启动:
chkconfig mysql on
查询列表:
chkconfig复制代码
安装和配置Tomcat

根据上面案例和以前的经验,我们得出tomcat是绿色版程序只需要解压到指定目录直接执行就OK。

  1. 下载tomcat到服务器
  2. 解压到 /usr/src/tomcat
  3. 授予可执行文件的可执行权限: chmod 777 *.sh
  4. 启动: ./startup.sh
  5. 查看日志(按下 Ctrl+C 退出当前的阻塞命令):tail -f ../logs/catalina.out
  6. 服务器开放端口:
    开启8080端口:/sbin/iptables -I INPUT -p tcp --dport 8080 -j ACCEPT
    保存配置:/etc/rc.d/init.d/iptables save
    检测端口状态:/etc/init.d/iptables status复制代码

安装套路总结
  1. 应用程序分为两种:① 安装版本 ② 绿色版本

  2. 安装版本:

    • 检测是否存在对应程序:
      rpm -qa | grep 程序名称复制代码
    • 存在对应程序,检查是否符合标准,否则卸载:
      rpm -e --nodeps 上面检查到的程序名称复制代码
    • 上传安装包到服务器(推荐利用SFTP上传)
    • 安装文件,并查看提示信息
    • 出现错误,根据提示信息解决问题(一般是资源依赖失败)
      安装命令:yum -y install 提示信息中出现的缺失的依赖资源(如:libncurses.so.5 libtinfo.so.5,多个资源中使用空格隔开,使用这种方式可以自动扫描包名并且进行加载)复制代码
    • 最后再执行安装程序
    • 还有可选设置(开机启动和服务自启)
  3. 绿色版本:没啥好说的就是上传、解压、设置运行权限(chmod 777 *.sh)


本期文章到此基本结束,至于Nginx设置,粗略的估计放到下一期吧。部署项目的话,直接把war包扔到tomcat的webapps目录下就行了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值