美文网首页
阿里云部署应用

阿里云部署应用

作者: 云师兄 | 来源:发表于2018-04-07 20:45 被阅读179次

本文介绍使用spring boot应用打包后的war包在阿里云平台上部署并访问应用。

一、打包

  1. 首先我们对spring boot项目的pom.xml文件进行修改:
<packaging>war</packaging>
  1. 点击IDEA左下角的按钮后选择maven projects,双击lifecycle下的install按钮即可打包:



    image.png

    打包后可发现在项目根目录下的target目录下出现以.war和.war.original后缀的文件

二、部署

我们先将上面生成的两个war包上传到阿里云后,执行java -jar xxx.war 就可以启动这个spring boot项目了。

部署过程中遇到操作上的误解,只有这篇文章是可行的,分享一下:https://blog.csdn.net/wangrui8431/article/details/79022501

三、阿里云相关配置

(一)应用配置

由于项目中默认的端口号是8080,我们需要在阿里云上进行配置才能成功访问应用:


image.png

从截图看除了配置8080端口以外,安全组中还加了3306的端口配置,这是mysql数据库默认的端口号,下面马上用到。

(二)数据库配置

  1. 本例使用的数据库是mysql,安装好mysql后,我们首先进入/usr/bin/目录下执行mysql -u root -p命令(默认用户是root),输入密码后登录mysql执行下面两句命令:
grant all privileges on *.* to 'root'@'%' identified by 'password'; 
flush privileges; 

第一个*是数据库,可以改成允许访问的数据库名称 ,第二个 是数据库的表名称,代表允许访问任意的表 ,root代表远程登录使用的用户名,可以自定义 ,%代表允许任意ip登录,如果你想指定特定的IP,可以把%替换掉就可以了 ,password代表远程登录时使用的密码,可以自定义 ;flush privileges;这是让权限立即生效 。

  1. 修改my.cnf配置文件
    这个是mysql的配置文件,如果你无标题文章找不到在哪里的话,可以输入find /* -name my.cnf 找到,在实际查找中发现my.cnf这个配置文件中并没有bind-address这个配置,但是我在它关联的其他配置文件/etc/mysql/mysql.conf.d/mysqld.cnf中找到这行配置了。通过vim编辑该文件,找到bind-address = 127.0.0.1这一句,然后在前面加个#号注释掉,保存退出。

  2. 重启服务
    service mysql restart或者执行 /etc/init.d/mysql restart

  3. 配置阿里云上3306的端口配置

执行完上述四点后,我们就可以使用mysql workbench来远程登录并且创建数据库和表了。

其他问题

  1. 由于项目中使用到了thymeleaf,之前写法如下:
    public ModelAndView avatar(@PathVariable("username") String username, Model model) {
        User  user = (User)userDetailsService.loadUserByUsername(username);
        model.addAttribute("user", user);
        return new ModelAndView("/userspace/avatar", "userModel", model);
    }

userspace目录位于template目录下,在本地这样请求页面能正常打开,但是一部署到阿里云启动后访问就失败,提示找不到这个目录下的模板,后来上网查到并解决,正确的写法应该把userspace前面的斜杠去掉。

    public ModelAndView avatar(@PathVariable("username") String username, Model model) {
        User  user = (User)userDetailsService.loadUserByUsername(username);
        model.addAttribute("user", user);
        return new ModelAndView("userspace/avatar", "userModel", model);
    }

这样thymeleaf才能正常访问模板页面。

2.在写页面的时候发现一个问题,那就是当页面显示不下的时候没有纵向的滚动条,后来发现设置滚动条的样式加在了<div>元素上,将这个样式加在<body>元素上后就出现滚动条了,下面是具体的代码:

<body style="height: auto; overflow-y:scroll">
    <div class="container">
    ...
   </div>
</body>

相关文章

网友评论

      本文标题:阿里云部署应用

      本文链接:https://www.haomeiwen.com/subject/nkfuhftx.html