Linux下部署自己寫的Web項目


Java流行的雲筆記項目和自己獨立開發的備件可視化項目基本功能完成后一直沒有部署到服務器運行過,都是在開發環境的Eclipse中運行,最近簡單學習了一點Linux基礎知識,准備將它部署到自己的虛擬機Centos7上,大致學習一下部署的基本流程,其中需要安裝JDK和Tomcat,在參考博客基礎上這一步完成得比較順利。但是安裝MySql時,基本要放棄了,期間發生各種暫時不能處理的錯誤,后面卸載安裝的MySql,參考另外一篇博文基礎上重新安裝,道路要順利一些但是還是有很多未知錯誤,因此記錄一下,等Linux知識更加豐富后再回來看這篇文章,加深對部署Web項目的理解。

安裝准備

本次安裝需要安裝JDK 1.8,Tomcat ,以及MySql(選擇5.7.17版本安裝成功)

百度雲鏈接

鏈接:https://pan.baidu.com/s/1sg7UG9vEfnMZ5AMMIMj8WQ ,提取碼:ocl4 

安裝JDK及配置環境變量

(1)在/usr目錄下創建java文件夾

[root@oldboyedu usr]# mkdir java

(2)進入java文件夾,上傳下載好的JDK1.8文件。

[root@oldboyedu java]# rz

查看上傳的文件,發現已經上傳成功。

[root@oldboyedu java]# ll
total 181296
-rw-r--r--. 1 root root 185646832 Jun 23 11:03 jdk-8u181-linux-x64.tar.gz

(3)在/usr/java/文件夾下解壓上傳的文件。

[root@oldboyedu java]# tar -xvf jdk-8u181-linux-x64.tar.gz 

解壓完成后查看當前文件夾顯示如下:

進入jdk1.8.0_181目錄查看,就是熟悉的windows下安裝jdk的文件目錄。

(4)解壓完成后,編輯/etc/profile設置環境變量。

[root@oldboyedu jdk1.8.0_181]# vim /etc/profile

進入后按insert鍵進行插入操作,添加以下部分到最后面。

export JAVA_HOME=/usr/java/jdk1.8.0_181

export PATH=$PATH:$JAVA_HOME/bin

export CLASSPATH=.:$JAVA_HOME/lib

export JAVA_HOME PATH CLASSPATH

添加完成后按esc鍵,當[INSERT]消失后按shift+:后,輸入wq退出。

(5)執行如下命令讓修改的profile文件生效,source命令:執行文件並從文件中加載變量及函數到執行環境

[root@oldboyedu etc]# source /etc/profile

查看java版本,命令跟window終端使用的一樣。

至此Java JDK安裝完成。

安裝Tomcat及配置環境變量

(1)在/usr目錄先創建tomcat文件夾

[root@oldboyedu usr]# mkdir tomcat

(2)進入tomcat文件夾上傳下載的tomcat文件,依然使用rz命令。

[root@oldboyedu tomcat]# rz

查看上傳的文件發生上傳成功。

[root@oldboyedu tomcat]# ll
total 9448
-rw-r--r--. 1 root root 9672485 Jun 23 11:00 apache-tomcat-8.5.39.tar.gz

(3)在/usr/tomcat/文件夾下解壓上傳的文件。

[root@oldboyedu tomcat]# tar -xvf apache-tomcat-8.5.39.tar.gz 

解壓完成后查看當前文件夾顯示如下:

進入apache-tomcat-8.5.39 文件夾下查看內容:

(4)解壓完成后,編輯/etc/profile設置環境變量。

[root@oldboyedu tomcat]# vim /etc/profile

將如下部分添加到剛才添加的后面。

export JAVA_HOME=/usr/java/jdk1.8.0_181

export CATALINA_HOME=/usr/tomcat/apache-tomcat-8.5.39

export PATH=$PATH:$JAVA_HOME/bin:$CATALINA_HOME/bin

export CLASSPATH=.:$JAVA_HOME/lib:$CATALINA_HOME/lib

export JAVA_HOME PATH CLASSPATH CATALINA_HOME

添加完成后按esc鍵,當[INSERT]消失后按shift+:后,輸入wq退出。

(5)執行如下命令讓修改的profile文件生效。

[root@oldboyedu etc]# source /etc/profile

