记小白第一次使用LINUX搭建web、小程序服务器 MySql+Java+Tomcat (很全的安装过程收集整合)

  • 一、使用LINUX搭建服务器的原因
    • 准备工具
  • 二、下载配置
    • 2.1 阿里云服务器的购买与连接
    • 2.2 使用securtCRT连接,使用lrzsz上传下载
    • 2.3 nginx(非必要),~~node.js~~
    • 2.4 安装MySQL5.7
      • 2.4.1 navicate使用SSH连接数据库
      • 2.4.2 JDBC远程连接数据库
    • 2.5 java安装配置
    • 2.6 tomcat安装配置
      • 2.6.0 几个常用的指令
      • 2.6.1 Tomcat安装配置
        • tomcat环境变量配置
      • 2.6.2 无法访问tomcat
      • 2.6.3 (碰到的问题)tomcat没有正常开启,无法关闭,无法开启监听8005端口
      • 2.6.4 SSL证书安装
  • 三、差不多了

一、使用LINUX搭建服务器的原因

因为打算学习做一个微信小程序玩玩,所以去阿里云买了个轻量应用服务器,开始准备搭建自己的微信小程序服务器环境。但是这么一波操作下来,整个人都不好了。配置上一大堆的毛病,然后自己还是第一次使用linux,找了一大堆有用的没用的东西,网上杂七杂八解决方法,看着难受。现在就终于配置好了,就整合一下配置步骤,记录下来和大家分享一下(其实阿里云里已经有帮我们搭建好环境的套餐,但我还是更倾向于自己动手解决,藉此学习学习)

准备工具

  • 云服务器(我买的学生版轻量应用服务器)
  • SSH工具(如:SecurtCRT)
  • node.js、nginx
  • MySQL(mysql5.7)
  • Java(jdk1.8.0_212)
  • Tomcat(tomcat9.0.21)

二、下载配置

2.1 阿里云服务器的购买与连接

这个就去官网买一下就好了,我安装的是CentOS,然后可以用里面控制台自带的远程登录连接到服务器;或者下载SSH工具(如:SecurtCRT),用购买的服务器的公网ip登录名(一般为root)、密码登录,然后再去买一个域名,绑定备案一下,并申请ssl证书。没有备案的话,域名是无法访问的,当然刚开始会有一小段时间还能访问一下。(ps:阿里云可以直接选择安装宝塔面板,系统安装完成后,用浏览器访问搭建好后的宝塔面板管理界面,可以可视化管理服务器)

本篇主要记录配置的方法及遇到的问题的解决,云服务器购买等可见参考文章1

2.2 使用securtCRT连接,使用lrzsz上传下载

感觉用个工具比较方便,网页版的用起来感觉不是很顺手,页面一开多了就找不到了。SecurtCRT网上都找的到,怎么用的话下载页面都有介绍。

要将windows的文件上传到linux服务器上,或者从linux服务器上下载文件到windows上,可以在linux安装lrzsz代替ftp上下载,详见参考文章2

运行指令yum -y install lrzsz

上传文件,直接输入命令:rz,之后就会弹出文件选择框让你选择要上传的文件。
下载文件,直接输入命令:sz 要下载的文件的路径,例如:sz /opt/a.txt,默认下载到本地电脑的Downloads文件夹,

2.3 nginx(非必要),node.js

(更新)可以使用宝塔面板一键安装nginx以及配置SSL证书,方便操作
(无特殊需求服务器用不到node.js,只需在本地安装打包小程序)

这边的话可以看一下linux每个目录的作用。参考文章3

可以选择是否使用nginx来实现反向代理,配置SSL证书(微信小程序必备),以及负载均衡。具体详细的nginx配置需另找文章。

微信小程序的 wx.request() 发起的是HTTPS请求(查看小程序开发文档),需要安装配置node.js和 nginx(博主最后用的是tomcat所以这边就不配置了,可见阿里云文档),ssl证书安装配置将在下面的tomcat安装配置中说明

