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

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

  • 一、使用LINUX搭建服务器的原因
    • 准备工具
  • 二、下载配置
    • 2.1 阿里云服务器的购买与连接
    • 2.2 使用securtCRT连接,使用lrzsz上传下载
    • 2.3 node.js,nginx(博主用tomcat,感觉暂时没用到这个,略过)
    • 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 node.js,nginx(博主用tomcat,感觉暂时没用到这个,略过)

这边的话可以看一下linux每个目录的作用。参考文章3
如果用的 tomcat,这个估计就不用装了,我装着暂时没用到。
可以使用nginx来实现反向代理以及负载均衡。额,博主现在暂时用不到这些功能。

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

1、创建文件夹www,定位到www目录下
	mkdir /www
	cd /www
	
2、下载node.js
	wget 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.xz

5、进入解压目录下的 bin 目录,执行 ls 命令,有 node 和 npm,测试是否安装成功(会显示版本号)
	cd node-v9.9.0-linux-x64 && ls
	./node -v
	
6、安装成功。现在 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、安装 Nginx
	yum -y install nginx

2、检查 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.rpm
	
2、安装源
	yum localinstall mysql57-community-release-el7-8.noarch.rpm

3、查看源是否安装成功
	yum repolist enabled | grep "mysql.*-community.*"	
【若成功会有如下类似的信息:
	mysql-connectors-community/x86_64 MySQL Connectors Community
	mysql-tools-community/x86_64      MySQL Tools Community
	mysql57-community/x86_64          MySQL 5.7 Community Server】

4、安装MySQL
	yum install mysql-community-server
	
5、启动MySQL服务
	systemctl start mysqld

6、查看MySQL的启动状态
	systemctl status mysqld

使用LINUX云服务器搭建web、小程序服务器MySql+Java+Tomcat_第1张图片

5、	修改root本地登录密码。MySQL安装运行完成之后,在/var/log/mysqld.log文件中给root生成了一个默认密码。
	通过下面的方式找到root默认密码,然后登录mysql进行修改:
		grep 'temporary password' /var/log/mysqld.log

6、登陆并修改默认密码
	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连接数据库

使用LINUX云服务器搭建web、小程序服务器MySql+Java+Tomcat_第2张图片

2.4.2 JDBC远程连接数据库

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

1、登录mysql
	mysql -u root -p
	输入密码
	
2、直接授权添加用户
	GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '密码' WITH GRANT OPTION;

3、再追加一条命令
	FLUSH PRIVILEGES;
	
	具体介绍看参考文章4

编写代码测试是否可连接。用的JDBC8(点击下载)DRIVER_CLASS和其他版本的不一样
使用LINUX云服务器搭建web、小程序服务器MySql+Java+Tomcat_第3张图片

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/java
	cd /usr/java
	
2、rz上传下载好的jdk包  jdk-8u212-linux-x64-demos.tar.gz
3、解压
	tar -zxvf jdk-8u212-linux-x64.tar.gz
	
4、设置环境变量,修改etc内的profile
	vim /etc/profile
【按 i(insert)进入修改,(小白不懂退出见上的链接)esc退出编辑,wq保存退出】

5、末尾添加环境变量
	set java environment
	JAVA_HOME=/usr/java/jdk1.8.0_212  
	JRE_HOME=/usr/java/jdk1.8.0_212/jre
	CLASS_PATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib
	PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin
	export JAVA_HOME JRE_HOME CLASS_PATH PATH

6、保存退出后,让修改生效
	source /etc/profile
	
7、验证是否安装成功,查看版本号
	java -version

2.6 tomcat安装配置

2.6.0 几个常用的指令

	mkdir	创建文件夹
	ls 		查看当前目录下的文件夹、文件 
	cd aaa/bbb		【相对路径】定位到bbb文件夹	
	cd ..			返回上一级
	cd /usr/tomcat/tomcat9.0.21 【绝对路径】定位到tomcat9.0.21
	
	mv [当前文件(夹)位置(名字)]  [目标文件(夹)位置(名字)] 
	【移动文件(夹)如: mv apache-tomcat-9.0.21 tomcat9.0.21
	则该文件夹名字将改为tomcat9.0.21 移动指令当重命名使用,linux无专门重命名指令】

	tar -xvf		解压 tar.xz
	tar -xzvf 		解压 tar.gz
	netstat -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/tomcat
	cd /usr/tomcat
	
2、rz上传安装包 apache-tomcat-9.0.21.tar.gz
3、解压
	 tar -xzvf  apache-tomcat-9.0.21.tar.gz
	 
4、重命名(比较好记)
	mv apache-tomcat-9.0.21 tomcat9.0.21

5、修改监听端口号(现在处于 /usr/tomcat)
	cd tomcat9.0.21/conf
	vim 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.21
	CATALINA_HOME=/usr/tomcat/tomcat9.0.21
	export 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_212
	export JRE_HOME=$JAVA_HOME/jre
	sh /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需要设置安全组

使用LINUX云服务器搭建web、小程序服务器MySql+Java+Tomcat_第4张图片

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

报错 SEVERE: Could not contact [localhost:8005] (base port [8005] and offset [0]). Tomcat may not be running.
使用LINUX云服务器搭建web、小程序服务器MySql+Java+Tomcat_第5张图片
使用 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证书安装

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

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

使用LINUX云服务器搭建web、小程序服务器MySql+Java+Tomcat_第6张图片

三、差不多了

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

你可能感兴趣的:(linux,linux,小程序,web,服务器搭建)