進入/usr/tomcat/bin文件夾下,啟動tomcat測試。

[root@oldboyedu bin]# ./startup.sh 

現在碰到坑了,啟動tomcat后,在宿主機登錄tomcat沒有反應,后面查看如下第一篇博客發現,需要將Centos7對8080的端口進行解除,執行如下如下命令后重啟tomcat,發現可以正常的訪問tomcat。

[root@oldboyedu ~]# firewall-cmd --permanent --zone=public --add-port=8080/tcp
success
[root@oldboyedu ~]# firewall-cmd --reload
success
[root@oldboyedu ~]# firewall-cmd --zone=public --query-port=8080/tcp
yes

安裝MySQL及配置

接下來安裝巨坑的MySQL,現在還有點一頭霧水,由於第一次安裝了一次,重新安裝之前先要卸載Linux系統中已安裝的Mysql

第一次安裝后啟動老是報如下的錯,報錯沒有深入研究直接准備重裝。

[root@oldboyedu mysqld]# /etc/init.d/mysqld start
Starting mysqld (via systemctl):  Job for mysqld.service failed because the control process exited with error code. See "systemctl status mysqld.service" and "journalctl -xe" for details.
                                                           [FAILED]

(1)清除已經安裝的Mysql

首先執行如下命令查詢,將所有查詢的mysql相關的文件都刪除。

[root@oldboyedu ~]# find /-name mysql

刪除一部分的示例,參數-e代表erase,代表刪除指定的套件。

[root@oldboyedu mysql]# rpm -e mysql-community-client-5.7.24-1.el6.x86_64
[root@oldboyedu mysql]# rpm -e mysql-community-devel-5.7.24-1.el6.x86_64
[root@oldboyedu mysql]# rpm -e mysql-community-libs-5.7.24-1.el6.x86_64
[root@oldboyedu ~]# find / -name mysql
/etc/selinux/targeted/active/modules/100/mysql
/usr/lib64/mysql
/usr/share/mysql
/usr/mysql
[root@oldboyedu ~]# rm -rf /etc/selinux/targeted/active/modules/100/mysql
[root@oldboyedu ~]# rm -rf /usr/lib64/mysql
[root@oldboyedu ~]# rm -rf /usr/share/mysql
[root@oldboyedu ~]# find / -name mysql
/usr/mysql
[root@oldboyedu ~]# cd /usr/mysql/
[root@oldboyedu mysql]# ls
mysql-5.7.24-1.el6.x86_64.rpm-bundle.tar
mysql-community-client-5.7.24-1.el6.x86_64.rpm
mysql-community-common-5.7.24-1.el6.x86_64.rpm
mysql-community-devel-5.7.24-1.el6.x86_64.rpm
mysql-community-embedded-5.7.24-1.el6.x86_64.rpm
mysql-community-embedded-devel-5.7.24-1.el6.x86_64.rpm
mysql-community-libs-5.7.24-1.el6.x86_64.rpm
mysql-community-libs-compat-5.7.24-1.el6.x86_64.rpm
mysql-community-server-5.7.24-1.el6.x86_64.rpm
mysql-community-test-5.7.24-1.el6.x86_64.rpm

最后刪除到只剩下安裝文件即可。

(2)確認是否有安裝mariadb,檢查是否運行,發現有因此需要將其停止后卸載。

類似下面的命令將其刪除,這里找不到以前的記錄了暫時用參考博主的替代。

systemctl stop mariadb
        rpm -qa | grep mariadb
        rpm -e --nodeps mariadb-5.5.52-1.el7.x86_64
        rpm -e --nodeps mariadb-server-5.5.52-1.el7.x86_64
        rpm -e --nodeps mariadb-libs-5.5.52-1.el7.x86_64

(3)上傳重新下載的mysql到/usr/mysql下,並解壓。

[root@oldboyedu mysql]# ls
mysql-5.7.17-linux-glibc2.5-x86_64.tar.gz  
[root@oldboyedu mysql]# tar -zvxf mysql-5.7.17-linux-glibc2.5-x86_64.tar.gz 

解壓成功。

[root@oldboyedu mysql]# ls
mysql-5.7.17-linux-glibc2.5-x86_64  mysql-5.7.17-linux-glibc2.5-x86_64.tar.gz  

