項目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目錄下就好了。