VPS搭建个人博客/相册教程01_服务器环境配置

环境:

vps环境:CentOS 6.9

本机环境:macOS10.12


1. SSH登录VPS

2. 搭建LNMP环境

2.1 cd到root用户目录下

1
cd /root # 安装包下载目录

2.2 下载lnmp一键安装包

1
wget -c http://soft.vpser.net/lnmp/lnmp1.4.tar.gz # 版本随意

2.3 解压缩到/usr/local目录下

1
tar zxf lnmp1.4.tar.gz -C /usr/local # 安装目录要放在/usr路径下

2.4 安装

1
cd /usr/local/lnmp1.4 && ./install.sh

然后会出现一些安装提示选项,一路回车键就好。然后就开始安装各种软件,来杯82年的java,稍等片刻,安装完成。

出现如上提示表示安装完成。输入lnmp help命令查看更多使用帮助。

Snip20171218_1.png

在浏览器中输入vpsip地址,将会看到如下提示页面。至此,lnmp环境已经安装完成。

3. 安装Node环境

个人相册使用的是zing-gallery的开源项目。因为需要在服务端开启一个node服务,所以这里需要配置好node环境。

3.1 cd到root用户目录下

1
cd /root

3.2 下载node安装包

1
wget http://nodejs.org/dist/v6.4.0/node-v6.4.0-linux-x64.tar.gz

3.3 解压缩到/usr/local目录下

1
tar zxvf node-v6.4.0-linux-x86.tar.gz -C /usr/local

3.4 添加环境变量

1
2
3
4
5
6
vi /etc/profile

在最底下添加以下代码
export NODE_HOME=/usr/local/node-v6.4.0-linux-x64
export PATH=$PATH:$NODE_HOME/bin
export NODE_PATH=$NODE_HOME/lib/node_modules

3.5 source /etc/profile

3.6 node -v

3.7 npm -v

PS:

如果需要升级node,可以使用node升级神器-n

1.全局安装n

​ npm install -g n

2.查看版本

​ n -V

3.卸载当前的node

4.使用n安装node

​ n stable(稳定的正式版本)

​ n latest(官方最新的发布版本)

​ n lts(最新的LTS正式版本)

​ n 9.2.0 (安装指定版本)

具体使用n help查看帮助

4. 配置Git仓库

静态博客和个人相册的代码,你可以选择托管到github或者coding.net上。然后使用webhooks,在你每次本地push之后,触发post-receive脚本,然后在个人vps上,拉取远程仓库的代码。

因为是自己的vps,想怎么搞就怎么搞,所以在vps上搭建好git环境,我就直接将博客和相册代码托管到vps上了,没有使用github和coding.net。

4.1 安装git

1
git --version

如果安装过git,会提示git版本号。
如果没有安装过,使用下面的命令安装git,安装完查看git版本

1
yum install -y git

4.2 用户配置

  • 1.新建一个git用户

    1
    adduser git
  • 2.修改密码

    1
    passwd git # 输入密码,确认密码即可
  • 3.配置git用户

    • 3.1切换到git用户目录下

      1
      2
      su git 
      cd ~
    • 3.2添加ssh公钥

      1
      2
      mkdir -p ~/.ssh
      vi ~/.ssh/authorized_keys # 在电脑的命令行中执行 cat ~/.ssh/id_rsa.pub | pbcopy # 将公钥复制粘贴到authorized_keys,然后保存退出
    • 3.3添加文件及目录权限

      1
      2
      chmod 700 ~/.ssh
      chmod 600 ~/.ssh/authorized_keys
    • 3.4设置git用户ssh免密码登录

      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      su root # 切换到root用户
      chmod 740 /etc/sudoers # 修改权限
      vi /etc/sudoers

      找到以下内容
      ## Allow root to run any commands anywhere
      root ALL=(ALL) ALL
      在下面加上一行,保存退出
      git ALL=(ALL) ALL

      chmod 400 /etc/sudoers # 恢复为原来的权限
    • exit退出,使用git用户用ssh登录

ps:

如果你刚输完密码,然后再若干秒之后忘了密码。比如我,这时你就可以用到以下命令。

userdel -r git

如果出现userdel: user git is currently used by process 10958

ps -u git | awk ‘{print $1}’ | grep -vi pid | xargs kill -9

kill用户相关进程,之后再次执行删除用户命令

4.3 hexo博客及gallery相册git远程仓库配置

  • 1.git用户下,进入到git用户主目录

    1
    cd ~
  • 2.新建一个文件夹,用于存放hexo博客以及gallery相册的git仓库

    1
    mkdir repo
  • 3.配置hexo博客的git仓库

    • 3.1 新建一个文件夹用于存放hexo博客的git仓库

      1
      cd /home/git/repo && mkdir blog.git && cd blog.git
    • 3.2 初始化一个空仓库

      1
      git init --bare
    • 3.3 配置githooks,新建一个脚本文件

      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      cd hooks && vi post-receive

      复制以下代码粘贴保存退出
      #!/bin/bash
      GIT_REPO=/home/git/repo/blog.git #git仓库目录
      TMP_GIT_CLONE=/tmp/hexo
      PUBLIC_WWW=/home/wwwroot/blog #代码存放目录
      rm -rf ${TMP_GIT_CLONE}
      git clone $GIT_REPO $TMP_GIT_CLONE
      rm -rf ${PUBLIC_WWW}/*
      cp -rf ${TMP_GIT_CLONE}/* ${PUBLIC_WWW}
    • 3.4 修改权限

      1
      chmod +x post-receive
    • 3.5 修改所有者

      1
      chown git:git -R /home/wwwgit/blogs

  • 4.配置gallery相册的git仓库

    • 4.1 新建一个文件夹用于存放gallery相册的git仓库

      1
      cd /home/git/repo &&mkdir gallery.git && cd gallery.git
    • 4.2 初始化一个空仓库

      1
      git init --bare
    • 4.3 老规矩,同上

      1
      2
      3
      4
      cd hooks && vi post-receive

      老规矩,复制以下代码粘贴保存退出
      git --work-tree=/home/wwwroot/gallery--git-dir=/home/git/repo/gallery.git checkout -f
    • 4.4 修改权限

      1
      chmod +x post-receive
    • 4.5 修改所有者

      1
      chown git:git -R /home/wwwgit/gallery

至此,在vps服务器上面已经配置好了hexo博客以及gallery相册的git托管仓库了,仓库地址放在/home/git/repo目录下,代码放在/home/wwwroot目录下。

5. Nginx配置

5.1 查看nginx默认配置文件

1
2
3
4
5
6
7
8
9
10
11
12
13
vi /usr/local/nginx/conf/nginx.conf

找到以下代码:
server
{
listen 80 default_server;
#listen [::]:80 default_server ipv6only=on;
server_name _;
index index.html index.htm index.php;
root /home/wwwroot/default;
...
}
include vhost/*.conf;

看到nginx默认配置,虚拟主机配置,监听80端口,索引文件名称为index.html index.htm index.php,索引文件根路径为/home/wwwroot/default。

在浏览器中输入ip地址可以看到打开的是LNMP一键安装包安装成功提示网页。

接下来cd到/home/wwwroot/default目录下,可以看到该目录下已经存在如下这些文件,也就是你在浏览器中通过ip地址打开的LNMP一键安装包安装成功提示网页的内容。

1
2
3
4
5
6
7
8
9
10
root@vultr default]# cd /home/wwwroot/default
[root@vultr default]# ls -l
total 84
-rw-r--r-- 1 root root 2781 Dec 15 21:00 index.html
-rw-r--r-- 1 root root 5683 Dec 15 21:00 lnmp.gif
-rw-r--r-- 1 root root 20256 Dec 15 21:00 ocp.php
-rw-r--r-- 1 root root 20 Dec 15 21:00 phpinfo.php
drwxr-xr-x 14 www www 4096 Dec 15 21:00 phpmyadmin
-rw-r--r-- 1 root root 42609 Dec 15 21:00 p.php
[root@vultr default]#

所以我们直接将root 目录改为hexo博客的文件目录即可,但是一般不建议直接在默认的配置文件里修改,在配置文件中底部会发现include vhost/*.conf;这句,意思也就是说会去包含当前文件夹vhost文件夹下所有配置文件。所以我们就可以在vhost文件夹下新建一个虚拟主机的方式来配置hexo博客。

5.2 新建一个虚拟主机

1
lnmp vhost add

填上你的域名,设置root为你的hexo博客文件路径即可。

配置成功。

5.3 重启nginx服务

1
nginx -s reload

至此,nginx配置成功。


此时,在浏览器中输入域名访问网页,dns解析到绑定的ip也就是你的vps分配给你ip地址,读取该配置文件中root目录下的文件资源也就是你的hexo博客目录的资源文件,加载博客页面。发现打开的是个403页面(当然了,因为/home/wwwroot/hexo目录下并没有任何文件。)。

接下来就是要将本地hexo博客使用git从本地上传到服务器上就可以了。

至此,服务端的配置已经基本完成。

Rui,<br>.....。