1、创建文件夹www,定位到www目录下mkdir /wwwcd /www2、下载node.jswget https://npm.taobao.org/mirrors/node/v9.9.0/node-v9.9.0-linux-x64.tar.xz
(node后面版本可以自行更改,打开https://npm.taobao.org/mirrors/node找到想要的版本地址就行)3、使用 ls 可查看当前目录下的所有文件、文件夹
4、解压tar -xvf node-v9.9.0-linux-x64.tar.xz5、进入解压目录下的 bin 目录,执行 ls 命令,有 node 和 npm,测试是否安装成功(会显示版本号)cd node-v9.9.0-linux-x64 && ls./node -v6、安装成功。现在 node 和 npm 还不能全局使用,做个链接ln -s /www/node-v9.9.0-linux-x64/bin/node /usr/local/bin/node ln -s /www/node-v9.9.0-linux-x64/bin/npm /usr/local/bin/npm

Node.js 是单进程的,我们可以通过多开 Node.js 并配合 Nginx 来实现多进程 Node.js 负载均衡,并且一些静态文件我们也可以直接通过 Nginx 代理,提高性能。

1、安装 Nginxyum -y install nginx2、检查 Nginx 是否安装成功(会显示版本号)nginx -v

2.4 安装MySQL5.7

1、定位到www(cd /www)下载MySQL5.7源安装包(rpm)wget http://dev.mysql.com/get/mysql57-community-release-el7-8.noarch.rpm2、安装源yum localinstall mysql57-community-release-el7-8.noarch.rpm3、查看源是否安装成功yum repolist enabled | grep "mysql.*-community.*"
【若成功会有如下类似的信息:mysql-connectors-community/x86_64 MySQL Connectors Communitymysql-tools-community/x86_64      MySQL Tools Communitymysql57-community/x86_64          MySQL 5.7 Community Server】4、安装MySQLyum install mysql-community-server5、启动MySQL服务systemctl start mysqld6、查看MySQL的启动状态systemctl status mysqld

5、   修改root本地登录密码。MySQL安装运行完成之后,在/var/log/mysqld.log文件中给root生成了一个默认密码。通过下面的方式找到root默认密码,然后登录mysql进行修改:grep 'temporary password' /var/log/mysqld.log6、登陆并修改默认密码mysql -u root -p(输入密码:输入的密码不可见,但的确输进去了)修改密码mysql>ALTER USER 'root'@'localhost' IDENTIFIED BY '新密码!';

可能会出现的问题

ERROR 1819 (HY000): Your password does not satisfy the current policy requirements

由于MySQL5.7的密码策略默认为MEDIUM,密码需长度大于8,包含数字、大小写字符和特殊字符,详见参考文章3

但按照网上查找的解决方法修改策略强度为低,但重启过后会复原为MEDIUM,所以我放弃了修改,直接设了个复杂的密码。要是有什么解决方案的话可以告诉博主我一下呀。

2.4.1 navicate使用SSH连接数据库

2.4.2 JDBC远程连接数据库

添加远程登录权限,让外网IP可以访问连接,参考文章4,外网访问数据库方便调试,省的再部署到服务器上

1、登录mysqlmysql -u root -p输入密码2、直接授权添加用户GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '密码' WITH GRANT OPTION;3、再追加一条命令FLUSH PRIVILEGES;具体介绍看参考文章4

编写代码测试是否可连接。用的JDBC8(点击下载)DRIVER_CLASS和其他版本的不一样

public class DBcon {private static final String DRIVER_CLASS="com.mysql.cj.jdbc.Driver";private static final String url="jdbc:mysql://    公网IP    :3306/     数据库名      ?"+ "useUnicode=true&characterEncoding=utf-8&useSSL=false&serverTimezone=GMT%2B8&allowPublicKeyRetrieval=true";private static final String user="root";      //登录名private static final String password="密码";  //密码public static Connection getDBcon(){Connection dbcon=null;try {Class.forName(DRIVER_CLASS);dbcon=DriverManager.getConnection(url, user, password);} catch (Exception e) {e.printStackTrace();}return dbcon;}public static void main(String[] args) {Connection tdbcon=getDBcon();if(tdbcon==null) {System.out.println("连接数据库失败");}else {System.out.println("连接数据库成功");}}
}

2.5 java安装配置

可能用到 使用vim编辑退出编辑模式,以及 参考文章5

下载JDK(JDK8u212)jdk-8u212-linux-x64-demos.tar.gz

1、创建文件夹,并转到新建文件夹内mkdir /usr/javacd /usr/java2、rz上传下载好的jdk包  jdk-8u212-linux-x64-demos.tar.gz
3、解压tar -zxvf jdk-8u212-linux-x64.tar.gz4、设置环境变量,修改etc内的profilevim /etc/profile
【按 i(insert)进入修改,(小白不懂退出见上的链接)esc退出编辑,wq保存退出】5、末尾添加环境变量set java environmentJAVA_HOME=/usr/java/jdk1.8.0_212  JRE_HOME=/usr/java/jdk1.8.0_212/jreCLASS_PATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/libPATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/binexport JAVA_HOME JRE_HOME CLASS_PATH PATH6、保存退出后,让修改生效source /etc/profile7、验证是否安装成功,查看版本号java -version

2.6 tomcat安装配置

2.6.0 几个常用的指令

 mkdir   创建文件夹ls         查看当前目录下的文件夹、文件 cd aaa/bbb       【相对路径】定位到bbb文件夹 cd ..           返回上一级cd /usr/tomcat/tomcat9.0.21 【绝对路径】定位到tomcat9.0.21mv [当前文件(夹)位置(名字)]  [目标文件(夹)位置(名字)] 【移动文件(夹)如: mv apache-tomcat-9.0.21 tomcat9.0.21则该文件夹名字将改为tomcat9.0.21 移动指令当重命名使用,linux无专门重命名指令】tar -xvf       解压 tar.xztar -xzvf      解压 tar.gznetstat -ntpl  查看网络状态kill -9 (pid)     停止进程号为pid的进程killall -9 (program name)停止所有进程名为xx的进程ps -ef|grep tomcat 可查看tomcat进程状态

取消、退出操作:Ctrl + C 操作无法退出,用这个快捷键键
补全文件(名):Tab 文件(夹)名太长用这个
上一条指令:↑ 按上方向键使用上一条指令

2.6.1 Tomcat安装配置

java安装比较简单,比较麻烦的是在安装tomcat,下载tomcat9
参考文章6

1、创建文件夹,并转到目录mkdir /usr/tomcatcd /usr/tomcat2、rz上传安装包 apache-tomcat-9.0.21.tar.gz
3、解压tar -xzvf  apache-tomcat-9.0.21.tar.gz4、重命名(比较好记)mv apache-tomcat-9.0.21 tomcat9.0.215、修改监听端口号(现在处于 /usr/tomcat)cd tomcat9.0.21/confvim server.xml

6、修改8080端口为80

<Connector port="80" protocol="HTTP/1.1"connectionTimeout="20000"redirectPort="8443" />

tomcat环境变量配置

7、配置环境变量(更改 /etc/profile)【现在位置 /tomcat9.0.21/conf

 vim /etc/profile在java后面添加环境变量CATALINA_BASE=/usr/tomcat/tomcat9.0.21CATALINA_HOME=/usr/tomcat/tomcat9.0.21export CATALINA_BASE CATALINA_HOME记得
source /etc/profile 【应用更改】

8、设置开机自启(更改 /etc/rc.local) 【现在位置 /tomcat9.0.21/conf

 vim /etc/rc.d/rc.local添加export JAVA_HOME=/usr/java/jdk1.8.0_212export JRE_HOME=$JAVA_HOME/jresh /usr/tomcat/tomcat9.0.21/bin/startup.sh保存退出,给rc.local文件添加执行权限chmod +x /etc/rc.d/rc.local

在返回到bin中启动tomcat(现在位置 /tomcat9.0.21/conf
启动tomcatstartup.sh
关闭tomcatshutdown.sh

【可以这样】cd ..cd bin./startup.sh【或者这样】cd ..sh bin/startup.sh

执行 netstat -ntpl 可以看到正在监听 80,8005,8009 的端口

可以使用服务器公网ip访问tomcat

若有出现问题,可先重启 reboot 在查看

2.6.2 无法访问tomcat

如果出现无法外网无法访问tomcat,请到防火墙设置一下规则(轻量应用服务器),esc需要设置安全组

2.6.3 (碰到的问题)tomcat没有正常开启,无法关闭,无法开启监听8005端口

报错 SEVERE: Could not contact [localhost:8005] (base port [8005] and offset [0]). Tomcat may not be running.

使用 netstat -ntpl 也没看到 8005 端口

解决方法1:killall -9 java 粗暴一点,关闭所有java进程,重启startup.sh 还是没办法的话使用方法2

解决方法2:参考文章7
更改 $JAVA_HOME/jre/lib/security/Java.security 文件中 securerandom.source 参考文章8

 securerandom.source=file:/dev/random改为:securerandom.source=file:/dev/urandom

2.6.4 SSL证书安装

注:也可采用nginx安装SSL证书

tomcat安装ssl证书,可参考阿里云文档(PFX格式,JKS格式),以下为pfx格式,jks可点击查看阿里云文档

 下载证书,内含证书和密码,然后修改 server.xml
【下面图片字打错了 用 sz 指令下载 server.xml ,修改完后再 rz 上传替换掉,代码阿里云文档可以复制】

三、差不多了

这样一波配置下来,遇到的问题应该差不多都列出来解决了,可能还有一些没遇到的问题,若以后遇到了再补上来吧,很感谢网上的许多大佬提供的有用文章。如果出现错误或者纰漏,可以向博主留言呀!(吐槽一下:真的,网上的文章很多根本不适合小白看,贴个代码指令,什么话都没讲谁看的懂!还有很多文章说的都是废话,根本没有解决实际问题)

使用LINUX云服务器搭建web、小程序服务器MySql+Java+Tomcat相关推荐

  1. 基于阿里云搭建微信小程序服务器(HTTPS)

    https://www.jianshu.com/p/132eed84bc4f 本来是想写基于腾讯云搭建微信小程序服务器的,可惜腾讯云让我有点不好的体验,所以就先放弃使用腾讯云了.所以转而在阿里云上注册 ...

  2. 阿里云服务搭建微信小程序开发环境

    最近微信小程序异常火爆,很多人在学习,下面带着大家搭建下微信小程序的调试环境(client+server),并调试一套demo源码(JavaScript和node.js基础即可,微信推荐使用的语言,无 ...

  3. 小程序服务器内存要求,小程序服务器内存需要多大

    小程序服务器内存需要多大 内容精选 换一换 弹性伸缩服务可根据用户的业务需求,通过策略自动调整其业务的资源.具有自动调整资源.节约成本开支.提高可用性和容错能力的优势.适用以下场景:访问流量较大的论坛 ...

  4. 树莓派搭建微信小程序服务器传音频(局域网)

    微信小程序代码: 微信小程序采用微信开发者工具进行开发,采用wx.uploadfile传音频,后端用python.flask写的,很简单,就是request接收一下file,然后用树莓派自带的音频播放 ...

  5. Linux服务器搭建 -- Web静态/动态服务器及论坛的搭建(apache)

    WWW简介 www是world wide web的缩写,意为全球信息广播.通常说的上网就是使用www来查询用户所需要的信息.www可以结合文字.图像.影响以及声音等多媒体,可以通过鼠标点击超链接的方式 ...

  6. 一键搭建微信小程序开发环境 及demo运行(腾讯云上一键搭建node.js服务器环境,PHP,Java,.NET服务类似)

    一.首先准备下本地环境(本地就需要一个微信开发工具) 1.首先得有一个微信小程序账号,登陆微信小程序首页:mp.weixin.qq.com,点击右上角立即注册. 注册登陆后,首页填写一些小程序基本信息 ...

  7. centos ftp服务器搭建_CentOS系统云服务器宝塔面板安装以及微信小程序服务器搭建...

    宝塔面板(官网http://bt.cn)是一款非常优秀的服务器管理工具,无论是系统功能还是用户界面都做的很完善很人性化,是使用Linux服务器的站长不可多得的一款工具,本文以CentOS6.5-64位 ...

  8. 服务器一般安装那种centos_CentOS系统云服务器宝塔面板安装以及微信小程序服务器搭建...

    宝塔面板(官网http://bt.cn)是一款非常优秀的服务器管理工具,无论是系统功能还是用户界面都做的很完善很人性化,是使用Linux服务器的站长不可多得的一款工具,本文以CentOS6.5-64位 ...

  9. 阿里云服务器上搭建微信小程序服务端环境。

    无论是搭建个人博客空间也好,微信小程序也罢,搭建环境必需的两点:云服务器.域名,下面一步步给搭建演示如果在一台阿里云服务器上搭建微信小程序服务端环境. 1.云服务器准备:可在阿里云购买ECS服务器   ...

最新文章

  1. 【Java】Lucene检索引擎详解
  2. 十一、explain属性介绍
  3. 关于listen的第二个参数backlog的一些问答见解
  4. Ubuntu16.04+caffe+digits安装配置
  5. 增长量计算n+1原则_土方量计算方法
  6. DataCapa 启动
  7. C#中为ComboBox设定value值
  8. Android进阶之路 - 双端交互之传递Base64图片
  9. CFA一级考试题型是什么?好不好考?
  10. css控制表格剧中,如何通过css设置表格居中
  11. 如何利用Excel公式制作日历
  12. 对Java实现单链表中.next的解释
  13. 图形推理题 答案揭晓
  14. vscode setting 配置
  15. VVC多用途视频编码标准综述与应用1
  16. 查询数据库dblink
  17. docker启动失败原因
  18. 190亿像素的全世界最长全景照片
  19. java动态创建代理对象
  20. 取出数组第一大和第二大元素

热门文章

  1. 学习并使用HC-SR04超声波测距模块+STM32
  2. 描写火车站场景_描写火车站的优秀句子
  3. 《孙子兵法作战指挥之虚实篇》
  4. zip直链生成网站_调优-WEB资讯专栏-DMOZ中文网站分类目录
  5. python查看文件行数_python如何获取打开文件的行数?
  6. flink DataStream returns 设置返回类型
  7. Server returns invalid timezone. Go to ‘Advanced‘ tab and set ‘serverTimezon‘ 错误
  8. warning: function returns address of local variable(函数参数返回错误)
  9. 【推荐】超全最新医学信息化资源合集
  10. ​儿童手表APP开发让用户更好地体验到智能设备的便捷性​