運維繫列(4)-- 雲伺服器部署Java web專案(JDK, Tomcat, MySQL)
阿新 • • 發佈:2019-02-13
目錄
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