超详细, 手把手教你搭建阿里云个人站点
# 搭建阿里云服务器
## 0. 费用
> 第一步先交代一下大家比较关心的东东, 以下是所有费用:
* 阿里云服务器: 三年 229 元
![file](https://img2018.cnblogs.com/blog/1756146/202001/1756146-20200112005121520-746006129.jpg)
* 域名: 三年: 150 元
![file](https://img2018.cnblogs.com/blog/1756146/202001/1756146-20200112005121711-1273365478.jpg)
## 1. 购买[阿里云服务器](https://www.aliyun.com/)
> 一般来说, 新用户都会有优惠, 我就是在活动最后一小时买了 3 年的阿里云服务器的提货券, 便宜不少钱. 这一步没啥说的, 掏钱就行了.
![file](https://img2018.cnblogs.com/blog/1756146/202001/1756146-20200112005121938-525594742.jpg)
> 购买成功后会收到提货券到账的消息, 点击消息连接就来到引导开通的页面, 填写基本信息就可以了.
![file](https://img2018.cnblogs.com/blog/1756146/202001/1756146-20200112005122189-2061538247.jpg)
![file](https://img2018.cnblogs.com/blog/1756146/202001/1756146-20200112005122404-285507543.jpg)
创建实例, 按照引导选择服务器地址就可以了:
![file](https://img2018.cnblogs.com/blog/1756146/202001/1756146-20200112005122600-42847897.jpg)
## 2. 在[阿里云万网购买域名](https://wanwang.aliyun.com/?spm=5176.12825654.eofdhaal5.9.4bbe2c4arFUMlm&aly_as=QA16Gysn)
![file](https://img2018.cnblogs.com/blog/1756146/202001/1756146-20200112005122874-59319289.jpg)
> 新注册的域名需要进行实名认证. 点击实名认证的链接进行认证即可.
![file](https://img2018.cnblogs.com/blog/1756146/202001/1756146-20200112005123069-778358928.jpg)
![file](https://img2018.cnblogs.com/blog/1756146/202001/1756146-20200112005123303-1471348033.jpg)
## 3. 域名备案
> 域名备案需要在域名实名认证完成后的2-3个工作日后进行. 并且备案需要半个月左右的时间, 如果选择阿里云并在阿里云 App 上备案似乎会快点, 我只用了不到 10 天.
* 腾讯云:[https://console.cloud.tencent.com/beian](https://console.cloud.tencent.com/beian)
* 阿里云:[https://beian.aliyun.com/order/index](https://beian.aliyun.com/order/index)
![file](https://img2018.cnblogs.com/blog/1756146/202001/1756146-20200112005123541-1400363148.jpg)
### 3.1 网站上备案.
> 据说 App 上能快些, 所以我就在 App 上备案了.
![file](https://img2018.cnblogs.com/blog/1756146/202001/1756146-20200112005124103-1731343139.jpg)
### 3.2 在阿里云 App 上进行备案.
* 打开网站备案控制台
* 新增网站
* 填写主体信息, 上传身份证照片, 人像采集(注意背景需要是白色, 不然一般一直不会成功.)
![file](https://img2018.cnblogs.com/blog/1756146/202001/1756146-20200112005124325-1916865937.jpg)
![file](https://img2018.cnblogs.com/blog/1756146/202001/1756146-20200112005124552-373115919.jpg)
* 填写网站信息
> 填写网站信息需要注意网站名称需要一下规则:
* 个人站点不能包含域名: 如: 我的域名为 `javafamilly.club`, 名称就不能包含 `JavaFamily`.
* 个人站点名称不能包含`官网`, `个人信息`等敏感词.
* 上传材料
> 材料上传需要上传域名证书, 根据指导从官网下载下来就好了.
![file](https://img2018.cnblogs.com/blog/1756146/202001/1756146-20200112005124860-2034107052.jpg)
![file](https://img2018.cnblogs.com/blog/1756146/202001/1756146-20200112005125776-964448448.jpg)
![file](https://img2018.cnblogs.com/blog/1756146/202001/1756146-20200112005126712-551807037.jpg)
* 阿里云初审
> 这一步没啥, 等电话就完了. 如果网站信息有违规, 会电话通知更改, 改后再重现审.
* 阿里云提交管局
* 工信部手机号验证
> 到这一步会收到工信部短信, 点击短信中的连接认证一下就好了.
![file](https://img2018.cnblogs.com/blog/1756146/202001/1756146-20200112005127807-307614934.jpg)
> 点击连接, 填入验证码以及个人信息就好了.
![file](https://img2018.cnblogs.com/blog/1756146/202001/1756146-20200112005128333-1766968727.jpg)
![file](https://img2018.cnblogs.com/blog/1756146/202001/1756146-20200112005128631-573283196.jpg)
* 管局审核
> 审核通过会发送短信, 通过后由于延迟, 可能域名还不能立即访问, 但是 3 的工作日肯定就可以了, 我是过了大概两个小时才访问到.
![file](https://img2018.cnblogs.com/blog/1756146/202001/1756146-20200112005129650-318978464.jpg)
**注意: 阿里云初审结束到管局审核通过这段时间域名不能解析, 不能访问. 我是在实名认证后还没开始备案就把域名解析了(实名认证后两三天后才能开始备案), 然后网站项目也部署了, 所以管局审核通过就立刻可以域名访问网站了**
## 4. 域名解析
> 云解析DNS就是指把网站域名或应用资源转换为数字 IP 地址,从而将最终用户的访问路由到相应的网站或应用资源上。
![file](https://img2018.cnblogs.com/blog/1756146/202001/1756146-20200112005129910-162166554.jpg)
![file](https://img2018.cnblogs.com/blog/1756146/202001/1756146-20200112005130556-2037346080.jpg)
![file](https://img2018.cnblogs.com/blog/1756146/202001/1756146-20200112005130782-2037470394.jpg)
> 主机记录,就是一些前缀,可以直接理解为“二级域名”,而记录值就简单了,直接就是你需要解析到的云服务器IP地址。
* www: 可以通过 www.域名访问
* @: 可以通过域名直接访问
## 5. 云服务器环境搭建
> 备案需要半个月左右的时间, 这段时间可以先搭建云服务器的环境, 比如安装 JDK.
### 5.1 设置密码
首先需要重置云服务器的 root 密码.
![file](https://img2018.cnblogs.com/blog/1756146/202001/1756146-20200112005131074-1423003146.jpg)
**第一次设置了密码后需要重启云服务器, 不然连接不上.**
![file](https://img2018.cnblogs.com/blog/1756146/202001/1756146-20200112005131999-664901912.jpg)
### 5.2 登录云服务器
> 默认安全组规则及开放的端口号:
![file](https://img2018.cnblogs.com/blog/1756146/202001/1756146-20200112005132235-1260625436.jpg)
* 使用 SSH [WorkBench](https://ecs-workbench.aliyun.com/)
![file](https://img2018.cnblogs.com/blog/1756146/202001/1756146-20200112005132496-1079219227.jpg)
* Linux 使用 SSH 终端连接.
``` shell
ssh root@101.133.167.196
```
第一次会提示添加实例, 输入 `yes` 即可. 然后输入密码.
* Windows 上通过 RDP 登录[需要安装图形界面等插件].
> RDP 默认端口 3389, 默认开放.
* Windows 上建议使用 [Xshell](
https://www.netsarang.com/zh/xshell/) 登录.
![file](https://img2018.cnblogs.com/blog/1756146/202001/1756146-20200112005133268-1000163469.jpg)
### 5.3 为云服务器安装必要插件
> apt repository 默认只有本地库, 所以首先刷新repository.
``` shell
sudo apt-get update
```
#### 5.3.1 lrzsz
> lrzsz 用于在 XShell 等工具在 Windows 和 Linux 之间进行文件上传.
``` shell
sudo apt-get install lrzsz
```
* 错误1: E: Unable to locate package lrzsz
出现这个问题的原因之一是apt的源缺失,运行以下命令即可:
``` shell
sudo add-apt-repository main
sudo add-apt-repository universe
sudo add-apt-repository restricted
sudo add-apt-repository multiverse
sudo apt-get update
```
* 错误2: sudo: add-apt-repository: command not found
> 在Ubuntu下,时不时会有这个错误的。 add-apt-repository: command not found
这个是缺少程序,安装一下就可以了
``` shell
sudo apt install software-properties-common
sudo apt-get update
```
#### 5.3.2 Git
##### 5.3.2.1 安装 Git
``` shell
sudo apt-get install git
```
##### 5.3.2.2 连接 GitHub, checkout 代码
* 默认情况下, 是没有权限访问 GitHub 的
``` shell
root@JavaFamily:~/workspace/angboot# git clone git@github.com:DreamLi1314/angboot.git
Cloning into 'angboot'...
The authenticity of host 'github.com (13.229.188.59)' can't be established.
RSA key fingerprint is SHA256:nThbg6kXUpJWGl7E1IGOCspRomTxdCARLviKw6E5SY8.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'github.com,13.229.188.59' (RSA) to the list of known hosts.
git@github.com: Permission denied (publickey).
fatal: Could not read from remote repository.
Please make sure you have the correct access rights
and the repository exists.
```
* 在 Linux Terminal 上借助 `ssh-keygen` 命令生成 SSH key
``` shell
ssh-keygen -t rsa -C "18829346477@163.com"
```
**密码不是必须的, 如果为了安全可以设置密码.**
过程中会提示指定存放key的文件, 默认在 `/root/.ssh/id_rsa` 文件中, 打开拷贝, 添加到 [GitHub](https://github.com/settings/keys) 的 `SSH keys` 中.
![file](https://img2018.cnblogs.com/blog/1756146/202001/1756146-20200112005133526-1978139604.jpg)
然后再执行 git clone 命令 checkout code.
### 5.4 JDK
#### 5.4.1 安装 JDK
> JDK 一般可以本地下载好, 然后上传到服务器上. 因为如果是 `wget` 下载的话, 有个License需要同意,wget命令下载的会默认为不同意,所以下载后解压的时候会提示解压不了.
* 下载 JDK 的 tar 包到本地.
* 在云服务器上创建存放 tar 包的目录.
``` shell
root@JavaFamily:~# mkdir /usr/local/java
root@JavaFamily:~# cd /usr/local/java/
```
* 在 Mac/Linux 下通过 `scp` 命令上传至云服务器.
``` shell
scp ~/Downloads/jdk-8u231-linux-x64.tar.gz root@101.133.167.196:/usr/local/java
```
![file](https://img2018.cnblogs.com/blog/1756146/202001/1756146-20200112005133965-1953662353.jpg)
* 在云服务器上解压 jdk 的 tar 包.
``` shell
root@JavaFamily:/usr/local/java# ls
jdk-8u231-linux-x64.tar.gz
root@JavaFamily:/usr/local/java# tar -zxf jdk-8u231-linux-x64.tar.gz
root@JavaFamily:/usr/local/java# ls
jdk-8u231-linux-x64.tar.gz jdk1.8.0_231
root@JavaFamily:/usr/local/java# cd jdk1.8.0_231/
root@JavaFamily:/usr/local/java/jdk1.8.0_231# pwd
/usr/local/java/jdk1.8.0_231
```
#### 5.4.2 配置环境变量
* 在 `/etc/profile` 文件后追加环境变量
```shell
# env variable
export JAVA_HOME=/usr/local/java/jdk1.8.0_231
export PATH=${JAVA_HOME}/bin:$PATH
```
* 使其生效
``` shell
source /etc/profile
```
### 5.5 运行项目
> 默认情况下在终端运行项目后当终端连接断开后项目就停止运行了, 所以可以借助 `nohup` 命令来进行无挂断运行.
> nohup 命令运行由 Command参数和任何相关的 Arg参数指定的命令,忽略所有挂断(SIGHUP)信号。在注销后使用 nohup 命令运行后台中的程序。要运行后台中的 nohup 命令,添加 & ( 表示“and”的符号)到命令的尾部。nohup 是 no hang up 的缩写,就是不挂断的意思。nohup命令:如果你正在运行一个进程,而且你觉得在退出帐户时该进程还不会结束,那么可以使用nohup命令。该命令可以在你退出帐户/关闭终端之后继续运行相应的进程。在缺省情况下该作业的所有输出都被重定向到一个名为nohup.out的文件中。
``` shell
nohup COMMAND &
```
> 停止 nohub 运行的 Java 进程
``` shell
killall -9 java
```
### 5.6 开放端口
> 当项目运行起来后, 默认情况下云服务器是没有开放项目占用地址的, 所以需要在安全组设置中添加.
![file](https://img2018.cnblogs.com/blog/1756146/202001/1756146-20200112005134208-1781095240.jpg)
![file](https://img2018.cnblogs.com/blog/1756146/202001/1756146-20200112005134602-1979187953.jpg)
## 6 文章发布
> JavaFamily 文章发布已同步 CSDN, 简书, 知乎 等博客站点, 博客以 CSDN 为主, 其他站点评论等不予回复(实在没精力每个站点每天都看).
![file](https://img2018.cnblogs.com/blog/1756146/202001/1756146-20200112005134842-386348137.jpg) ![file](https://img2018.cnblogs.com/blog/1756146/202001/1756146-20200112005135016-1102152965.jpg) ![file](https://img2018.cnblogs.com/blog/1756146/202001/1756146-20200112005135220-520993798.jpg) ![file](https://img2018.cnblogs.com/blog/1756146/202001/1756146-20200112005135402-668890490.jpg) ![file](https://img2018.cnblogs.com/blog/1756146/202001/1756146-20200112005135636-999845606.jpg)![file](https://img2018.cnblogs.com/blog/1756146/202001/1756146-20200112005136007-94803343.jpg) ![file](https://img2018.cnblogs.com/blog/1756146/202001/1756146-20200112005136263-1068604202.jpg) ![file](https://img2018.cnblogs.com/blog/1756146/202001/1756146-20200112005136508-1000103172.jpg) ![file](https://img2018.cnblogs.com/blog/1756146/202001/1756146-20200112005136690-281798824.jpg) ![file](https://img2018.cnblogs.com/blog/1756146/202001/1756146-20200112005136912-36646324.jpg) ![file](https://img2018.cnblogs.com/blog/1756146/202001/1756146-20200112005137155-530430263.jpg)
## 7 日常求赞
> 各位大佬, 动动 your 手指头, click click 赞, 转发转发, 打赏打赏咯.....别一天刚知道白漂哈....哈哈...
> 日常求赞: 欢迎大家点赞, 评论, 关注, 转发. 要是能给点赞赏就更好了, 哈哈哈.... [https://blog.csdn.net/DreamLi1314](https://blog.csdn.net/DreamLi1314)