Linux雲服務器下部署Tomcat教程

 基於阿里雲Centos 7服務器的Tomcat 項目部署

工具:一臺安裝jdk1.8Centos 6/7.X 雲服務器(64位)

Putty  ssh遠程連接雲服務器的軟件

FileZillaClient   本地機與服務器文件互傳的軟件

 

步驟一:Centos 7安裝jdk1.8

1.putty 連接上雲服務器

2進入到目錄 /usr/local/ 中:

cd /usr/local/

3.創建目錄 tools

mkdir -p tools

4.進入到目錄 /usr/local/tools 中:

cd tools/

5 下載jdk-8u91-linux-x64.tar.gz

可以在官網上下載Linux -64 jdk1.8,由FileZillaClient上傳到服務器上   

6 tools目錄下解壓縮

tar -zxvf jdk-8u91-linux-x64.tar.gz

7. 返回到上一級並創建 /usr/local/jdk 目錄:

  cd ..

  mkdir -p jdk

8. 進入到 tools 目錄後將 jdk1.8.0_91 移動到 jdk 目錄中:

  cd ../tools/

mv jdk1.8.0_91/ ../jdk/

9 配置環境變量(很重要)

打開 /etc/ 目錄下的 profile 文件:

  vi /etc/profile

  將如下代碼追加到 profile 文件末尾:

  # idea - jdk8 settings start 2016-08-01

 

JAVA_HOME=/usr/local/jdk/jdk1.8.0_91(自己安裝jdk的所在目錄)

 JRE_HOME=$JAVA_HOME/jre

 PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin

 CLASSPATH=:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib/dt.jar

 export JAVA_HOME JRE_HOME PATH CLASSPATH

 

# idea - jdk8 settings end - 2016-08-01

  Esc 鍵、輸入 wq! 回車,保持並退出。

 

10 即可啓用新的配置:

 source /etc/profile

11

輸入 java -version 查看 JDK 的版本:

  [root@iZ94hws2fzlZ jdk1.8.0_91]# java -version

 java version "1.8.0_91"

 Java(TM) SE Runtime Environment (build 1.8.0_91-b14)

 Java HotSpot(TM) 64-Bit Server VM (build 25.91-b14, mixed mode)

證明安裝成功

注意:安裝jdk儘量用root用戶

步驟二安裝Tomcat服務器:

1.putty連接雲服務器

2 進入到目錄 /usr/local/ 中:

  cd /usr/local/

 

3 創建目錄 /usr/local/tools,如果有則忽略:

  mkdir -p tools

 

4 創建 /usr/local/tomcat 目錄,如果已存在則忽略:

  mkdir -p tomcat

 

5 進入到目錄 /usr/local/tools 中:

  cd tools/

 

6 下載 apache-tomcat-9.0.0.M4.tar.gz 文件:

 Wget http://mirror.bit.edu.cn/apache/tomcat/tomcat-9/v9.0.0.M4/bin/apache-tomcat-9.0.0.M4.tar.gz

如果自動下載不能完成可以手動下載。去Tomcat官網下載相應版本的tar.gz

 

7 解壓縮 apache-tomcat-9.0.0.M4.tar.gz

  tar -zxvf apache-tomcat-9.0.0.M4.tar.gz

 

8 將通過解壓得到的 apache-tomcat-9.0.0.M4 文件複製到 /usr/local/tomcat 目錄中:

 mv apache-tomcat-9.0.0.M4 ../tomcat/

 

