最近需要将一个Java Web项目部署到服务器上,方便多人共享访问。这也是我第一次接触服务器之类的东西,也花了一点时间,最终总算部署成功,写下一篇文章记录以便日后回顾。

购买服务器

第一步当然是需要购买一台服务器了,我选择的是阿里云的ECS,对于新用户有一定的优惠活动。服务器徐购好后可以在管理控制台下看到自己服务器的配置情况。我买的是centos7 1核2G的,详情如下:


本地主机连接服务器

购买了服务器之后,下一步当时是要远程操作服务器,所以需要和远程服务器建立连接。这里有两种方式:一种是使用阿里云控制中心自带的管理终端进行远程连接,另一种是使用熟知的ssh协议。

使用管理终端连接

登陆ECS控制台,单击左侧导航栏里的实例,右边有一个远程连接选项

注意第一次登陆时会分配一个密码,将其记住,下次需要用这个密码登陆,登陆后的界面如下所示:

使用ssh连接

windows下需要下载putty工具,需要用puttygen生成密钥对,具体可参见:

https://help.aliyun.com/document_detail/51798.html?spm=5176.doc25425.2.11.Fe06aK

搭建Java Web开发环境

接下来需要在远程centos服务器上搭建Java Web开发环境,这里可以选择镜像部署和手工部署,阿里云上提供了很多相关环境的镜像,我这里使用手动部署的方式自己安装软件。部署Java Web需要分别安装配置jdk、tomcat、mysql,我创建了一个用户,并给该用户授权sudo。在该用户的目录下分布创建java、tomcat和mysql目录用于存放相应的软件和文件。

JDK配置

可以在官网上或使用命令wget下载相应版本的jdk安装包,由于我的本地项目使用的是jdk8,所以这里也下载对应的版本:

wget http://mirrors.linuxeye.com/jdk/jdk-8u144-linux-x64.tar.gz

将其解压到安装目录,我这里是/home/vcc/java

tar xzf jdk-8u144-linux-x64.tar.gz -C /home/vcc/java

设置环境变量:

编辑/etc/profile文件:

sudo vi /etc/profile

进入编辑模式后在最后添加如下信息:

#set java environment
export JAVA_HOME=/home/vcc/java/jdk1.8.0_144
export CLASSPATH=$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib
export PATH=$JAVA_HOME/bin:$PATH

保存后退出,加载环境变量:

source /etc/profile

查看jdk版本:

tomcat安装配置

tomcat的安装和jdk类似,需要注意要想在外部使用服务器的ip地址访问,需要在阿里云安全组规则中允许8080端口通过,详情如下:

注意在前面ssh连接中也需要设置安全组规则,配置好,在本机输入ip地址:8080即可访问tomcat页面,表明配置成功,具体可参见阿里云官方文档:

https://help.aliyun.com/document_detail/51376.html?spm=5176.doc52806.6.757.bJq7gM

mysql安装配置

本来想安装mysql5.7的,结果安装过程中总是出现问题,就该换mysql5.6了,安装教程网上应该有很多,这里就不多说了。安装好后运行命令:

service mysqld start

启动mysql后,运行命令:

mysql -u root -p

使用root用户登陆mysql。

部署Java Web项目

我需要将本地的Java Web工程打包成war,以及将数据库导出至sql文件一并上传到服务器上。这里可以使用pscp工具进行本地主机和服务器之间文件的上传和下载,需要下载pscp并和putty放在同一目录下,cmd进入到putty目录,使用命令:

pscp E:\data.sql root@ip地址:/home/vcc/mysql

将项目的war包放到tomcat的webapps目录下,tomcat运行后会自动将其解压,然后就可以使用路径来访问了。

对于数据库的导入,需要在mysql命令下先创建同名的数据库,然后使用source data.sql运行即可。这里要注意需要将MySQL客户端和服务器端的编码都设置为utf8,否则在部署访问的时候会出现问题。这里可以通过修改/etc/my.cnf文件:

在本机上成功访问项目:

最新文章

  1. 12-27 UITableView常用属性及方法
  2. 终于把你必须知道的.NET看完了
  3. css知识汇总
  4. Spring Data JPA教程,第一部分: Configuration(翻译)
  5. 使用 PIVOT 和 UNPIVOT 行转列 列转行 报表统计 函数
  6. hdu2488 dfs
  7. 查询反模式 - 正视NULL值
  8. rc.local自启动学习
  9. removeAll
  10. flex知识点归纳
  11. 阿里云ECS发送邮件到腾讯企业邮箱
  12. CentOS 7编译OpenWRT
  13. IE低版本 JSON.parse 和stringify 的兼容 (IE8以下)
  14. CPU利用率和CPU负荷(CPU usage vs CPU load)
  15. caffe入门-人脸检测1
  16. IIS发布错误及解决
  17. python 使用 sorted 对 列表嵌套元组的数据进行排序
  18. opengl导入obj模型
  19. LOJ2538. 「PKUWC2018」Slay the Spire【组合数学】
  20. .NET之类型转换

热门文章

  1. C# .NET Web API 如何自訂 ModelBinder
  2. cshtml中正则表达式使用后台代码
  3. Odoo 12 开发手册指南(八)—— 业务逻辑 – 业务流程的支持
  4. The specified type member 'Date' is not supported in LINQ to Entities. Only initializers, entity members, and entity navigation properties are supported.
  5. 最短路问题之Bellman-ford算法
  6. 查找最近公共祖先(LCA)
  7. web服务器之nginx和apache的区别
  8. Python基础(文件操作)
  9. mysql的学习笔记(四)
  10. Celery异步调度框架(一)基本使用