基於阿里雲Centos 7服務器的Tomcat 項目部署java
工具:一臺安裝jdk1.8的Centos 6/7.X 雲服務器(64位)mysql
Putty ssh遠程鏈接雲服務器的軟件linux
FileZillaClient 本地機與服務器文件互傳的軟件sql
步驟一:Centos 7安裝jdk1.8數據庫
1.putty 鏈接上雲服務器apache
2進入到目錄 /usr/local/ 中:bootstrap
cd /usr/local/vim
3.建立目錄 tools:瀏覽器
mkdir -p toolstomcat
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 設置爲系統服務,二、三、四、5 都爲 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;