9 打開文件 /etc 目錄下的 profile 文件:(配置Tomcat環境變量

  vim /etc/profile

將如下代碼追加到 profile 文件末尾:

 # idea - tomcat9 config start - 2016-05-01

 

 CATALINA_HOME=/usr/local/tomcat/apache-tomcat-9.0.0.M4

 CATALINA_BASE=/usr/local/tomcat/apache-tomcat-9.0.0.M4

 PATH=$PATH:$CATALINA_BASE/bin

 export PATH CATALINA_BASE

 

 # idea - tomcat9 config end - 2016-05-01

 保持並推出:wq!

 

10 修改 tomcat 的端口號和字符編碼:

 進入到 /usr/local/tomcat/apache-tomcat-9.0.0.M4/conf 目錄中:

 cd ../tomcat/apache-tomcat-9.0.0.M4/conf

 打開 tomcat 服務的配置文件 server.xml

  vi server.xml

 找到如下代碼:

  <Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" />

 將其中的 8080 改成 HTTP 協議的默認端口 80,改後的代碼如下:

  <Connector port="80" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" URIEncoding="UTF-8" />

11. 進入到 /usr/local/tomcat/apache-tomcat-9.0.0.M4/bin 目錄中:

  cd ../bin/

 

12. 打開 vi catalina.sh 文件:

  # OS specific support. 前面加入如下代碼:

  JAVA_HOME=/usr/local/jdk/jdk1.8.0_91

  JRE_HOME=$JAVA_HOME/jre

 鍵入 Esc 並輸入“:wq!”保持並退出;

 

13.啓動 tomcat 服務:

 ./startup.sh

 打印如下信息則表明啓動 Tomcat 服務成功:

  Using CATALINA_BASE:   /usr/local/tomcat/apache-tomcat-9.0.0.M4

  Using CATALINA_HOME:   /usr/local/tomcat/apache-tomcat-9.0.0.M4

  Using CATALINA_TMPDIR: /usr/local/tomcat/apache-tomcat-9.0.0.M4/temp

  Using JRE_HOME:        /usr/local/jdk/jdk1.8.0_91/jre

  Using CLASSPATH:       /usr/local/tomcat/apache-tomcat-9.0.0.M4/bin/bootstrap.jar:/usr/local/tomcat/apache-tomcat-9.0.0.M4/bin/tomcat-juli.jar

   Tomcat started.

  打開瀏覽器輸入 IP 地址看看吧!如果出現了我們的可愛的“小黃貓”則表明我們的 Tomcat 已提供服務啦!

 

14. 關閉 tomcat 服務:

 ./shutdown.sh

 打印如下信息則表明關閉 Tomcat 服務成功:

  Using CATALINA_BASE:   /usr/local/tomcat/apache-tomcat-9.0.0.M4

  Using CATALINA_HOME:   /usr/local/tomcat/apache-tomcat-9.0.0.M4

  Using CATALINA_TMPDIR: /usr/local/tomcat/apache-tomcat-9.0.0.M4/temp

  Using JRE_HOME:        /usr/local/jdk/jdk1.8.0_91/jre

  Using CLASSPATH:       /usr/local/tomcat/apache-tomcat-9.0.0.M4/bin/bootstrap.jar:/usr/local/tomcat/apache-tomcat-9.0.0.M4/bin/tomcat-juli.jar

 注意:不可連續執行多次 ./shutdown.sh 命令,多次後報如下錯誤:

  SEVERE: Catalina.stop:

  java.net.ConnectException: Connection refused

   at java.net.PlainSocketImpl.socketConnect(Native Method)

   at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)

   at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)

   at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)

   at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)

   at java.net.Socket.connect(Socket.java:589)

   at java.net.Socket.connect(Socket.java:538)

   at java.net.Socket.<init>(Socket.java:434)

   at java.net.Socket.<init>(Socket.java:211)

   at org.apache.catalina.startup.Catalina.stopServer(Catalina.java:476)

   at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

   at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)

   at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)

   at java.lang.reflect.Method.invoke(Method.java:498)

   at org.apache.catalina.startup.Bootstrap.stopServer(Bootstrap.java:408)

   at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:497)

 

