由于早几天在ecs服务器部署docker并且部署应用,由于对docker认识不够,导致通过docker执行了漏洞代码,导致服务器启动失败,现在重置ecs服务器,通过jar包方式重新部署该博客。
1、环境
准备相关软件上传到服务器/home/soft目录。
jdk-11_linux-x64_bin.tar.gz
mysql-8.1.0-linux-glibc2.28-x86_64.tar.xz
nginx-1.24.0.tar.gz
2、安装Mysql
安装过程参考前面博文:阿里云安装 mysql 8.1.0
3、安装jdk
在当前目录下解压JDK,并且移动到相应目录
tar -zxvf jdk-11_linux-x64_bin.tar.gz
mv jdk-11 /usr/local/jdk
配置环境变量
JAVA_HOME=/usr/local/jdk/jdk-11
CLASSPATH=$CLASSPATH:$JAVA_HOME/lib
PATH=$PATH:$JAVA_HOME/bin
验证是否成功
# 生效环境变量
source /etc/profile
#验证版本信息
java -version
4、部署应用
在路径/usr/local/jar下部署应用,上传应用。
编写自启动脚本:vi startup.sh
nohup java -jar huq.jar >/dev/null 2>&1 &
授予执行权限
chmod +x startup.sh
修改自启动文件:vi /etc/rc.d/rc.local,添加如下内容
sh /usr/local/jar/startup.sh
也要授权执行
chmod +x /etc/rc.d/rc.local
# /etc/rc.d/rc.local的引用也要授权
chmod +x /etc/rc.local
重启服务器查看应用是否正常启动。
PS:博客使用royi框架,生成登录验证码报错java.lang.reflect.InvocationTargetException,需要依赖以下服务:
yum install fontconfig
fc-cache --force
5、安装nginx
下载nginx并解压。
wget -c http://nginx.org/download/nginx-1.24.0.tar.gz
进入解压的nginx目录,执行脚本配置命令
#执行配置脚本 --prefix是指定安装目录
./configure --prefix=/usr/local/nginx
对于验证不通过的方法,基本是缺少相关类库导致,一一安装重新检查通过即可
# 如缺少gcc gcc-c++,则安装
yum -y install gcc gcc-c++ autoconf automake make
通过之后进行编译安装
#对nginx编译和安装
make & make install
安装完成后进入我们指定的安装目录:/usr/local/nginx
配置文件在conf文件夹
启动文件在sbin文件夹
编辑配置文件:vi nginx.conf
location / {
root html;
proxy_pass http://localhost:8082;
index index.html index.htm;
}
使用命令启动nginx
./sbin/nginx
配置nginx开机启动
创建nginx.service
在/usr/lib/systemd/system/目录下创建nginx.service并添加以下内容:(注:配置文件中的路径为自己nginx安装的实际路径):
[Unit]
Description=The NGINX auto enable config
After=syslog.target network.target
[Service]
Type=forking
ExecStartPre=/usr/local/nginx/sbin/nginx -t
ExecStart=/usr/local/nginx/sbin/nginx
ExecReload=/usr/local/nginx/sbin/nginx -s reload
ExecStop=/bin/kill -s QUIT $MAINPID
PrivateTmp=true
[Install]
WantedBy=multi-user.target
配置开机启动
# 设置启动服务
systemctl enable nginx.service
# 服务生效
systemctl daemon-reload
# 查看服务状态
systemctl status nginx
# enable 开机启动设置
systemctl enable nginx
# 手动服务启动
systemctl start nginx