`
wx1569578408
  • 浏览: 71445 次
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

Intellij Idea 远程部署web应用

 
阅读更多

  应用发布前得在内网的服务器上测试,之前一直都是build一个war包通过ftp上传到服务器上,然后手动发布,再测试,整个流程在正常的情况下要耗掉3分钟左右的时间。然后出现问题的话得远程调试,修改后再重复步骤一,又要耗掉3分钟左右的时间(3分钟有点久,当你打开了很多窗口的时候)......这个问题我忍了很久了。

  最初为了省时,在本地搭好dns服务器, 通过nginx把域名的访问转回本地测试,在Intellij Idea中折腾了一段时间,终于让tomcat既可以在本地发布域名应用也可以在IDE调试。这种方式毕竟不适合多人合作的工作形式。而且第一次配置比较耗时,还不一定一下子就成功,因为是一种骗过Intellij Idea的手段,出现问题还要清一下缓存重启IDE,再配置。每次测试后又要还原。这个我也忍了。。。

  昨天,我不想再忍了,想寻求一种比较优雅的方式。我知道tomcat每个应用都可以配置reloadable为true,当文件变更的时候会重新发布,那么只要替换掉其运行的文件就可以了。马上就想到了ftp,下面是实现方式(用vsftpd经过一番折腾后):

    1.  为每个应用创建一个用户名,指定用户的主目录为应用发布后的目录。

        sudo useradd -d /data/app/xxx -m xxx

        sudo passwd xxx

    2. 设置vsftpd

        sudo mv /etc/vsftpd.conf /etc/vsftpd.conf_bak        // do some backup

        sudo vi /etc/vsftpd.conf: 

        local_enable=YES

        write_enable=YES

        chroot_local_user=NO          //or yes

        chroot_list_enable=YES        //在chroot_list中指定的用户可以登录,chroot你懂的,指定了用户的根目录为上一步指定的目录

        chroot_list_file=/etc/vsftpd.chroot_list    //该文件指定chroot user

        pam_service_name=vsftpd

        allow_writeable_chroot=YES

    3. echo "xxx" | tee -a /etc/vsftpd.chroot_list

    4. systemctl restart vsftpd.service

 经过上一步设置后可以使用xxx登录ftpserver了,多个应用可以设置多个用户。下一个问题就是ftp不能上传文件夹,what the fuck...我竟然忘记了。谷狗了一下,发现Intellij Idea有个source synchronizer的插件,是通过ftp进行源码同步的。下载后发现其不能指定非java模块的文件夹,令我感到意外的是在同一级菜单发现了另一个有意思的东西:161009_w3Kl_3492483.png

  5. 设置ftp:

161713_XD1g_3492483.png005054_bdSy_3492483.png

6. 查看Remote Host: 点图一的“browse remote host" 或 右边的162043_deCi_3492483.png

162314_wMQV_3492483.png

点击upload就把指定的本地目录上传到服务器目录了,tomcat发现文件变更就自动重新发布了, 整个操作只需要build一下应用,点一下上传,爽死我了。。。

然而耽搁了主要的事情。。。

后续:

参考:https://serverfault.com/questions/6895/whats-the-best-way-of-handling-permissions-for-apache-2s-user-www-data-in-var

由于每次上传的新文件都没有访问权限,对此做了如下操作:

1. 新增一个组别:    groupadd www

2. 给组别添加用户: usermod -a -G www xxx

3. 更新目录与文件权限:

    find /data/app -type d -exec chmod 2775 {} +

    find /data/app -type f -exec chmod 0664 {} +

4. 设置组别的acl,目的是使这些文件夹下新增的文件都附上可读权限(其实也可以设置umask,这里选择acl是因为不用修改系统文件,比较方便)

    sudo setfacl -R -d -m g:www:rwx /data/app        //递归设置文件夹acl

5. 至此,每次上传的新文件都能被访问了。不用手动chmod了。

   

转载于:https://my.oschina.net/eyesos/blog/1492338

分享到:
评论

相关推荐

    IntelliJ IDEA 中文指南.pdf

    文档不仅涵盖了安装配置、基础操作,还深入到了插件应用、快捷键操作、项目管理以及DevOps实践等多个方面,对于任何希望使用IntelliJ IDEA提高开发效率的Java开发者来说,这份指南都是一个宝贵的资源。

    Intellij IDEA教程.pdf

    JRebel插件支持热部署功能,使得开发人员在开发Web应用时可以不用重启服务器即能看到代码更改的效果,极大地提高了开发效率。 在常用技巧方面,IntelliJ IDEA提供了许多便捷功能。例如,Debug跟踪可以设置条件变量...

    Java最强编译器 Intellij IDEA 使用教程

    由于Spring框架在Java开发中的广泛应用,IntelliJ IDEA 提供了专门针对Spring的支持,比如SpringBeanExplorer等工具,用于管理和查看Spring项目中的bean。 综上所述,IntelliJ IDEA 不仅是一个功能全面的Java IDE,...

    IntelliJ IDEA 12创建Maven管理的Java Web项目

    - **服务器配置**: 文档中提到需要配置Tomcat6服务器,意味着需要在IntelliJ IDEA中设置服务器环境,使项目能够在服务器上部署并运行。 - **部署选项**: 在IDEA中,通常可以设置部署方式(如war包部署)、部署位置...

    IntelliJ IDEA 使用教程

    ### IntelliJ IDEA 使用教程知识点...- **核心知识点回顾**:概括本教程覆盖的主要内容,强调学习IntelliJ IDEA的重要性和实际应用场景。 - **后续学习路径**:推荐进一步学习资源和技术方向,鼓励读者不断探索和发展。

    最新IntelliJ IDEA入门图文教程整理完整版

    - 配置运行/调试配置,如Java应用程序、Web应用、远程调试等。 - 支持打包为可执行JAR或WAR文件,方便部署。 11. **集成开发工具** - IntelliJ IDEA集成了许多开发工具,如Maven、Gradle构建工具,JUnit测试框架...

    IntelliJ IDEA 2017配置JSP+tomcat

    2. 使用Tomcat远程部署到远程CentOS服务器:配置IntelliJ IDEA以远程部署到服务器,修改Tomcat配置文件,并在服务器上进行测试。 附录部分: 1. IntelliJ IDEA基础配置及概念:包括如何修改代码编辑的字体、设置...

    intellij web 部署图

    IntelliJ IDEA是一款强大的Java...通过以上步骤,你可以轻松地在IntelliJ IDEA中创建、配置和部署Web应用到Tomcat服务器,享受到高效且流畅的开发流程。不断学习和掌握这些技巧,将极大地提升你的开发效率和代码质量。

    IntelliJ-IDEA13基础教程

    这是一个提高开发效率的重要特性,尤其在进行Web应用开发时。 4. 常用技巧: 教程中提到了一些高效开发的技巧,比如Debug跟踪条件变量、LiveTemplate的使用、代码分析、代码重构等。 5. 版本控制/本地历史: 本...

    Intellij idea远程debug连接tomcat实现单步调试

    IntelliJ IDEA 远程 debug 连接 Tomcat 实现单步调试的应用场景非常广泛,例如在开发 Web 项目时,可以使用这种方法来调试程序,在生产环境中,可以使用这种方法来排查错误等。 7. IntelliJ IDEA 远程 debug 连接 ...

    IntelliJ IDEA 简体中文专题教程.pdf

    2. **Java热部署插件JRebel**:介绍了如何安装和使用JRebel来实现Java应用的热部署。 3. **特殊快捷键Alt+Enter**:强调了Alt+Enter组合键在IDEA中的强大功能。 #### 教程总结与使用建议 1. **教程总结**:回顾了...

    Intellij Idea 一键打补丁插件

    一旦安装成功,用户可以在IntelliJ IDEA的工具栏上看到新的菜单项或者快捷键,用于触发补丁的部署。在使用之前,需要配置插件的参数,包括远程服务器的地址、端口号、用户名、密码以及目标目录。这些信息通常保存在...

    2017版intellij idea使用教程

    IntelliJ IDEA是一款由JetBrains公司开发的Java集成开发环境(IDE),被广泛应用于各种Java应用的开发,包括Web应用、企业级应用、Android应用等。2017版的IntelliJ IDEA在功能和用户体验上都有了显著的提升,为...

    ( IntelliJ IDEA 简体中文专题教程(电子版-2015).CHM

    教程会展示如何在IDEA中配置和运行Web应用,以及如何进行前端资源的管理和预览。 在项目构建方面,IDEA支持Maven和Gradle等构建工具,教程会详细介绍如何在IDEA中配置和执行构建任务,包括打包、部署等。 最后,...

    Intellij IDEA常用操作说明.zip

    - 创建新项目时,需选择项目类型(如Java应用、Web应用、Spring Boot等)和构建系统(Maven或Gradle)。 - 配置项目的源代码目录(src/main/java、src/main/resources等)和其他设置。 3. **代码编辑**: - ...

    Intellij IDEA教程

    settings配置文件通常位于C:\Users\{User}\.IntelliJIdea12目录下。 接下来,用户需要选择版本控制插件。IntelliJ IDEA支持多种版本控制系统,包括Git、Subversion(SVN)、ClearCase、CVS、Mercurial(hg4idea)、...

    使用InteliJ-IDEA开发Springmvc

    在开发完毕后,可以通过IntelliJ IDEA的部署功能将应用部署到本地或远程的Tomcat服务器上进行测试和运行。整个开发流程遵循最佳实践,能够使开发工作更加系统化、规范化。 总的来说,使用IntelliJ IDEA开发...

    Intellij Idea开发工具详细使用文档.docx

    6. **配置Tomcat**:对于Web应用,IntelliJ IDEA提供方便的Tomcat服务器集成,可以配置Tomcat路径、部署路径以及启动和停止服务器。 7. **模块间依赖关系**:在项目中,可以管理不同模块之间的依赖,例如对Spring、...

    IntellijIdea开发工具详细使用文档.docx

    - **配置Tomcat**:IntelliJ IDEA可以集成Tomcat服务器,方便地部署和运行Web应用程序。 - **配置编译class的环境**:设置编译选项,如源代码和目标兼容性,以及编译过程中的其他参数。 - **配置web环境**:针对...

Global site tag (gtag.js) - Google Analytics