第一步,登录

我选了ubuntu系统,账户是ubuntu——,于是在终端里:ssh ubuntu@aa.bb.cc.dd 之后输入密码,登陆成功。

腾讯云是默认不提供root账户的,但是没有root账户,我们寸步难行,所以第一件事,用腾讯云提供的命令,切换到root账户:

sudo /bin/su - root

如果没有root账户,接下来的步骤你都很难进行。

之后我们进入我惯用的一个文件夹:cd /usr/local

第二步,下载安装jdk。

wget http://download.oracle.com/otn-pub/java/jdk/8u121-b13/e9e7ea248e2c4826b92b3f075a80e441/jdk-8u121-linux-x64.tar.gz?AuthParam=1490750662_b8ecb2cd247de00b452a7363e9763c98

这个链接需要你用chrome浏览器,右击页面任意部分,选择检查-网络,然后对linux 64位 tar.gz格式的jdk,点击下载,然后看network面板中,请求的链接。

直接右击复制链接是不行的。

这里下了很久很久,大概一个半小时,才把这170兆的jdk下完。可能是因为我只选了1兆的带宽。

之后利用mv命令把这个文件命名为jdk.tar.gz,然后解压

tar vzxf jdk.tar.gz

把安装后多出来的新文件夹命名为jdk8。

然后设置环境变量vi /etc/profile

末尾加上:

export JAVA_HOME=/usr/local/jdk8

export PATH=$JAVA_HOME/bin:$PATH

jdk1.5以上的版本,不用设置CLASSPATH环境变量。

然后执行

source /etc/profile

这样jdk就安装完成了,可以输入 java -version查看。

第三步,tomcat

依然是在/usr/local文件夹里,链接是:

wget http://mirrors.hust.edu.cn/apache/tomcat/tomcat-8/v8.5.12/bin/apache-tomcat-8.5.12.tar.gz

之后的步骤如同jdk,解压即可,不需要设置环境变量,之后编辑远程tomcat服务器下的conf/tomcat-users.xml,在末尾增加(其实只要拉到文件末尾,去掉注释改一下就可以了)

将上面的password改为自己的密码,注意对于tomcat9来说,不能同时赋予用户manager-script和manager-gui角色。第一个角色可以让你通过Maven的tomcat7插件部署项目,第二个角色可以让你进入tomcat的管理页面。

保存tomcat-users.xml。

在tomcat服务器的conf/Catalina/localhost/目录下创建一个manager.xml文件,写入如下值:

<?xml version="1.0" encoding="UTF-8"?>

docBase="${catalina.home}/webapps/manager">

之后可以到tomcat/bin/下面,用./startup.sh来启动了。此时的tomcat运行在8080端口,以前我都是用防火墙将80端口转发至8080解决的,但腾讯云不允许改动防火墙设置。

你可以用lsof -i:80这样的指令来查看端口占用情况。

延伸——(为什么tomcat无法绑定80端口,解决方案,以及更优解):Tomcat默认是绑定8080端口,参考tomcat/conf/service.xml:

connectionTimeout="20000"

redirectPort="8443" />

你可以把这里的8080改成80,但这样就不能简单的./startup.sh启动了,要用sudo /usr/local/tomcat/bin/catalina.sh(因为linux是默认1024一下的端口不开放的,必须要用权限),但这样时tomcat会提示你找不到java的环境变量:

Neither the JAVA_HOME nor the JRE_HOME environment variable is definedAt least one of these environment variable is needed to run this program

因为,在catalina.sh中,写到

CLASSPATH=

if [ -r "$CATALINA_BASE/bin/setenv.sh" ]; then

. "$CATALINA_BASE/bin/setenv.sh"

elif [ -r "$CATALINA_HOME/bin/setenv.sh" ]; then

. "$CATALINA_HOME/bin/setenv.sh"

fi

也就是说,你需要在bin文件夹下,vim setenv.sh,在这里添加你的Java环境变量:

export JAVA_HOME=/usr/local/jdk执行。

但其实这样,并不太好,tomcat只是java的东西,如果你还有php的,.net的,Python的别的程序也想要80端口怎么办?