15 tomcat9 加入到系統服務列表中:

 進入到 /etc/init.d 目錄中:

  cd /etc/init.d

 創建 tomcat9 服務配置文件:

  vi tomcat9

 將如下代碼加入寫入到 tomcat9 配置文件中:

  # idea - tomcat config start - 2016-05-01

 

  #!/bin/bash

   # description: Tomcat Start Stop Restart

   # processname: tomcat

   # chkconfig: 2345 20 80

   JAVA_HOME=/usr/local/jdk/jdk1.8.0_91/

   export JAVA_HOME

   PATH=$JAVA_HOME/bin:$PATH

   export PATH

   CATALINA_HOME=/usr/local/tomcat/apache-tomcat-9.0.0.M4/

 

   case $1 in

   start)

     sh $CATALINA_HOME/bin/startup.sh

   ;;

   stop)

     sh $CATALINA_HOME/bin/shutdown.sh

   ;;

   restart)

     sh $CATALINA_HOME/bin/shutdown.sh

     sh $CATALINA_HOME/bin/startup.sh

   ;;

   esac

   exit 0

 

   #chmod 755 tomcat

   #chkconfig --add tomcat

   #chkconfig --level 2345 tomcat on

   #chkconfig --list tomcat

 

  # idea - tomcat config end - 2016-05-01

 鍵入 Esc 並輸入“:wq!”保持並退出;

 其中的注意點是將 JAVA_HOME CATALINA_HOME 變量設置成與我們當前配置相一致的路徑;

 

16.tomcat9 分配可執行權限:

  chmod +x tomcat9

 

17. tomcat9 納入到系統的服務列表中,即添加 tomcat9 爲系統服務:

 chkconfig --add tomcat9

 

18. 查看當前系統服務都有哪些:

 chkconfig --list

 也可以查看指定的系統服務,如這裏我們指定 tomcat9 這個服務:

  chkconfig --list tomcat9

 打印如下信息:

  tomcat9         0:off   1:off   2:on    3:on    4:on    5:on    6:off

 則表明已將 tomcat9 設置爲系統服務,2345 都爲 on 表示可隨系統自動啓動;

 

19 我們可以在任意目錄下執行關閉、啓動、重啓 Tomcat9 服務啦:

 19.1 關閉 tomcat9 服務:

  service tomcat9 stop

 19.2 啓動 tomcat9 服務:

  service tomcat9 start

 19.3 重啓 tomcat9 服務:

  service tomcat9 restart

 

後記:(很重要)

關於Tomcat成功啓動後,外網不能成功訪問的解決:

第一個方面:Linux上啓動防火牆的問題

當下比較流行的linux鏡像是CentOS,所以防火牆也隨之變成了firewall,那麼怎麼操作這個防火牆呢?

 

#停止firewall

systemctl stop firewalld.service

 

#開啓firewall

systemctl start firewalld.service

 

#禁止firewall開機啓動

systemctl disable firewalld.service

 

#查看默認防火牆狀態(關閉後顯示not running,開啓後顯示running

firewall-cmd –state

 

但是開啓的時候,可能報這個錯

Failed to start firewalld.service: Unit firewalld.service is masked.

嘗試

systemctl unmask firewalld.service

 

發現,防火牆已經關閉了,經過大量搜索發現,還可能是安全組的問題,經過測試,通了。

那麼怎麼來配置安全組呢?

1.登陸阿里雲

2.進入安全組

 

“控制檯” -> “雲服務器 ECS-> 選擇雲服務器 -> “更多” -> “安全組配置”

3.配置規則

 

“配置規則” -> “添加安全組規則”

4.配置8080端口

添加安全組規則

 

步驟三安裝MySQL5.7

 

1 通過 putty 連接到阿里雲 CentOS7 服務器;

 

2 進入到目錄 /usr/local/ 中:

cd /usr/local/

 

3 創建目錄 /usr/local/tools,如果有則忽略:

mkdir -p tools

 

4 創建 /usr/local/mysql 目錄,如果已存在則忽略:

mkdir -p mysql

 

5 進入到目錄 /usr/local/tools 中:

cd tools/

 

6 查看系統中是否已安裝 MySQL 服務:

rpm -qa | grep mysql

yum list installed | grep mysql

 

7 如果已安裝則刪除 MySQL 及其依賴的包:

yum -y remove mysql-libs.x86_64

 

8 下載 mysql57-community-release-el7-8.noarch.rpm YUM 源:

wget http://repo.mysql.com/mysql57-community-release-el7-8.noarch.rpm

 

9 安裝 mysql57-community-release-el7-8.noarch.rpm

rpm -ivh mysql57-community-release-el7-8.noarch.rpm

安裝完後,得到如下兩個包:

mysql-community.repo

mysql-community-source.repo

 

10 安裝 MySQL

yum install mysql-server