(4)在/usr/local/下創建mysql目錄,將剛才解壓的文件全部移動到此mysql文件夾下。

[root@oldboyedu mysql]# mv mysql-5.7.17-linux-glibc2.5-x86_64/* /usr/local/mysql/

在/usr/local/mysql下查看移動后的文件。

(5)安裝libaio,安裝異步IO,這個暫時好像用不上。

[root@oldboyedu ~]# rpm -qa|grep libaio
[root@oldboyedu ~]# yum -y install libaio

(6)安裝配置文件my.cnf,將默認的cnf文件移動到/etc目錄下並且重命名為my.cnf。

[root@oldboyedu mysql]# cp ./support-files/my-default.cnf  /etc/my.cnf

可以查看默認的文件內容如下:

[root@oldboyedu support-files]# vim ./my-default.cnf 
# For advice on how to change settings please see
# http://dev.mysql.com/doc/refman/5.7/en/server-configuration-defaults.html
# *** DO NOT EDIT THIS FILE. It's a template which will be copied to the
# *** default location during install, and will be replaced if you
# *** upgrade to a newer version of MySQL.

[mysqld]

# Remove leading # and set to the amount of RAM for the most important data
# cache in MySQL. Start at 70% of total RAM for dedicated server, else 10%.
# innodb_buffer_pool_size = 128M

# Remove leading # to turn on a very important data integrity option: logging
# changes to the binary log between backups.
# log_bin

# These are commonly set, remove the # and set as required.
# basedir = .....
# datadir = .....
# port = .....
# server_id = .....
# socket = .....

# Remove leading # to set options mainly useful for reporting servers.
# The server defaults are faster for transactions and fast SELECTs.
# Adjust sizes as needed, experiment to find the optimal values.
# join_buffer_size = 128M
# sort_buffer_size = 2M
# read_rnd_buffer_size = 2M 

sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES

重新設置的路上,也遇上了很多坑,目前按照下面的設置是OK的。

 1 # For advice on how to change settings please see
 2 # http://dev.mysql.com/doc/refman/5.7/en/server-configuration-defaults.html
 3 # *** DO NOT EDIT THIS FILE. It's a template which will be copied to the
 4 # *** default location during install, and will be replaced if you
 5 # *** upgrade to a newer version of MySQL.
 6 
 7 [mysqld]  
 8 explicit_defaults_for_timestamp=true
 9           
10 # Remove leading # and set to the amount of RAM for the most important data
11 # cache in MySQL. Start at 70% of total RAM for dedicated server, else 10%.
12 innodb_buffer_pool_size = 128M
13              
14 # Remove leading # to turn on a very important data integrity option: logging
15 # changes to the binary log between backups.
16 # log_bin
17     
18 # These are commonly set, remove the # and set as required.
19 # 設置mysql客戶端默認字符集
20 # default-character-set=utf8 
21 [client]
22 socket=/var/lib/mysql/mysql.sock
23 [mysqld]
24 # 設置3306端口
25 port =3306
26 socket=/var/lib/mysql/mysql.sock
27 # 設置mysql的安裝目錄
28 basedir = /usr/local/mysql
29 # 設置mysql數據庫的數據存放目錄
30 datadir = /usr/local/mysql/data
31 # 允許最大連接數
32 max_connections=200
33 # 服務端使用的字符集默認為8bit的latin1字符集
34 character-set-server=utf8
35 # 創建新表時將使用的默認存儲引擎
36 default-storage-engine=INNODB
37 # lower_case_table_name=1
38 max_allowed_packet=16M
39 # server_id = .....
40 # socket = .....
41 
42 
43 # Remove leading # to set options mainly useful for reporting servers.
44 # The server defaults are faster for transactions and fast SELECTs.
45 # Adjust sizes as needed, experiment to find the optimal values.
46 # join_buffer_size = 128M
47 # sort_buffer_size = 2M
48 # read_rnd_buffer_size = 2M 
49 
50 #sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES

按照上面的配置完成后,需要根據配置的內容,在/usr/local/mysql/ 下創建如下存放數據的文件夾。

[root@oldboyedu mysql]# mkdir ./data