其实你可以就让tomcat在8080端口,用Nginx解决,我会放在第五步说。

第四步:安装mysql

傻瓜操作,只管输入 sudo apt-get install mysql-server

服务器自己就会跑起来安装,中间会让你输入密码,比如我输入mysql。

安装成功后,会自动运行,我们检查一下:

~ ps -aux|grep mysql

mysql 3205 2.0 0.5 549896 44092 ? Ssl 20:10 0:00 /usr/sbin/mysqld

conan 3360 0.0 0.0 11064 928 pts/0 S+ 20:10 0:00 grep --color=auto mysql

接下来我们改一下MySql的默认字符集

用vi打开MySQL服务器的配置文件my.conf

~ sudo vi /etc/mysql/my.conf

此时这个文件里其实没有什么内容,直接拉到底部复制粘贴就可以了。

在[client]标签下,增加客户端的字符编码

[client]

default-character-set=utf8

在[mysqld]标签下,增加服务器端的字符编码

[mysqld]

character-set-server=utf8

collation-server=utf8_general_ci

此时的MySQL只会侦听127.0.0.1:3306的连接,由于我只有一台云服务器,这样显然是安全且合适的。

第五步,Nginx

Nginx可以绑定80端口。Nginx的安装好像众说纷纭,我是看了一下2篇文章安装成功的。

这两篇,都是好文章,第一篇后半段有一些必须的库,第二篇中间有安装方法,注意那里的make前面没有#。

Nginx有很多配置文件,真正有用的在/etc/nginx下面,这里nginx.conf是主配置文件,默认会把conf.d这个文件夹include进去,你只需要在conf.d下面写一个配置文件就行。

进入 conf.d,然后vim tomcat.conf在里面写一个server:

server{

listen80;

server_name localhost;

location/{

proxy_pass http://localhost:8080;

}

}

之后,你可以测试一下你的配置文件,nginx -t -c /etc/nginx/nginx.conf

重启nginx,这个重启也分为2种,看你的是通过apt-get安装的还是解压的,我是解压的,就得先杀死进程,

root@VM-5-12-ubuntu:/etc/nginx/conf.d# ps -ef | grep nginx

root 25044 1 0 13:31 ? 00:00:00 nginx: master process ./nginx

nobody 25045 25044 0 13:31 ? 00:00:00 nginx: worker process

root 28981 26238 0 14:36 pts/1 00:00:00 grep --color=auto nginx

这样可以看到master进程的pid,把它kill:kill -QUIT 25044

之后再去你的nginx文件夹里,进入sbin文件夹,执行nginx文件。

这样,基本上就行了。

第六部,配置ssh key

建立SSH信任,在自己的电脑上使用 ssh-keygen -t rsa命令生成公私钥,一般会存放在~/.ssh文件夹下,把你的公钥,即 id_rsa.pub上传至服务器:

scp ~/.ssh/id_rsa.pub ubuntu@aa.bb.cc.dd:~/

之后利用sudo命令把它放进.ssh文件夹下,并改名为 authorized_keys

基本上就这些了,我试了在root用户的~/.ssh文件夹下面也放我的公钥进去,但是依然不能默认root用户登录。

最后复习一下用户切换指令:

ubuntu@VM-5-12-ubuntu:~$ sudo /bin/su -root

root@VM-5-12-ubuntu:~# su -ubuntu

ubuntu@VM-5-12-ubuntu:~$

接下来等待备案完成即可。

