项目github地址:github.com/pc859107393…html
实时项目同步的地址是国内的码云:git.oschina.net/859107393/m…java
个人简书首页是:www.jianshu.com/users/86b79…node
上一期是:[手把手教程][第二季]java 后端博客系统文章系统——No7mysql
在Linux上面发布项目linux
在win上面咱们发布java web项目咱们的大体思路以下:c++
① 配置JDKgit
② 安装MySQLgithub
③ 安装Tomcatweb
④ 发布项目sql
⑤ 安装Nginx等···
可是咱们这里忽略了最重要的初始第一步,what?其实不论咱们在什么设备上面进行操做,第一件事是须要链接到设备上面。
可是咱们日常作的操做就是一直在操做咱们能够直接触碰到的物理机,也就是说咱们经过直接操做物理机链接了咱们面前的电脑设备。
因此,当咱们须要将项目发布到服务器的时候,咱们须要经过手段链接到服务器设备上面。常见的发布项目的链接手段有:
经过上面的介绍后,咱们也就明白要想链接上Linux/mac的服务器,咱们须要经过ssh连接或者SFTP链接上服务器。
既然咱们要发布项目到服务器,首先咱们须要在本地链接上远程服务器,链接成功的截图以下:
咱们能够看到上面途中我用红色矩形圈出来一部分东西,同时在右边写上了编号。
ssh 10.211.55.7 -l pc
//这里的意思是使用ssh协议、远程服务器IP地址是10.211.55.七、被登陆的用户是pc
//固然咱们能够简单点,不指定用户登陆如:
ssh 10.211.55.7
//可是这样的话终端中会询问使用什么用户登陆。 因此推荐使用第一种指定用户登陆的方式。复制代码
当一切须要的信息都正确后,咱们就能连接到服务器了。固然咱们经过终端链接服务器成功后,咱们终端中的操做就至关于本地命令操做。因此,咱们须要了解Linux经常使用命令。
正如上图所示,咱们已经链接成功服务器,接着就应该执行上面的五步。
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,这样咱们能避免不少没必要要的问题,因此咱们应该执行后续步骤,也就是卸载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。
[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,涉及到的主要命令有:
c. 安装oracleJDK
咱们来回顾下咱们在win上面安装jdk的步骤。
经过上面的总结咱们能够大体明白Linux的步骤应该是相似的,可能只是在一些细节上面不同。let's go!
第一步: 上传jdk安装包到服务器。由于我是mac系统,我就直接使用了图形化工具Cyberduck来进行SFTP链接,以下:
在左上角的新建链接那里咱们能够点击后新建链接,而后在弹出框里面输入对应的信息(服务器地址、用户名、密码)就能够建立链接成功。接着咱们开始上传文件:
咱们在图形化界面中,能够手动选择指定目录到/usr/src/java,固然也能够是其余目录。这个图形化界面基本操做就和文件浏览器同样,主要快捷功能都在鼠标右键里面。
文件上传成功后,咱们能够看到信息以下:
第二步: 安装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总结:
经过类比概括,咱们安装软件的步骤都是同样相似的,因此下面简要的介绍MySQL在centos上面的安装。
检查mysql是否存在:rpm -qa | grep mysql
卸载mysql: rpm -e --nodeps mysql名称复制代码
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密码,接着修改密码以下:
1、 安装mysql链接工具:rpm -ivh MySQL-client-5.6.22-1.el6.i686.rpm
2、提示出错,须要依赖资源:libncurses.so.5 libtinfo.so.5
3、执行命令安装依赖:yum -y install libncurses.so.5 libtinfo.so.5
4、最后再安装mysql链接工具。复制代码
查看:service mysql status
启动:service mysql start
中止:service mysql stop复制代码
查看第一次登录密码:cat /root/.mysql_secret
登陆,而且输入上面的密码: mysql -uroot -p;
更新root密码:SET PASSWORD = PASSWORD('你的密码');复制代码
设置远程访问(使用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复制代码
加入到系统服务:
chkconfig --add mysql
自动启动:
chkconfig mysql on
查询列表:
chkconfig复制代码
根据上面案例和之前的经验,咱们得出tomcat是绿色版程序只须要解压到指定目录直接执行就OK。
开启8080端口:/sbin/iptables -I INPUT -p tcp --dport 8080 -j ACCEPT
保存配置:/etc/rc.d/init.d/iptables save
检测端口状态:/etc/init.d/iptables status复制代码
应用程序分为两种:① 安装版本 ② 绿色版本
安装版本:
rpm -qa | grep 程序名称复制代码
rpm -e --nodeps 上面检查到的程序名称复制代码
安装命令:yum -y install 提示信息中出现的缺失的依赖资源(如:libncurses.so.5 libtinfo.so.5,多个资源中使用空格隔开,使用这种方式能够自动扫描包名而且进行加载)复制代码
绿色版本:没啥好说的就是上传、解压、设置运行权限(chmod 777 *.sh)
本期文章到此基本结束,至于Nginx设置,粗略的估计放到下一期吧。部署项目的话,直接把war包扔到tomcat的webapps目录下就好了。