1. 程式人生 > >運維繫列(4)-- 雲伺服器部署Java web專案(JDK, Tomcat, MySQL)

運維繫列(4)-- 雲伺服器部署Java web專案(JDK, Tomcat, MySQL)

目錄

1、準備工作

-雲伺服器
-遠端控制軟體(MobaXterm),本地遠端SSH登陸到個人雲伺服器的過程很簡單,這裡就不再細說

2、JDK安裝

cd usr
sudo mkdir java
cd java
sudo mkdir jdk

然後解壓jdk的tar檔案到上面的目錄:

 sudo tar zxvf jdk-9.0.4_linux-x64_bin.tar.gz -C /usr/java/jdk

3、配置環境變數
輸入:

sudo vi /etc/profile  

新增如下內容:

#set java environment
export
JAVA_HOME=/usr/java/jdk/jdk-9.0.4 export JRE_HOME=/usr/java/jd/jdk-9.0.4/jre export CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$JAVA_HOME:$PATH

儲存後執行:

source /etc/profile 

驗證安裝:

java -version 

如圖所示:
這裡寫圖片描述

3、配置tomcat

1、下載tomcat,到http://tomcat.apache.org/下載,此處筆者使用的是tomcat8.5,將tomcat下載到本地電腦上,通過MobaXterm上傳到伺服器。
2、安裝
此處我把tomcat安裝到/usr/java/tomcat中去。

cd /usr/java/
sudo mkdir tomcat

解壓:

sudo tar zxvf apache-tomcat-8.5.28.tar.gz -C /usr/java/tomcat

3、配置環境
進入到上面的tomcat的bin資料夾下

sudo -i
cd /usr/java/tomcat/apache-tomcat-8.5.28/bin
sudo vi setclasspath.sh  

新增如下:

export JAVA_HOME=/usr/java/jdk/jdk-9.0.4/
export JRE_HOME=/usr/java/jdk/jdk-9.0.4/jre

然後退回到bin目錄下:
執行:

./startup.sh 

出現如下,說明安裝成功:
這裡寫圖片描述
這樣就可以通過(網址:8080)訪問了:
這裡寫圖片描述

此處若無法訪問,就去檢視tomcat伺服器的Log資訊,看看tomcat伺服器是否已經正常啟動,進入tomcat伺服器下的logs目錄,開啟catalina.out檔案進行檢視:

cd /usr/java/tomcat/apache-tomcat-8.5.28/logs
cat catlina.out

4、從本地上傳java web專案

1、war包上傳
本地打包好的war包,上傳到伺服器,例如:
轉到我的工作目錄,上傳.war檔案

cd /home/ubuntu/DD/
mkdir tools
cd tools
vim run.sh

插入如下:
意思是,將剛上傳的包,複製到tomcat路徑下,接著重啟。

cp /home/ubuntu/DD/customs.war /usr/java/tomcat/apache-tomcat-8.5.28/webapps/ROOT.war
cd /usr/java/tomcat/apache-tomcat-8.5.28/bin
./shutdown.sh
./startup.sh
cd -

執行此檔案:

sudo ./run.sh

如圖所示:
這裡寫圖片描述
此時由於還沒有裝MySQL,會報如下錯誤:
這裡寫圖片描述

5、Linux下安裝Tomcat伺服器使用到的命令

5.1、linux檢視埠被哪個程序佔用

lsof -i:埠號

5.2、檢視Linux伺服器的版本

lsb_release -a

5.3、檢視當前iptables(防火牆)規則
  可使用”iptables –L –n”檢視當前iptables規則

iptables –L –n

5.4、新增指定埠到防火牆中
  iptables -I INPUT -p 協議 –dport 埠號 -j ACCEPT

iptables -I INPUT -p udp --dport 161 -j ACCEPT
iptables -I INPUT -p tcp --dport 8080 -j ACCEPT

6、安裝MySQL

sudo tar zxvf mysql-5.6.26-linux-glibc2.5-x86_64.tar.gz -C /usr/local/

4.進入資料夾

cd /usr/local/ # 進入該目錄
sudo mv mysql-5.6.26-linux-glibc2.5-x86_64/ mysql   #改名

5.建立使用者組和使用者

groupadd mysql
useradd -g mysql mysql

6.修改許可權

chown -R mysql:mysql /usr/local/mysql

7.安裝資料庫

cd /usr/local/mysql
scripts/mysql_install_db --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --user=mysql

error while loading shared libraries: libaio.so.1

解決方案:

sudo apt-get install libaio1 libaio-dev

繼續

cp support-files/mysql.server /etc/init.d/mysql
chmod 755 /etc/init.d/mysql
cp support-files/my-default.cnf /etc/my.cnf

#修改啟動指令碼
vi /etc/init.d/mysql

#修改項:
basedir=/usr/local/mysql/
datadir=/usr/local/mysql/data/mysql

啟動服務:

#啟動服務
service mysql start

這時會有錯誤:

Package ‘chkconfig’ has no installation candidate

chkconfig: command not found

解決方案:

sudo apt-get install sysv-rc-conf
alias chkconfig=sysv-rc-conf   
#因為Ubuntu沒有chkconfig,所以安裝sysv-rc-conf並重命名為chkconfig,機智!
chkconfig --list      #顯示列表
chkconfig mysql on    #開啟

MySQL提示:The server quit without updating PID file問題的解決辦法

1、可能是/usr/local/mysql/data/mysql.pid檔案沒有寫的許可權
解決方法 :給予許可權,執行 “chown -R mysql:mysql /var/data” “chmod -R 755 /usr/local/mysql/data”  然後重新啟動mysqld!

2、可能程序裡已經存在mysql程序
解決方法:用命令“ps -ef|grep mysqld”檢視是否有mysqld程序,如果有使用“kill -9  程序號”殺死,然後重新啟動mysqld!

3、可能是第二次在機器上安裝mysql,有殘餘資料影響了服務的啟動。
解決方法:去mysql的資料目錄/data看看,如果存在mysql-bin.index,就趕快把它刪除掉吧,它就是罪魁禍首了。本人就是使用第三條方法解決的 !

4、mysql在啟動時沒有指定配置檔案時會使用/etc/my.cnf配置檔案,請開啟這個檔案檢視在[mysqld]節下有沒有指定資料目錄(datadir)。
解決方法:請在[mysqld]下設定這一行:datadir = /usr/local/mysql/data

5、skip-federated欄位問題
解決方法:檢查一下/etc/my.cnf檔案中有沒有沒被註釋掉的skip-federated欄位,如果有就立即註釋掉吧。

9 啟動mysql

service mysql start  
#測試連線
./mysql/bin/mysql -uroot
#加入環境變數,編輯 /etc/profile,這樣可以在任何地方用mysql命令了
vim /etc/profile
export PATH=/usr/local/mysql/bin:$PATH  
#重新整理
source /etc/profile
#啟動mysql
service mysql start
#關閉mysql
service mysql stop
#檢視執行狀態
service mysql status

—————————————————————————-

若是無root許可權,可將mysql安裝到使用者目錄下

mysqld_safe A mysqld process already exists

mysqld_safe A mysqld process already exists

表示mysqld_safe程序存在,可以通過
ps -A|grep mysql 檢視mysqld_safe程序ID
kill -9 xxxx            終結ID為xxxx的程序
scripts/mysql_install_db --defaults-file=my.cnf  --user=user

bin/mysqld_safe --defaults-file=my.cnf &

netstat -an | grep 3306