购买服务器
阿里云向学生出售优惠价格的服务器,一个月只需9.5块,具体配置看图吧
更新Ubuntu源,安装Git
1
2
3sudo apt update
sudo apt upgrade
sudo apt-get install git
配置Nginx
安装Nginx
sudo apt install nginx
开启Nginx服务
sudo service nginx start
在任意设备上使用浏览器访问服务器ip地址,比如我的服务器访问 http://47.102.140.114
如果返回如下界面,则表明Nginx安装成功
安装MySQLsudo apt install mysql-server
安装过程中需要设置两次密码
安装PHPsudo apt install php php-fpm php7.0-mysql
安装后,修改Nginx默认配置文件使其支持PHP
sudo vim /etc/nginx/sites-available/default
将下面的代码取消注释
1
2
3
4location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/run/php/php7.0-fpm.sock;
}
修改完配置,重启Nginx
sudo service nginx restart
在/usr/share/nginx/html/目录创建info.php文件,测试PHP
sudo vim /usr/share/nginx/html/info.php
输入以下代码
1
2<?php phpinfo();
?>
在任意浏览器访问服务器 http://服务器ip地址/info.php
如果显示以下内容,则表明配置成功
配置python和MySQL
修改系统默认python,服务器自带python2.7和python3.5,我习惯用3x版本,所以把默认版本改成了它
1
2sudo update-alternatives --install /usr/bin/python python /usr/bin/python2 100
sudo update-alternatives --install /usr/bin/python python /usr/bin/python3 150
这样,在终端输入python,默认进入的是3.5版本的python
但是python3.5版本不能使用mysql-python的包,因为这个包只适用于2x版本的,所以寻找了另一个相似的包——mysqlclient
先安装依赖
1
2
3sudo apt-get install libmysql-dev
sudo apt-get install libmysqlclient-dev
sudo apt-get install python3-dev
再安装
sudo pip install mysqlclient
进入python,输入import MySQLdb,检查模块是否可以正常导入,如果没有报错,说明安装成功
hexo 部署到阿里云服务器
新建空的Git仓库
在服务器终端运行
1
2$ mkdir tombraiderjf.git && cd tombraiderjf.git
$ git init --bare
修改hexo配置
在本地hexo配置_config.yml文件
将第一行注释掉,改为root@服务器ip地址:服务器git路径
1
2#repository: git@github.com:TombRaiderjf/TombRaiderjf.github.io.git
repository: root@ip_address:/home/admin/tombraiderjf.git
这样,每次进行hexo d 操作就是将本地生成的public文件夹push到服务器的Git仓库里了
自动部署
本地的deploy命令只是把静态文件提交到git仓库,既然有git hooks,那么我们可以在有文件提交上来时,再将文件拷贝到博客网站目录。
进入到git仓库hooks目录,并创建钩子post-receive
1
2
3cd /www/blog.git/hooks
touch post-receive
vim post-receive
然后编辑post-receive,输入以下脚本
1
2
3
4
5
6
7
8#!/bin/bash -l
GIT_REPO=/home/admin/tombraiderjf.git
TMP_GIT_CLONE=/home/admin/temp
PUBLIC_WWW=/home/admin/myblog
rm -rf ${TMP_GIT_CLONE}
git clone $GIT_REPO $TMP_GIT_CLONE
rm -rf ${PUBLIC_WWW}/*
cp -rf ${TMP_GIT_CLONE}/* ${PUBLIC_WWW}
:wq保存并退出
其中/home/admin/tombraiderjf.git为仓库路径,/home/admin/myblog为你的博客网站路径,/home/admin/temp是临时目录,git会先将文件拉到临时目录,然后再将所有文件拷贝到博客网站目录/home/admin/myblog
更改目录权限:
1
2chmod +x post-receive
chmod 777 -R /www/blog
修改Nginx配置sudo vim /etc/nginx/sites-availible/default
将server中的root路径修改为博客网站目录
root /home/admin/myblog
将server中的index名称改为自己的博客网页入口html,我的文件名是index.html,所以不需要修改
在本地测试
在本地终端输入 hexo g -d,并输入服务器密码,即可成功部署到服务器上
然后,在本地浏览器访问服务器ip地址,即可看到hexo博客内容