java项目部署方案模板_JavaWeb项目部署指南相关推荐

  1. 《信息化项目文档模板二——项目启动会文档模板》

    系列文章目录 <信息化项目文档模板一--项目需求说明书> <信息化项目文档模板二--项目启动会文档模板> <信息化项目文档模板三--会议纪要模板> <信息化项 ...

  2. 什么是项目建设方案?与项目建议书的联系与区别?

    目录 项目建设方案 定义 作用 内容 写法 与项目建议书的区别和联系 项目建设方案 项目建设方案没有明确的定义,叫法也不一样,原因在于流程的不同,有些地区项目申报的时候,<项目建议书>之后 ...

  3. java 项目名命名规范_javaWeb项目命名规范

    标签: 一.项目结构 这里和其他项目区别不大,我将模板抽离出来,更容易分析和理解: 解释一下:js主要包括extends(引入第三方的js).module(项目模块自己的js).lib(引用包,这里也 ...

  4. java 拦截html请求参数值_javaweb项目,html文件放在了WebRoot下,如何拦截访问html的请求呀?...

    可以在web.xml启用Filter,如:<?xml version="1.0" encoding="UTF-8"?> xmlns:xsi=&quo ...

  5. 互联网公司部署方案:蓝绿部署、灰度发布以及滚动发布

    设计.开发.测试.部署,流程都讲过了,微服务技术栈,服务注册中心,nacos,RPC框架,dubbo,设计就要把各个服务拆分完毕,包括你的业务逻辑,需求,接口,数据库,类,功能的时序图 每个人就负责开 ...

  6. java web部署文档_javaweb项目实施部署文档

    javaweb项目实施部署文档 一 .安装配置jdk Jdk的下载地址: http://www.oracle.com/technetwork/java/javase/downloads/index.h ...

  7. Spring Boot 项目部署方案 /打包 + Shell 脚本部署详解,稳的一批

    本篇和大家分享的是 Spring Boot 打包并结合 Shell 脚本命令部署,重点在分享一个shell 程序启动工具,希望能便利工作: profiles指定不同环境的配置 maven-assemb ...

  8. 我们小公司使用了6年的项目部署方案,打包 + 一键部署详解,稳的一批

    时间就如白驹过隙,转眼间已经是 2028 年了.小二入职一家初创公司已经 6 年了,眼瞅着开发团队从 3 个人壮大到 54 人,心里有时候会感觉挺不可思议的. 这些年,身边的同事来了又去,有些刚熟悉没 ...

  9. 我们公司使用了6年的Spring Boot项目部署方案,打包 + 一键部署,稳的一批

    时间就如白驹过隙,转眼间已经是 2028 年了.小二入职一家初创公司已经 6 年了,眼瞅着开发团队从 3 个人壮大到 54 人,心里有时候会感觉挺不可思议的. 这些年,身边的同事来了又去,有些刚熟悉没 ...

最新文章

  1. RedisDesktopManager连接不上redis的解决方法
  2. PAT甲级1053 Path of Equal Weight (30分) :[C++题解]dfs求树的路径长度、邻接表
  3. vs2015 linux jni,使用Visual C++ 跨平台移动技术调试JNI Android 应用程序
  4. Centos7+Nginx+Keepalived实现Apache服务的高可用负载均衡
  5. Web前端笔记-two.js实现坐标定位(动画效果非瞬移定位)
  6. 模拟实现HashMap
  7. 2018.12.18
  8. matlab中结构体使用方法
  9. Apache环境.htaccess伪静态301跳转(www与不带www)
  10. ORACLE账号注册之后,要修改密码才能用
  11. c语言编译器turbo,C语言编译器TurboC使用技巧解析
  12. css属性table
  13. 测试电商项目 第三章
  14. 虚拟服务器修改教程,飘渺雪域商业一键虚拟端+修改元宝教程【无标题亲测
  15. 美国伊利诺伊大学香槟分校计算机专业,美国伊利诺伊大学香槟分校的专业排名分析...
  16. WR720N改造记录1
  17. 思潮——《别输在不会表达上》
  18. Wos/Pubmed/Scopus数据库一键去重+清洗数据 CiteSpace Vosviewer
  19. 网络游戏服务器编程01 大纲
  20. 三国志战略版:Daniel_平民福音-“黑科技阵法”三势阵

热门文章

  1. 2022年12月DAMA-CDGA/CDGP数据治理认证招生简章
  2. C语言恶作剧(1):交换鼠标左右键
  3. 程序设计大赛—Booklet Printing
  4. Dota2技能系统设计分析
  5. Redis - 1、redis概述和安装
  6. 再见,广州!你好,杭州!
  7. MYSQL在众多表中查询表名和字段名
  8. autojs-读写ini
  9. 关于使用SPI总线读取并转串(74HC165)发生数据移位的问题
  10. 人脸识别门禁系统如何安装?