遇到疑問的地方,一路 Y 下去即可;

安裝完畢後,在  /var/log/mysqld.log 文件中會自動生成一個隨機的密碼,我們需要先取得這個隨機密碼,以用於登錄 MySQL 服務端:

grep "password" /var/log/mysqld.log(有可能這個初始隨機密碼會沒有

打印如下內容:

A temporary password is generated for root@localhost: hilX0U!9i3_6

我們複製 root@localhost: 後面的隨機字符串,這個字符串就是 MySQL 在安裝完成後爲我們隨機生成的密碼;

 

12 登錄到 MySQL 服務端並更新用戶 root 的密碼:

mysql -u root -philX0U!9i3_6

打印出 MySQL 的版本即表明已登錄;

設置用戶 root 可以在任意 IP 下被訪問:

grant all privileges on *.* to root@"%" identified by "新密碼";

設置用戶 root 可以在本地被訪問:

grant all privileges on *.* to root@"localhost" identified by "新密碼";

刷新權限使之生效:

flush privileges;

更新 MySQL 的用戶 root的密碼:

set password = password('新密碼');

注意:由於 MySQL5.7 採用了密碼強度驗證插件 validate_password,故此我們需要設置一個有一定強度的密碼;

輸入 exit 後用新密碼再次登錄看看吧!

 

13 查看 MySQL 當前都內置了哪些數據庫:

mysql> show databases;

我們發現其內置瞭如下一些數據庫:

information_schema

mysql              

performance_schema

sys

 

14 啓動 MySQL 服務:

service mysqld start

 

15 關閉 MySQL 服務:

service mysqld stop

 

16 重啓 MySQL 服務:

service mysqld restart

 

17 查看 MySQL 的狀態:

service mysqld status

 

18 查看 MySQL 的字符集:

mysql> show variables like '%character%';

+--------------------------+----------------------------+

| Variable_name            | Value                      |

+--------------------------+----------------------------+

| character_set_client    | utf8                      |

| character_set_connection | utf8                      |

| character_set_database  | latin1                    |

| character_set_filesystem | binary                    |

| character_set_results    | utf8                      |

| character_set_server    | latin1                    |

| character_set_system    | utf8                      |

| character_sets_dir      | /usr/share/mysql/charsets/ |

+--------------------------+----------------------------+

8 rows in set (0.01 sec)

查看指定的數據庫中指定數據表的字符集,如查看 mysql 數據庫中 servers 表的字符集:

  show table status from mysql like '%servers%';

查看指定數據庫中指定表的全部列的字符集,如查看 mysql 數據庫中 servers 表的全部的列的字符集:

show full columns from servers;

 

19 設置 MySQL 的字符集爲 UTF-8

打開 /etc 目錄下的 my.cnf 文件(此文件是 MySQL 的主配置文件):

/etc/my.cnf

[mysqld] 前添加如下代碼:

[client]

default-character-set=utf8

[mysqld] 後添加如下代碼:

character_set_server=utf8

再次查看字符集:

mysql> show variables like '%character%';

+--------------------------+----------------------------+

| Variable_name            | Value                      |

+--------------------------+----------------------------+

| character_set_client    | utf8                      |

| character_set_connection | utf8                      |

| character_set_database  | utf8                      |

| character_set_filesystem | binary                    |

| character_set_results    | utf8                      |

| character_set_server    | utf8                      |

| character_set_system    | utf8                      |

| character_sets_dir      | /usr/share/mysql/charsets/ |

+--------------------------+----------------------------+

8 rows in set (0.01 sec)

 

20 /var/lib/mysql 是存放數據庫文件的目錄;

 

21 /var/log 目錄下的 mysqld.log 文件記錄 MySQL 的日誌;

 

22 MySQL 採用的 TCP/IP 協議傳輸數據,默認端口號爲 3306,我們可以通過如下命令查看:

netstat -anp

 

23 忘記密碼時,可用如下方法重置:

# service mysqld stop

# mysqld_safe --user=root --skip-grant-tables --skip-networking &

# mysql -u root

mysql> use mysql;

mysql> update user set password=password("new_password") where user="root";

mysql> flush privileges;

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章