修改當前local下目錄mysql擁有者為 mysql 用戶,默認應該是root用戶,-R為遞歸更改,./代表當前文件夾下全部內容。mysql:mysql的第一個代表用戶,第二個代表組。

[root@localhost mysql]# chown -R mysql:mysql ./

執行如下命令進行初始化,具體意思暫時不懂。

[root@oldboyedu ~]# ./bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql/ --datadir=/usr/local/mysql/data/

初始化成功,前面因為my.cnf文件的配置有點問題老是失敗,按照上面的初始化后終於成功了,並產生一個初始密碼,后面用這個密碼登錄並重新設置密碼用。

(7)將mysql的bin添加到環境變量,以下是我這次設置的。

export MYSQL_HOME=/usr/local/mysql/bin

export PATH=$PATH:$JAVA_HOME/bin:$CATALINA_HOME/bin:$MYSQL_HOME

export PATH 

可以使用如下命令來查看環境變量,可以查看是否添加進去。

[root@oldboyedu ~]# echo $PATH

(8)啟動mysql失敗,輸入登錄密碼后報錯,后面想都沒啟動連接什么mysql,肯定報錯的。

ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)

具體不知道是什么原因,參考網上博客,在/var/lib下創建mysql文件夾,並執行如下命令,其中參數4代表只讀r,如果再加上2變成6就是r+w,如果再加上1變成7,變成r+w+x的權限,x代表可執行權限。

[root@oldboyedu lib]# chmod 777 /var/lib/mysql

修改后重新啟動mysql成功。

繼續連接報錯,說找不到/tmp/mysql.sock,查找文件在自己配置的文件下,修改/etc/my.cnf文件,將[client]添加到里面成功連接mysql

(9)成功進入mysql后,可以設置登錄密碼

mysql> SET PASSWORD=PASSWORD('自己的密碼);
Query OK, 0 rows affected, 1 warning (0.00 sec)
password:update user set authentication_string=PASSWORD('自己的密碼') where User='root';

(10)設置開機啟動

step1 復制啟動腳本到資源目錄,后面學習就知道了,/etc/rc.d/init.d下的一般放yum或者rpm工具安裝的軟件開機的啟動腳本,mysqld就是一個啟動腳本。

[root@oldboyedu mysql]# cp ./support-files/mysql.server /etc/rc.d/init.d/mysqld

step2 增加mysqld服務控制腳本執行權限

[root@oldboyedu mysql]# chmod +x /etc/rc.d/init.d/mysqld

step3 將mysqld添加到系統服務

[root@oldboyedu mysql]# chkconfig --add mysqld

step4 檢查mysqld服務是否生效

[root@oldboyedu mysql]# chkconfig --list mysqld

說明2,3,4,5運行級別隨着系統啟動而自動啟動。

step5 啟動mysqld

[root@oldboyedu mysql]# service mysqld start

項目war包導入、sql腳本執行

將war包導入到tomcat的webapp目錄下,啟動tomcat會自動解壓war包。

[root@oldboyedu webapps]# rz

[root@oldboyedu webapps]# ls
Cloud_Note_Clyang.war  manager
docs                   PadAndFilterManager
examples               PadAndFilterManager.war
host-manager           ROOT

sql腳本執行,需要登錄進入mysql后,執行source命令,其中腳本傳入到/usr/sqlscript目錄下。

mysql> source /usr/sqlscript/cloud_note.sql

測試結果

 在部署完成后登錄測試,成功連入雲筆記項目,並可以正常使用里面開發的業務。

 

參考博客:

(1)https://blog.csdn.net/hzr0523/article/details/80554541

(2)https://www.cnblogs.com/jieerma666/p/7527338.html

(3)https://www.cnblogs.com/YangshengQuan/p/8431520.html 參考下載mysql

(4)https://www.cnblogs.com/mujingyu/p/7689116.html 參考安裝mysql

(5)https://www.cnblogs.com/taojietaoge/p/10692557.html 參考安裝JDK和Tomcat

(6)https://blog.csdn.net/webnum/article/details/81257793

(7)https://wangchujiang.com/linux-command/c/tar.html 命令查看

(8)https://blog.csdn.net/xiaolongwang2010/article/details/8654848 chmod權限說明 777的意思

(9)https://www.cnblogs.com/youngchaolin/p/11117376.html linux重要目錄結構


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM