# 一、Centos 环境
# 1、服务器
在使用虚拟机搭建环境到项目部署后,折腾一圈后,最终还是回到了云服务器上 😂。
主要是服务器性能的原因吧,有时候虚拟机突然就卡机了、下个东西半天不动,就问你是什么感觉。所以出于稳定性和开发效率的考量,最终放弃了虚拟机。
但使用虚拟机也不是没有用处,至少对 Linux 的使用更加熟练了,况且不用 money。
阿里云-学生 (opens new window) (性能不错,但活动变少了)
腾讯云-学生 (opens new window) (一个不错的选择,便宜)
个人使用
阿里云用来挂上自己的网站,毕竟稳定。腾讯云用来开发学习、项目部署。有多节点需求的时候,使用各厂商云服务器的体验卡
即可,或者买 1 个月的。
# 2、辅助工具
Xshell:
官方下载:https://www.xshell.com/zh/free-for-home-school/
FileZilla:
官方下载:https://filezilla-project.org/
FinalShell:
官方下载:https://www.hostbuf.com/t/988.html
# 3、域名 / ip
本机 ip 映射:
如果我们在为别人演示项目时,不想暴露个人 ip 地址
# C:\Windows\System32\drivers\etc
127.0.0.1 localhost
# ip地址 别名
域名使用:
# 4、宝塔工具
云服务器:
重置密码、开放 8888 端口、远程连接
安装宝塔:
安装命令:https://www.bt.cn/new/download.html
# 获取宝塔面板地址
su root
bt default
修改 bt-panel 配置:
修改安全入口、修改面板登录密码、用户名
提示
后续就可以直接通过宝塔管理服务器了。 宝塔面板入口:http://服务器公网 ip:8888/安全入口
# 二、项目环境(离线版)
# 准备工作
# 1、目录说明
服务器的文件目录说明:
# 存放软件临时安装包(也可以放在root目录下)
mkdir -p /home/local_hub
# 存放软件环境(也可以安装在默认的/usr/local目录下)
mkdir -p /data/local_service
# ----------
# 临时存放Git项目代码
# mkdir -p /home/app_code
# 存放已部署上线的项目
# mkdir -p /data/app
# 2、Git 安装
具体可以查看 Gitee 文档:生成/添加 SSH 公钥 (opens new window)
# 安装git
yum -y install git
# 检查是否成功
git --version
# SSH免密
ssh-keygen -t rsa -C "[email protected]"
cat ~/.ssh/id_rsa.pub # 复制到gitee
ssh -T [email protected] # 连接检测
# 后端
# 1、JDK 使用
先在 oracle 官网下载 Oracle JDK8
下载地址:https://www.oracle.com/java/technologies/downloads/#java8
卸载 OpenJDK
由于 OpenJDK 是开源的 Java 开发工具包,并且它可以提供一个免费、稳定且广泛支持的 Java 运行时环境,适用于大多数应用程序。
所以大多的云服务器厂商默认会安装 OpenJDK 而不是 Oracle JDK
# 查看原jdk
java -version
rpm -aq | grep java
# 卸载(只删除以java开头的即可)
yum -y remove [文件名]
java -version
#进入安装包目录,解压
cd /home/local_hub
tar -zxvf jdk-8u351-linux-x64.tar.gz
#把解压出来的文件夹转移到统一的地方
mv /home/local_hub/jdk1.8.0_351 /data/local_service/jdk1.8.0_351
#修改环境变量/etc/profile,JAVA_HOME修改为自己的jdk路径。
vim /etc/profile
export JAVA_HOME=/data/local_service/java/jdk1.8.0_351
export PATH=$PATH:$JAVA_HOME/bin
#使环境变量生效
source /etc/profile
#检查是否配置成功
java -version
# 2、Maven 使用 ✨
先在 Apache 官网下载 Maven
下载地址:https://maven.apache.org/download.cgi
阿里镜像加速
vim /data/local_service/apache-maven-3.8.6/conf/settings.xml
# 内容(在<mirrors></mirrors>标签内容加入)
<mirror>
<id>alimaven</id>
<name>aliyun maven</name>
<url>http://maven.aliyun.com/nexus/content/groups/public/</url>
<mirrorOf>central</mirrorOf>
</mirror>
#进入安装包目录,解压
cd /home/local_hub
tar -zxvf apache-maven-3.8.6-bin.tar.gz
#把解压出来的文件夹转移到统一的地方
mv /home/local_hub/apache-maven-3.8.6 /data/local_service/apache-maven-3.8.6
#修改环境变量/etc/profile,MAVEN_HOME修改为自己的路径。
export MAVEN_HOME=/data/local_service/apache-maven-3.8.6
export PATH=$PATH:$MAVEN_HOME/bin
#使环境变量生效
source /etc/profile
#检查是否配置成功
mvn -v
# 前端
# 1、Nginx 使用
先在 Nginx 官网下载 Stable 版
下载地址:https://nginx.org/en/download.html
# 进入安装包目录,解压
cd /home/local_hub
tar -zxvf nginx-1.17.10.tar.gz
# 把解压出来的文件夹转移到统一的地方
mv /home/local_hub/nginx-1.17.10 /data/local_service/nginx-1.17.10
# 编译安装
yum -y install pcre-devel openssl openssl-devel
/data/local_service/nginx-1.17.10/configure
make && make install
# 启动
/usr/local/ngnix/sbin/nginx -c /usr/local/ngnix/conf/nginx.conf
# 停止
/usr/local/ngnix/sbin/nginx -s stop
# 重启
/usr/local/ngnix/sbin/nginx -s reload
#检查是否配置成功
ps -ef | grep nginx # 查看进程
拓展:开机自启 1
# 新增配置文件 /etc/profile
vim /usr/lib/systemd/system/nginx.service
[Unit]
Description=nginx - high performance web server
After=network.target remote-fs.target nss-lookup.target
[Service]
Type=forking
ExecStart=/data/local_service/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
ExecReload=/data/local_service/nginx/sbin/nginx -s reload
ExecStop=/data/local_service/nginx/sbin/nginx -s stop
[Install]
WantedBy=multi-user.target
# 使配置文件生效
systemctl daemon-reload
# 开机自启
systemctl enable nginx.service
# 使用systemctl
systemctl status nginx.service
拓展:开启自启 2
init.d 版:https://developer.aliyun.com/article/608485
# 启动脚本复制到 /etc/init.d 目录
cp /data/local_service/mysql/support-files/mysql.server /etc/init.d/nginx
# 添加init.d下的nginx脚本
vim /etc/init.d/nginx
# 略
# 添加init.d下的nginx服务
chmod +x /etc/init.d/nginx # 设置权限
chkconfig --add nginx # 加入系统服务
# 检查服务是否生效
chkconfig --list nginx # 2、3、4、5开
# 启动nginx
service nginx start
# 2、Node 使用 ✨
先在 node 官网下载 二进制安装包
下载地址:https://nodejs.org/en/download
#进入安装包目录,解压
cd /home/local_hub
tar -Jxvf node-v16.18.0-linux-x64.tar.xz
#把解压出来的文件夹转移到统一的地方
mv /home/local_hub/node/node-v16.18.0-linux-x64 /data/local_service/node/node-v16.18.0-linux-x64
#修改环境变量/etc/profile,NODE_HOME修改为自己的node路径。
vim ~/.bash_profile
export NODE_HOME=/data/local_service/node/node-v16.18.0-linux-x64
export PATH=$NODE_HOME/bin:$PATH
#使环境变量生效
source ~/.bash_profile
#检查是否配置成功
node -v
npm version
npx -v
# 三、项目数据
# 1、Mysql 使用
先在 oracle 官网下载 mysql5.7
下载地址:https://dev.mysql.com/downloads/mysql/
卸载 Mariadb
由于 MariaDB 是一个开源的关系型数据库管理系统,并且它还是 MySQL 的一个分支,拥有 MySQL 的大部分功能。
所以大多的云服务器厂商默认会安装 MariaDB 而不是 MySQL
# 查看
rpm -qa | grep mariadb
# 卸载(只删除以mariadb开头的即可)
yum -y remove [文件名]
#进入安装包目录,解压
cd /home/local_hub
tar -zxvf mysql-5.7.40-linux-glibc2.12-x86_64.tar.gz
#把解压出来的文件夹转移到统一的地方
mv /home/local_hub/mysql-5.7.40-linux-glibc2.12-x86_64 /data/local_service/mysql # (文件夹名称改为mysql)
# 修改 /etc/my.cnf 配置文件
# 如下
# 初始化 mysql 用户
# 如下
修改 /etc/my.cnf 配置文件
# 会显示默认的读取顺序
mysql --help | grep 'my.cnf'
服务器首先读取的是/etc/my.cnf
文件,如果前一个文件不存在则继续读/etc/mysql/my.cnf
文件
# 工作目录
mkdir -p /data/local_service/mysql/data # 日志文件等(Mysql数据文件)
mkdir -p /var/lib/mysql # socket文件、临时文件等(Mysql工作目录)
chmod 777 /var/lib/mysql
# 配置文件
vim /etc/my.cnf
[mysql]
default-character-set=utf8
socket=/var/lib/mysql/mysql.sock
[mysqld]
character-set-server=utf8
socket=/var/lib/mysql/mysql.sock
basedir=/data/local_service/mysql
datadir=/data/local_service/mysql/data
port = 3306
max_connections=200
max_allowed_packet=16M
lower_case_table_names=1
mysql 用户初始化操作
# 将/data/local_service/mysql权限赋予mysql用户
groupadd mysql
useradd -g mysql mysql
chown -R mysql:mysql /data/local_service/mysql
# 初始化mysql(将为root用户生成一个🚩初始密码)
cd /data/local_service/mysql
bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data
#修改密码操作
mysql -u root -p
> alter user user() identified by "mysql新密码";
> flush privileges;
> quit
# 远程连接配置
mysql -u root -p
> use mysql;
> update user set user.Host='%' where user.User='root';
> flush privileges;
> quit
# 检查是否配置成功
# 使用Navicat等工具进行连接测试即可
拓展:开机自启 1
# 新增配置文件 /etc/profile
vim /usr/lib/systemd/system/mysql.service
[Unit]
Description=MySQL Server
Documentation=https://dev.mysql.com/doc/refman/5.7/en/
[Service]
ExecStart=/data/local_service/mysql/bin/mysqld_safe --defaults-file=/etc/my.cnf
User=mysql
Group=mysql
Restart=always
RestartSec=3
LimitNOFILE=infinity
[Install]
WantedBy=multi-user.target
# 使配置文件生效
systemctl daemon-reload
# 设置开机自启
systemctl enable nginx.service
# 使用systemctl
systemctl status nginx.service
拓展:开启自启 2
# 启动脚本复制到 /etc/init.d 目录
cp /data/local_service/mysql/support-files/mysql.server /etc/init.d/mysqld
# 修改init.d下的mysqld脚本
vim /etc/init.d/mysqld
basedir=/data/local_service/mysql
datadir=/data/local_service/mysql/data
# 添加init.d下的mysqlId服务
chmod +x /etc/init.d/mysqld # 设置权限
chkconfig --add mysqld # 加入系统服务
# 检查服务是否生效
chkconfig --list mysqld # 2、3、4、5开
# 启动mysqld
service mysqld start
# 2、Redis 使用
先在 Redis 官网下载 Redis
下载地址:https://redis.io/download/#redis-downloads
可视化工具
下载 github 上某大神的可视化工具:RDM (opens new window),但遗憾的是要获取实时的安装包要付费 (opens new window)
所以又有大佬实时的帮我们打包,并将其发布到了 github 上:qishibo (opens new window)、lework (opens new window)
#进入安装包目录,解压
cd /home/local_hub
tar -zxvf redis-5.0.8.tar.gz
#把解压出来的文件夹转移到统一的地方
mv /home/local_hub/redis-5.0.8 /data/local_service/redis-5.0.8
# 编译安装
cd /data/local_service/redis-5.0.8
make && make install
# 将redis启动模式改为daemon
vim /data/local_service/redis-5.0.8/redis.conf
# 修改
daemonize yes
# 启动
/data/local_service/redis-5.0.8/src/redis-server /data/local_service/redis-5.0.8/redis.conf
#检查是否配置成功
ps -ef | grep redis # 查看进程
拓展:开机自启
使用 redis 自带的 install_server.sh 脚本创建 systemctl 服务
# 启动脚本
/data/local_service/redis-5.0.8/utils/install_server.sh
# 默认选项如下:
# Port : 6379
# Config file : /etc/redis/6379.conf
# Log file : /var/log/redis_6379.log
# Data dir : /var/lib/redis/6379
# Executable : /usr/local/bin/redis-server
# Cli Executable : /usr/local/bin/redis-cli
# 开机自启
systemctl enable redis_6379.service
# 使用systemctl
systemctl status redis_6379.service
拓展:设置 redis 连接密码
# 修改配置文件(执行install_server.sh 脚本后生成的文件)
vim /etc/redis/6379.conf
# 修改
bind 0.0.0.0
# bind 127.0.0.1
requirepass [密码]
#requirepass foobared
# 使配置生效
systemctl restart redis_6379.service