使用云服务器搭建技术分享网站
域名和云服务器的配置信息如下:
- 域名:www.yangsir2022.top(备案中,暂时停止访问)
- 服务器:阿里云轻量级
- 系统镜像:CentOS 7.6
- 地域:华东1(杭州)
- 套餐配置:2核 vCPU|2GB 内存|50GB 高效云盘|3Mbps 限峰值带宽
做一件事,最难的是前期的准备和后期的总结归档,当你前期准备充分了,即便过程中遇到困难也会迎刃而解,后期总结清晰,即便再次遇到也毫无压力。
这是我第二次搭建技术网站,相比较第一次对目标和流程更加的清晰,过程中遇到一些难点也能够清楚的定位到错误在哪里,想起之前第一次的时候之前一天踩一坑,坑坑不重样的囧态不经一笑。
之前采用的宝塔配置的云服务器,大家可以去试一下,不要太爽,直接可视化界面部署,但是对于Linux系统的认识没有帮助,所以这次我采用的纯指令方式一步步安装部署,也是再次熟悉一下Linux系统,当然也踩了几个坑,在下文中都已经填平,可以放心食用!!
操作目录:
文章目录
一、安全组设置
首先是服务器安全组的设置,主要是看服务器厂家的设置,需要开放80端口供Nginx使用。
二、云服务器的配置
目标:完成服务器环境配置,使得本地文件推送到服务器能成功运行。
注意负责相关文件夹以及文件创建的用户,我在下方都有标注,创建文件的用户不也一样,相关权限也不一样,会直接影响环境的配置!!!
技术点:
- Linux指令
- Nginx配置
- nodejs配置
- Git及其仓库配置
1、本地博客文件存放目录(root用户)
我的存放路径:home/www/blog
# 按序操作指令
cd /home
mkdir www
cd /www
mkdir /blog
2、Nginx配置(root用户)
# 使用yum安装
yum install -y nginx
# 开启服务器
systemctl start nginx
# 设置开机自启
systemctl enable nginx
# 测试:使用ip地址访问出现CentOS界面表示安装成功!
此时访问的是Nginx的默认页面,我们需要在Nginx内部设置访问我们自己的博客文件,找到Nginx的配置文件:etc/nginx/nginx.conf
进行修改如下:
server {
listen 80;
listen [::]:80;
# 修改server_name 为自己域名,如果暂时不可用就填公网ip
server_name www.yangsir2022.top;
# 修改root 为上文创建的博客文件目录
root /home/www/blog;
# Load configuration files for the default server block.
include /etc/nginx/default.d/*.conf;
error_page 404 /404.html;
location = /404.html {
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
}
}
3、Nodejs配置(root用户)
# 更换安装源
curl -sL https://rpm.nodesource.com/setup_10.x | bash -
# 使用yum安装
yum install -y nodejs
# 测试是否成功,出现版本号即表示成功
node -v
npm -v
3、Git及其仓库配置(root转git用户)
目标:使用Git将本地的博客文件推送到云服务器,连接方式:ssh
①安装Git程序(root用户)
# 使用yum安装
yum install git
# 测试:出现如下版本号即表示安装成功
# (git version 1.8.3.1)
git --version
②新建git用户(root用户)
# 创建git用户
adduser -m git
# 修改用户sudoers文件权限,方便编辑
chmod 740 /etc/sudoers
# 编辑文件
# 注意:字母i键进行编辑、退出方式(按Esc键,再 :wq 保存退出)
# 如果误操作Ctrl+S使用Ctrl+Q恢复
vi /etc/sudoers
③添加git ALL=(ALL) ALL
使得 git 用户拥有 sudo 管理员权限(root用户)
## Syntax:
##
## user MACHINE=COMMANDS
##
## The COMMANDS section may have other options added to it.
##
## Allow root to run any commands anywhere
root ALL=(ALL) ALL
# 在此处添加
git ALL=(ALL) ALL
## Allows members of the 'sys' group to run networking, software,
## service management apps and more.
# %sys ALL = NETWORKING, SOFTWARE, SERVICES, STORAGE, DELEGATING, PROCESSES, LOCATE, DRIVERS
在 Linux 系统中,只有拥有管理员权限的用户才能执行一些需要特殊权限的操作,例如修改系统文件或者安装软件等。通常,用户需要使用 sudo
命令来获取临时的管理员权限,但是默认情况下,只有在 /etc/sudoers
文件中被明确授权的用户才能使用 sudo
命令。
在 /etc/sudoers
文件中添加 Git ALL=(ALL) ALL
的目的是将 Git
用户加入到 sudoers 组中,从而使该用户能够使用 sudo
命令以管理员权限执行系统命令。注意,对于任何修改 /etc/sudoers
文件的操作,都需要使用 visudo
命令进行编辑,以确保语法正确且避免因为语法错误导致系统安全问题。
④改回权限(root用户)
chmod 400 /etc/sudoers
⑤设置git用户的密码(root用户)
# 设置git用户密码
# 界面不会有显示,直接输入后回车,会提示输入两次
passwd git
⑥切换到 git 用户,在 ~ 目录创建.ssh文件夹做生成密匙的前期准备(root转git用户)
# 转到git用户
su git
# 切换到~目录
cd ~
# 创建.ssh公钥密匙文件夹
mkdir .ssh
# 切换进.ssh文件夹
cd /.ssh
⑦生成公钥密匙文件(git用户)
# 运行以下指令后.ssh文件夹会有两个文件,分别是id_rsa密匙 和 id_rsa.pub公钥
ssh-keygen
⑧复制一份公钥文件 id_rsa.pub 到当前目录 并改名 authorized_keys(git用户)
cp id_rsa.pub authorized_keys
⑨权限修改并测试本地ssh连接云服务器(本地)(git用户)
chmod 600 ~/.ssh/authorized_keys
chmod 700 ~/.ssh
# xxx.xxx.xxx.xxx替换为公网ip
# 当你看到Welcome to Alibaba Cloud Elastic Compute Service !
# 表示连接成功
ssh -v git@xxx.xxx.xxx.xxx
⑩创建git
的仓库,新建钩子文件post-receive
(git用户)。
cd ~
git init --bare blog.git
# 新建钩子文件post—receive
# 编辑文件
# 注意:字母i键进行编辑、退出方式(按Esc键,再 :wq 保存退出)
# 如果误操作Ctrl+S使用Ctrl+Q恢复
vi ~/blog.git/hooks/post-receive
# 设置Git工作树(工作目录)和 git仓库的位置
git --work-tree=/home/www/blog --git-dir=/home/git/blog.git checkout -f
# 退出之后赋予可执行权限
chmod +x ~/blog.git/hooks/post-receive
git --work-tree=/home/www/blog --git-dir=/home/git/blog.git checkout -f
这个命令的作用是将git仓库中的代码强制检出到工作目录中。具体来说:
--work-tree=/home/www/blog
指定了工作目录,也就是代码将要被检出到哪里。--git-dir=/home/git/blog.git
指定了git仓库的位置,也就是代码从哪个git仓库中被检出。checkout
命令用于将git仓库中的代码检出到工作目录中。-f
选项表示强制检出,即如果工作目录中已经有一些修改了的文件,也会被覆盖。
关于云服务器添加SSL证书和配置https的方法,由于篇幅原因,请移步我的主页觅食!!
至此,云服务器配置完成!下面配置本地环境!
三、本地环境的配置
目标:完成本地环境配置,使得可以在成功编译并运行推送。
技术点:
- Windows环境Git及其仓库配置
- nodejs配置
- hexo配置
- 本地部署推送
1、Windows环境Git及其仓库配置
Git官网下载速度比较慢,可以去阿里镜像下载:点击我进入阿里巴巴Git镜像下载
关于Git安装教程请参考:点击我进入Git安装详细教程,这篇文章讲的非常详细。
2、nodejs配置
关于nodejs的配置,推荐使用nvm管理nodejs,这样可以让你有多个版本nodejs,并且不冲突,非常丝滑!!
可以参考这篇文章:[点击我进入nvm和node的下载配置](https://blog.youkuaiyun.com/JJ_Smilewang/article/details/127823953#:~:text=1.首先在NVM的安装目录新建两个文件夹node_global和node_cache 2.创建完两个文件夹后,在cmd窗口中输入以下命令(两个路径即是两个文件夹的路径): npm,config set prefix “D%3ANVMnode_global”)
3、hexo配置
关于hexo的配置建议参考hexo脚本网站:点击我进入hexo脚本自动化配置 非常详细。
4、本地部署推送
修改hexoblog下的_config.yml文件最下方的:
# Deployment
## Docs: https://hexo.io/docs/one-command-deployment
deploy:
- type: git
repo: git@121.43.167.55:/home/git/blog.git
branch: master
最后开启hexo三剑客:hexo clean && hexo g && hexo d
好了,本次的云服务技术分享网站搭建就到这里了
常详细。
4、本地部署推送
修改hexoblog下的_config.yml文件最下方的:
# Deployment
## Docs: https://hexo.io/docs/one-command-deployment
deploy:
- type: git
repo: git@121.43.167.55:/home/git/blog.git
branch: master
最后开启hexo三剑客:hexo clean && hexo g && hexo d