因为打算学习做一个微信小程序玩玩,所以去阿里云买了个轻量应用服务器,开始准备搭建自己的微信小程序服务器环境。但是这么一波操作下来,整个人都不好了。配置上一大堆的毛病,然后自己还是第一次使用linux,找了一大堆有用的没用的东西,网上杂七杂八解决方法,看着难受。现在就终于配置好了,就整合一下配置步骤,记录下来和大家分享一下(其实阿里云里已经有帮我们搭建好环境的套餐,但我还是更倾向于自己动手解决,藉此学习学习)
这个就去官网买一下就好了,我安装的是CentOS,然后可以用里面控制台自带的远程登录连接到服务器;或者下载SSH工具(如:SecurtCRT),用购买的服务器的公网ip、登录名(一般为root)、密码登录,然后再去买一个域名,绑定备案一下,并申请ssl证书。没有备案的话,域名是无法访问的,当然刚开始会有一小段时间还能访问一下。(ps:阿里云可以直接选择安装宝塔面板,系统安装完成后,用浏览器访问搭建好后的宝塔面板管理界面,可以可视化管理服务器)
本篇主要记录配置的方法及遇到的问题的解决,云服务器购买等可见参考文章1
感觉用个工具比较方便,网页版的用起来感觉不是很顺手,页面一开多了就找不到了。SecurtCRT网上都找的到,怎么用的话下载页面都有介绍。
要将windows的文件上传到linux服务器上,或者从linux服务器上下载文件到windows上,可以在linux安装lrzsz代替ftp上下载,详见参考文章2
运行指令
yum -y install lrzsz
要上传文件,直接输入命令:rz,之后就会弹出文件选择框让你选择要上传的文件。
要下载文件,直接输入命令:sz 要下载的文件的路径,例如:sz /opt/a.txt
,默认下载到本地电脑的Downloads文件夹,
这边的话可以看一下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
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
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,所以我放弃了修改,直接设了个复杂的密码。要是有什么解决方案的话可以告诉博主我一下呀。
添加远程登录权限,让外网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
和其他版本的不一样
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("连接数据库成功");
}
}
}
可能用到 使用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
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 文件(夹)名太长用这个
上一条指令:↑ 按上方向键使用上一条指令
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" />
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
)
启动tomcat :startup.sh
关闭tomcat :shutdown.sh
【可以这样】
cd ..
cd bin
./startup.sh
【或者这样】
cd ..
sh bin/startup.sh
执行 netstat -ntpl
可以看到正在监听 80,8005,8009 的端口
可以使用服务器公网ip访问tomcat
若有出现问题,可先重启 reboot
在查看
如果出现无法外网无法访问tomcat,请到防火墙设置一下规则(轻量应用服务器),esc需要设置安全组
报错 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
tomcat安装ssl证书,可参考阿里云文档(PFX格式,JKS格式),以下为pfx格式,jks可点击查看阿里云文档
下载证书,内含证书和密码,然后修改 server.xml
【下面图片字打错了 用 sz 指令下载 server.xml ,修改完后再 rz 上传替换掉,代码阿里云文档可以复制】
这样一波配置下来,遇到的问题应该差不多都列出来解决了,可能还有一些没遇到的问题,若以后遇到了再补上来吧,很感谢网上的许多大佬提供的有用文章。如果出现错误或者纰漏,可以向博主留言呀!(吐槽一下:真的,网上的文章很多根本不适合小白看,贴个代码指令,什么话都没讲谁看的懂!还有很多文章说的都是废话,根本没有解决实际问题)