一. 购买云服务器

我的云服务器地址:https://console.cloud.tencent.com/lighthouse/instance/detail?rid=1&id=lhins-cy2o2cit&tab=application&action=DescribeInstanceLoginKeyPair

我购买的是腾讯云的轻量应用服务器,学生价格。

系统不建议直接使用应用型的(我曾经使用过宝塔Linux,感觉配置难受),直接选择Cent OS8吧。

二.配置Apache+PHP

1.Apache

1
2
3
4
5
6
7
8
9
10
11
12
13
14
//下载Apache
yum -y install httpd

//查看Apache版本
httpd -v

//启动Apache服务
systemctl start httpd

//重启Apache服务
systemctl restart httpd

//设置开机自启动
systemctl enable httpd

存放共享文件的目录是:/var/www/html/

2.PHP

1
2
3
4
5
6
7
8
//下载php
yum -y install php

//查看php的版本
php -v

//重启服务
systemctl restart httpd

Cent OS不像Window或者Mac下配置一样需要去修改PHP的配置文件php.ini文件(/etc/php.ini)以及去修改Apache的配置文件httpd.conf文件(/etc/httpd/conf/httpd.conf)。

1>PHP的Json扩展问题

这里有一个问题,那就是CentOS下的Json扩展需要我们自己去下载。坑了我好几天

1
2
//安装PHP的Json扩展
yum install php-json

参考:https://blog.csdn.net/ahstudy/article/details/7210234

PHP扩展问题:
这里就要说到安装php的几种方式了:可以参考这篇文章:Centos8(Liunx) 中安装PHP7.4 的三种方法和删除它的三种方法

这是因为我是使用yum安装php的,导致很多扩展没有安装,直到我去下载mysqli扩展才发现问题,很多扩展需要自己装。

安装方法:

1
2
//安装其他扩展只需要将mysqli换成其他扩展名即可
yum install php-mysqli --skip-broken

2>PHP的错误日志

Json扩展的问题之所以坑了我好久是因为我看不到错误日志,查看PHP的错误日志参考:https://blog.csdn.net/qq_42176520/article/details/83544429

3>PHP的配置文件详解

参考:php配置文件详解

参考:php.ini修改生效

3.宝塔Linux

1
yum install -y wget && wget -O install.sh http://download.bt.cn/install/install_6.0.sh && sh install.sh

安装参考:centos8安装宝塔

使用宝塔Linux的原因是其可视化能力,我主要是使用其文件夹能力(非常方便编辑,相当于有了窗口),强烈建议软件安装不要使用宝塔Linux。

三.CentOS 基本情况

1.SCP

本地计算机(Mac OS)上传文件到云服务器(Cent OS)

1
2
3
4
5
//本地文件上传
scp 本地计算机文件路径 云服务器用户名@云服务器ip:云服务器存储地址

//例子 /Users/xulei/Desktop/CentOS182.254.228.71.md copy to /var/www/html
scp /Users/xulei/Desktop/CentOS182.254.228.71.md root@182.254.228.71:/var/www/html
1
2
3
4
5
//本地文件夹(包含嵌套的所有内容)上传
scp -r 本地计算机文件路径 云服务器用户名@云服务器ip:云服务器存储地址

///Library/WebServer/Documents copy to /var/www/html
scp -r /Library/WebServer/Documents root@182.254.228.71:/var/www/html

参考:

CentOS下上传和下载文件

【原创】Mac电脑怎么上传文件到CentOS服务器

2.常见的文件操作命令

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
//创建文件
vi 路径/文件名

//创建文件夹
mkdir 路径/文件夹名

//删除文件或文件夹
rm 路径--------经常会遇到权限不足,无法删除
rm -r 路径-----递归删除路径及其子路径,当删除到具有写保护文件的时候提示用户
rm -rf 路径----递归删除路径及其子路径,不提示用户
rm -ir 路径----是交互模式,删除任何文件都会提示

//移动文件
mv 源文件路径 目标文件路径
mv 源文件1路径/源文件2路径 目标文件路径

//复制文件
cp 源文件路径 目标文件路径
cp -r 源文件夹路径 目标文件夹路径

参考:Centos彻底删除文件夹、文件命令

四.Hexo博客静态部署

我们之前在本地生成好一系列文件之后上传到对应的平台例如:Github等。

其实那些仓库的内容就是我们的博客内容,因为我们是静态的,所以可以直接访问。

我们的思路就是将仓库的内容来到Apache的共享文件夹下面:

1.获取内容

在共享文件夹html下面创建hexo文件夹

1
2
3
4
5
//进入该文件夹
cd /var/www/html/hexo

//拉取我们的静态博客内容
git clone ...你自己仓库的地址...

2.部署

1
2
3
4
5
6
7
8
cd /var/www/html/hexo/xiaoshitounen.github.io
//更新博客内容
git pull origin master
cd ..
cd ..
cd ..
//将内容copy到Apache的共享文件夹下面
cp -rf html/hexo/xiaoshitounen.github.io/* html/

这样子我们就可以通过云服务的公网ip访问我们的静态博客了。例如我的:http://182.254.228.71

3.更新问题

在CentOS的根目录(/)下,创建一个脚本文件run.sh

1
2
3
4
5
6
7
cd /var/www/html/hexo/xiaoshitounen.github.io
git pull origin master
cd ..
cd ..
cd ..
cp -rf html/hexo/xiaoshitounen.github.io/* html/
echo successful

每次需要更新的时候在根目录执行我们的脚本就好:

1
./run.sh

参考:Hexo进阶教程(四)| 部署Hexo到自己的服务器