对于云服务器,程序员一般不会陌生,如果项目需要发布到现网,那么服务器是必不可缺的一项硬性条件,那么如何在云服务器上部署一个项目,需要做哪些配置准备,下面就由本文档为大家讲解,本篇以Tomcat服务器发布J2EE项目为例。
java000 - Windows用Tomcat发布Java项目" class="left" height="238" src="https://img-blog.csdnimg.cn/img_convert/a0d4d2411273dbfb087745aded924e0b.jpeg" width="357" />
一、打包 Java 项目
准备一个可运行的Javaweb项目,mysql连接正常,在eclipse中将项目打成war文件。
java001 - Windows用Tomcat发布Java项目" class="left" height="714" src="https://img-blog.csdnimg.cn/img_convert/6d0728a5ae597ee333df7a66e32457c4.png" width="462" />
java002 - Windows用Tomcat发布Java项目" class="left" height="423" src="https://img-blog.csdnimg.cn/img_convert/8db79249a1dce9742bc53d441ed31eaf.png" width="466" />
java003 - Windows用Tomcat发布Java项目" class="left" height="556" src="https://img-blog.csdnimg.cn/img_convert/1eee432748687325ed2854dc3218a5f9.png" width="657" />
java004 - Windows用Tomcat发布Java项目" class="left" height="449" src="https://img-blog.csdnimg.cn/img_convert/0aeae70ec9779badaae8f4e7c9d56276.png" width="485" />
java005 - Windows用Tomcat发布Java项目" class="left" height="130" src="https://img-blog.csdnimg.cn/img_convert/0c47486e907d9d8a8a0602daf161aabe.png" width="118" />
二、准备云服务器
优惠的购买链接:年度爆款2核2G4M云服务器118元/年,新老用户同享
java009 1024x670 - Windows用Tomcat发布Java项目" class="left" height="423" src="https://img-blog.csdnimg.cn/img_convert/62cf57ce59692fec7cd4bc4c3b796042.jpeg" width="646" />
购买好了进入控制台,找到刚刚购买的服务器,点击登录
java010 1024x442 - Windows用Tomcat发布Java项目" class="left" height="288" src="https://img-blog.csdnimg.cn/img_convert/1bc76bdeb873d6b0488cf4fe1fda0e69.png" width="668" />
下载RDP文件
java011 1024x721 - Windows用Tomcat发布Java项目" class="left" height="433" src="https://img-blog.csdnimg.cn/img_convert/8e3e1bb12f3231bc7a5018b5e380e7af.png" width="615" />
java012 - Windows用Tomcat发布Java项目" class="left" height="108" src="https://img-blog.csdnimg.cn/img_convert/ae8ff73b153d11fe70b59abcd46fb92d.png" width="101" />
双击进入,会要求输入用户名密码,忘了回控制台重置
java013 1024x289 - Windows用Tomcat发布Java项目" class="left" height="190" src="https://img-blog.csdnimg.cn/img_convert/b69cb256431b8a8776a7d0152a329c32.png" width="675" />
进入后图,服务器就相当于放在腾讯的一部电脑,但是这台电脑具有内网和外(公)网两个ip,我们正常在本地发布应用,外网是访问不到的。在云服务器上本地发布,就相当于直接发布在外网,所有终端都可以访问。
java014 1024x561 - Windows用Tomcat发布Java项目" class="left" height="352" src="https://img-blog.csdnimg.cn/img_convert/ae44aef840a606eaedaba40023c803f5.jpeg" width="643" />
三、环境云服务器配置
1、安装 JDK
安装JDK,进https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html下载exe,双击安装。
java015 - Windows用Tomcat发布Java项目" class="left" height="372" src="https://img-blog.csdnimg.cn/img_convert/ab716dc2d049c4b42b3cf9fa41ff98f0.png" width="616" />
(1)新建环境变量JAVA_HOME
变量名:JAVA_HOME
变量值:C:\Program Files\Java\jdk1.8.0_221
java016 - Windows用Tomcat发布Java项目" class="left" height="190" src="https://img-blog.csdnimg.cn/img_convert/a26bf3471cf3769d908163076a4c4664.png" width="473" />
(2)配置path
变量名:path
变量值最前面加上%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;
(如果原先的值没有用;结尾,要补一个;把值隔开)
java017 - Windows用Tomcat发布Java项目" class="left" height="209" src="https://img-blog.csdnimg.cn/img_convert/a7d4cf8731bfcb8c3239abc2c28dc405.png" width="473" />
(3)新增CLASSPATH变量
变量名:CLASSPATH
变量值:.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar
java018 - Windows用Tomcat发布Java项目" class="left" height="484" src="https://img-blog.csdnimg.cn/img_convert/eeaa47060c64d903efee21321eb9d3b6.png" width="539" />
(4)执行java -version如果出现如下图界面则证明安装成功
java019 - Windows用Tomcat发布Java项目" class="left" height="126" src="https://img-blog.csdnimg.cn/img_convert/eb4c0b5f2b265a348017c049b0133191.png" width="567" />
2、安装 MySQL
Windows上安装MySQL
点击链接https://dev.mysql.com/downloads/mysql/下载 zip 包。
java020 1024x719 - Windows用Tomcat发布Java项目" class="left" height="457" src="https://img-blog.csdnimg.cn/img_convert/7413a59573a09e0a7161d560d1cfd1dd.jpeg" width="650" />
java021 1024x739 - Windows用Tomcat发布Java项目" class="left" height="465" src="https://img-blog.csdnimg.cn/img_convert/87e21763c88e4aebacdd6813ba89cab2.png" width="645" />
直接解压到想要安装的目录
java022 - Windows用Tomcat发布Java项目" class="left" height="20" src="https://img-blog.csdnimg.cn/img_convert/cf813ce07d364237bd886c6ccccc25d9.png" width="466" />
创建my.ini文件,内容写为:
[mysqld]
port=3306
#basedir是安装路径,datadir是安装路径\Data
basedir=C:\mysql-8.0.17-winx64
datadir=C:\mysql-8.0.17-winx64\Data
max_connections=200
max_connect_errors=10
character-set-server=utf8mb4
default-storage-engine=MyISAM
default_authentication_plugin=mysql_native_password
[mysql]
default-character-set=utf8mb4
[client]
port=3306
default-character-set=utf8mb4
java023 1024x600 - Windows用Tomcat发布Java项目" class="left" height="386" src="https://img-blog.csdnimg.cn/img_convert/fa298fbf26900471acde57371a3e10b6.png" width="660" />
配置环境变量
变量名:MYSQL_HOME
变量值:C:\mysql-8.0.17-winx64
java024 1024x581 - Windows用Tomcat发布Java项目" class="left" height="368" src="https://img-blog.csdnimg.cn/img_convert/08f0d203780f16f8093c756bd4f202f7.png" width="649" />
java025 1024x860 - Windows用Tomcat发布Java项目" class="left" height="554" src="https://img-blog.csdnimg.cn/img_convert/d714c107eb99423560b75ef2c918a6e1.png" width="659" />
java026 - Windows用Tomcat发布Java项目" class="left" height="467" src="https://img-blog.csdnimg.cn/img_convert/a860e3a81b126727fd8d57ebb1602fff.png" width="552" />
以管理员身份打开 cmd 命令行工具,切换目录:
cd C:\web\mysql-8.0.11\bin
java027 - Windows用Tomcat发布Java项目" class="left" height="143" src="https://img-blog.csdnimg.cn/img_convert/acaf1fbd41280c257504d0c927a32385.png" width="659" />
java028 - Windows用Tomcat发布Java项目" class="left" height="67" src="https://img-blog.csdnimg.cn/img_convert/4f2c7a204305f4c4e4bf3fbf8a4e7f4c.png" width="397" />
初始化数据库:
mysqld –initialize –console
执行完成后,会输出 root 用户的初始默认密码,如:
2019-09-20T02:35:05.464644Z 5 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: APWCY5ws&hjQ
(APWCY5ws&hjQ 就是初始密码,可以在登陆后修改密码)
输入以下安装命令:
mysqld install
启动输入以下命令即可:
net start mysql
正常情况:
java029 - Windows用Tomcat发布Java项目" class="left" height="81" src="https://img-blog.csdnimg.cn/img_convert/cd328218d5bb69057bc393b7bc75e58b.png" width="317" />
异常情况:
java030 - Windows用Tomcat发布Java项目" class="left" height="150" src="https://img-blog.csdnimg.cn/img_convert/f483cc7c8c218d362121844ba46f1093.png" width="310" />
查看服务有没有开启,如果MySQL服务正常,这种情况不影响使用
java031 - Windows用Tomcat发布Java项目" class="left" height="182" src="https://img-blog.csdnimg.cn/img_convert/06ecfaad2f03152f5eda76b4fbcedc16.png" width="628" />
登录MySQL: mysql -u root -p
java032 - Windows用Tomcat发布Java项目" class="left" height="219" src="https://img-blog.csdnimg.cn/img_convert/eb6e711c6e5b3f8d5576535a12839ce5.png" width="616" />
设置(或修改)root用户密码:
mysql> update mysql.user set authentication_string=password(“****”) where user = “root”;
(此处引号中的内容是密码,自己可以随便设置,为了后边方便不用修改war包中的连接配置,建议和本地MySQL设置一样的密码)
保存修改后的密码:
mysql> flush privileges; #作用:相当于保存,执行此命令后,设置才生效,若不执行,还是之前的密码不变
3、安装 Tomcat
注册tomcat,要用到tomcat的service.bat,如果你的tomcat没有这个,就重新下载一个有service.bat的tomcat。
点击Archives
java033 - Windows用Tomcat发布Java项目" class="left" height="400" src="https://img-blog.csdnimg.cn/img_convert/87ffe4d405fbbe7e34c8e9e2bea3dcbb.png" width="527" />
选择需要的版本,我用的是v8.5.45,选好了点击去之后再点击bin/
java034 - Windows用Tomcat发布Java项目" class="left" height="223" src="https://img-blog.csdnimg.cn/img_convert/deb8a81ae99ab118418147b62e2ed578.png" width="553" />
选择这个下载
java035 - Windows用Tomcat发布Java项目" class="left" height="37" src="https://img-blog.csdnimg.cn/img_convert/a3ac25f40b8a4cdde1bbf70405cd1e4a.png" width="570" />
下载完解压到想要存放的安装目录
我的tomcat的路径是:C:\Program Files\apache-tomcat-8.5.45所以下列的变量值就是我的tomcat路径:
(1)新建变量名:CATALINA_BASE
变量值:C:\Program Files\apache-tomcat-8.5.45
(2)新建变量名:CATALINA_HOME
变量值:C:\Program Files\apache-tomcat-8.5.45
java036 - Windows用Tomcat发布Java项目" class="left" height="76" src="https://img-blog.csdnimg.cn/img_convert/a803d2735ad11168d5032083b644c394.png" width="473" />
(3) 编辑变量名: Path
添加变量值:;%CATALINA_HOME%\lib;%CATALINA_HOME%\bin;
(分号是把path的各个变量分开)
java037 - Windows用Tomcat发布Java项目" class="left" height="195" src="https://img-blog.csdnimg.cn/img_convert/f58cdba883637c9f792bfbef3847362b.png" width="480" />
修改conf文件夹里的server.xml文件,如图,port是端口,一般是8080,我自己设得是70,添加URIEncoding=”UTF-8″,防止中文乱码。
java038 1024x386 - Windows用Tomcat发布Java项目" class="left" height="247" src="https://img-blog.csdnimg.cn/img_convert/a15a7200c73031312977fecd2937d3c8.png" width="655" />
管理员身份打开cmd, cd到tomcat的bin目录,输service install安装服务。
java039 - Windows用Tomcat发布Java项目" class="left" height="210" src="https://img-blog.csdnimg.cn/img_convert/b364e5b37384b6f2deeb4ee5c219ef68.png" width="575" />
(这张图借的,版本号和我的不一样,只做示意)
在服务里可以看到有tomcat8了
java040 - Windows用Tomcat发布Java项目" class="left" height="484" src="https://img-blog.csdnimg.cn/img_convert/be9721143f65c633263bafadd5e16abb.jpeg" width="620" />
后面启动直接startup,只要tomcat这个窗口不关,外网就可以直接访问部署在里面的项目。
java041 - Windows用Tomcat发布Java项目" class="left" height="368" src="https://img-blog.csdnimg.cn/img_convert/0b1ce77b653bf79ff7199b0839e968ef.png" width="661" />
浏览器网址输入localhost:70/ 配置成功会跳到此页面。
java042 - Windows用Tomcat发布Java项目" class="left" height="375" src="https://img-blog.csdnimg.cn/img_convert/9b36b4e9fc78144629e32fa3e5ccf1e7.jpeg" width="659" />
四、数据迁移到服务器
1、本地数据备份SQL
我们需要把本地的数据迁移到服务器上的数据库上。
我用的Navicat,推荐下面这个免安装的版本:
链接:https://pan.baidu.com/s/1y9flZHD9AgGfhz1pebPNyg
提取码:kkaf
java006 - Windows用Tomcat发布Java项目" class="left" height="472" src="https://img-blog.csdnimg.cn/img_convert/dac4855fa117d5118ca447dda5b3b99a.png" width="346" />
java007 - Windows用Tomcat发布Java项目" class="left" height="404" src="https://img-blog.csdnimg.cn/img_convert/ca7d6ec8318d6a440f596d67ab29d246.png" width="644" />
备份成功,后面只要把这个SQL文件导入数据库就可以了
java008 - Windows用Tomcat发布Java项目" class="left" height="415" src="https://img-blog.csdnimg.cn/img_convert/585775a54f22793ec6dd95b9cbe23a41.jpeg" width="613" />
2、云数据库导入SQL
把备份的sql数据存到云服务器的MySQL里面
我在云端也有一个Navicat
java043 - Windows用Tomcat发布Java项目" class="left" height="542" src="https://img-blog.csdnimg.cn/img_convert/0d3c6fc62f296b924e48364eb22b93ee.png" width="301" />
数据已经在数据库里了
java044 - Windows用Tomcat发布Java项目" class="left" height="320" src="https://img-blog.csdnimg.cn/img_convert/c4265149c224d9e2554056eded67bbba.jpeg" width="660" />
五、部署 Java 项目
把war包放在tomcat安装目录的webapps下
java045 - Windows用Tomcat发布Java项目" class="left" height="270" src="https://img-blog.csdnimg.cn/img_convert/51e7eaee3eba06f48d10fb30f9b9a026.png" width="563" />
启动tomcat(cmd里startup),访问 localhost:70/CRM
java046 1024x501 - Windows用Tomcat发布Java项目" class="left" height="321" src="https://img-blog.csdnimg.cn/img_convert/b34885bfc7ceb099129d4a99dee682df.jpeg" width="656" />
六、防火墙开放端口
1、防火墙开放端口
java047 - Windows用Tomcat发布Java项目" class="left" height="444" src="https://img-blog.csdnimg.cn/img_convert/ad2aabc860380f83bb88a77e38f0f467.jpeg" width="645" />
2、安全组开放端口
java048 1024x66 - Windows用Tomcat发布Java项目" class="left" height="42" src="https://img-blog.csdnimg.cn/img_convert/e0e4191469892f56c305f9a681bff29a.png" width="648" />
七、测试发布是否成功
这时再用本地的浏览器已经可以访问云服务器上的项目了。
java049 1024x534 - Windows用Tomcat发布Java项目" class="left" height="341" src="https://img-blog.csdnimg.cn/img_convert/4645eae50c1201595d8132b6b818d3ec.jpeg" width="653" />
java050 - Windows用Tomcat发布Java项目" class="left" height="330" src="https://img-blog.csdnimg.cn/img_convert/9687f57a06414cf13b1754d54f02d720.jpeg" width="657" />
八、常见问题
① 连接MySQL的时候报错The server time zone value ‘Öйú±ê׼ʱ¼ä’ is unrec。
500报错:java.sql.SQLException: The server time zone value ‘Öйú±ê׼ʱ¼ä’ is unrecognized or represents more than one time zone. You must configure either the server or JDBC driver (via the serverTimezone configuration property) to use a more specifc time zone value if you want to utilize time zone support.
解决方法:在语句”jdbc:mysql://localhost:3366/db_crm “后添加”?serverTimezone=GMT%2B8″:
java051 1024x157 - Windows用Tomcat发布Java项目" class="left" height="99" src="https://img-blog.csdnimg.cn/img_convert/18a948a7035e78bd533b36211b55a887.png" width="643" />
② 关于Unknown character set index for field ‘255’ received from server
原因是MySQL版本高,mysql的jar版本低造成mysql与jar的编码错乱引起的
链接:https://pan.baidu.com/s/18rxjcc9bfuCO8NOSVh0EVQ
提取码:2c3x
把mysql-connector-java-8.0.11.jar这个jar包复制到项目文件夹下WebContent\WEB-INF\lib里。
java052 - Windows用Tomcat发布Java项目" class="left" height="296" src="https://img-blog.csdnimg.cn/img_convert/6c557994bc28ef4f91322f0bc9812c85.png" width="637" />
替换过后可能会出现 [在工程和使用过原来包的java文件上会出现红叉],将有红叉的java文件找到,将有红×的那一行删掉,再重新导那个包就可以了。
③ 运行过程中,jQuery前端框架自带easyui-lang-zh_CN.js里的中文乱码了
因为在服务器之前本地运行是正常的,所以排除项目本身的问题,腾讯云为了用户的傻瓜式操作,不会让我们去为了基础功能手动改配置的,所以也不可能有问题。最后排除到版本不同的tomcat上。
步骤一:
在tomcat目录下的conf文件夹下,打开server.xml文件 ;
在Connector 中添加 URIEncoding=”UTF-8″;
java053 1024x386 - Windows用Tomcat发布Java项目" class="left" height="242" src="https://img-blog.csdnimg.cn/img_convert/06105b10a944f356c1a97fd64b6b509a.png" width="642" />
步骤二:
在tomcat目录下的bin文件夹下,打开catalina.bat文件
java054 - Windows用Tomcat发布Java项目" class="left" height="215" src="https://img-blog.csdnimg.cn/img_convert/1b08b3aef8826bb8cae785374a7c47b7.png" width="642" />
setlocal下增加一行:
set JAVA_OPTS=-Dfile.encoding=UTF8
java055 1024x481 - Windows用Tomcat发布Java项目" class="left" height="310" src="https://img-blog.csdnimg.cn/img_convert/4b3869810c5e78fb57e43b39493b2329.png" width="661" />
步骤三:
打开注册表,找到HKEY_CURRENT_USER→Console→Tomcat,找到CodePage项,没有则创建,更改值为十进制的65001,点击确定。
或直接复制下面代码,保存为.bat文件,直接运行。
set rr="HKCU\Console\Tomcat"
reg add %rr% /v "CodePage" /t REG_DWORD /d 0x0000fde9 /f>nul \
重新启动tomcat后,完美解决。