最近尝试在阿里云部署了一下java web的运行环境,参考网上许多文章,也踩到了许多坑。下面分享一下踩到的坑和解决办法。
一、白Piao一年的阿里云ECS基本款
阿里云现在只要注册一个账号就可以白Piao一年的体验,唯一要注意的是阿里云的收费分为两种,一种是包月包年的,一种是按照流量计费的;因为这里白Piao的服务到期之后是自动续费的,所以不要忘了去续费的地方选择禁止自动续费。
二、下载所需的软件
因为IntelliJ 可以使用内置的Tomcat然后打包为jar包直接部署,所以这里不做Tomcat下载配置的介绍,如果需要打包成war包部署到外部容器的小伙伴可以参看这篇文章:http://www.imooc.com/article/20583#
用到的软件:
1)jdk11-11.0.7:https://www.oracle.com/java/technologies/javase-jdk11-downloads.html , 选择Linux RPM Package这个版本下载到本地。
2)mysql: https://dev.mysql.com/downloads/repo/yum/, 这里选择mysql80-community-release-el7-3.noarch.rpm这个版本,因为我自己的ECS是Cento os7的。
3)redis:https://redis.io/download,这里选择稳定版本6.0
其中mysql和jdk的下载需要创建Oracle的账户,也是免费的,这里就不再赘述。下载好之后使用远程拷贝命令将三个压缩文件上传到阿里云的服务器。
三、安装软件
1. 安装jdk
1)首先给jdk安装包添加可执行的权限:chmod +x jdk-11.0.7_linux-x64_bin.rpm
2)使用rpm安装包安装jdk
3)使用 java --version 检查是否安装成功
2. 安装mysql
1)安装mysql的rpm包:rpm -Uvh mysql80-community-release-el7-3.noarch.rpm
2) 安装mysql:yum install mysql-community-server
3) 开启mysql服务:service mysqld start
4) 查看是否已经开启了mysql服务:ps -ef | grep mysqld,如果出现mysql 16360 1 0 13:43 ? 00:00:10 /usr/sbin/mysqld,就说明启动成功
5)获取登录mysql服务器的初始密码:grep 'temporary password' /var/log/mysqld.log
6)使用获得的密码登录mysql:mysql -u root -p
7)重新设置mysql root用户密码:ALTER USER 'root'@'localhost' IDENTIFIED BY 'the password you want to set';
8)mysql设置远程连接:
a) 切换到初始schema:use mysql;
b) 这里可以创建一个新的user以便和root账户区分:create 'tester'@'%' IDENTIFIED BY 'the password you want to set';
c) 声明tester账户的操作权限,并开启tester账户的远程访问权限: grant CREATE,INSERT,DELETE,UPDATE on *.* to 'tester'@'%'; 这里'%'的意思是开放远程访问
d) 去阿里云的控制台,选择左侧的“网络安全”->“安全组”,点击右上角的“快速创建规则“,打开后勾选3306端口和6379端口(为redis开放默认端口)
e) 生效远程访问的配置:flush privilege;
f) 查看配置是否生效:select host,user,plugin from user; 如果user tester对应的host是%就说明设置已经生效了
g) 在本地使用terminal或者是Mysql客户端连接
3. 安装redis:
1)将redis的压缩安装包解压:tar -zxvf redis-6.0.5.tar.gz
2) 进入解压后的文件夹 cd redis-6.0.5
3)修改redis.conf 文件使redis支持远程登录:注释掉”bind 127.0.0.1“,启动守护进程将”daemonize no“ 替换为”daemonize yes“
4)尝试make,一般来说会失败,这是由于cento os7默认的版本过低,而redis-6.0.5需要5.3以上的版本造成的,这里需要升级gcc的版本:
yum -y install centos-relase-scl
yum -y install devtoolset-9-gcc devtoolset-9-gcc-c++ devtoolset-9-binutils
scl enable devtoolset-9 bash
升级完成以后将gcc 9 设置成默认的gcc版本:
echo "source /opt/rh/devtoolset-9/enable" >> /etc/profile
5)完成编译后尝试make test,但这里仍旧会报错,这是因为没有安装tcl:
yum install tcl
6)使用命令make install配置全局启动redis
7)启动redis:redis-server redis.conf
8)启动redis client确认redis已经配置完毕:redis-cli,输入ping,可以得到pang的回应
到这里需要的软件就安装完毕了
参考文章:
http://www.imooc.com/article/20583#
https://github.com/redis-io/redis/issues/1218
https://blog.csdn.net/sl1992/article/details/106017157