Linux服务器使用Nginx搭建Hexo博客+Github Pages

看了很多搭建博客的 wordpressghostjekyllcnhexo。这些都可以搭建属于自己的博客,各有各的优点,开始的时候使用了wordpress搭建了一个感觉太弱鸡了。先安装一个 宝塔软件,然后安装wordpress没什么难度,关键定制里面的东西感觉一点都不方便,重点是界面极丑,我感觉自己把主题全部换遍了然后都没有一个我自己觉得满意的,然后我放弃了,不用这个搭建。

然后看了其他很多搭建博客的,后来选择了hexo。

Hexo 是一个快速、简洁且高效的博客框架。Hexo 使用 Markdown(或其他渲染引擎)解析文章,在几秒内,即可利用靓丽的主题生成静态网页。Hexo的主题样式也有很多好看的,而且github都有star上万的。说明还是很受欢迎的。

如果有人想使用Ghost搭建的轻型博客可以去看一下如何在 CentOS 7 上搭建一个 Ghost 博客,朋友就是使用这个搭建的,我选择了hexo我就不去折腾了。

hexo 搭建博客可以采用

​ 1、Hexo + Github Pages 的方案,前往https://github.com注册一个账号。
​ 2 、采用 CentOS 搭建在云服务器上,我的是CentOS / 7.6 x64系统,就是Linux操作系统的一个发行版本。

目录

如果直接在放在服务器上,可以不用安装git,只是需要安装nodeHexonginx。如果使用Github搭建,则需要按照安装。意思就是如果你想要通过git从一个地方提交到远程仓库,就需要安装。

免费的代码存储空间,先去上面的网址注册一个账号,这个账号就是作为博客的网址的前缀,注意这个是不能修改的https://xxx.github.io。由于我都使用工具在云服务器操作的,所以这儿推荐一个Mac系统软件上感觉相对好用的软件 FinalShell SSH工具简陋的官网,不过我喜欢,就喜欢简单而又直白的…。macOs系统版本FinalShell下载windows版本FinalShell下载。不过你喜欢用其他也行,只要能连接上服务器就完事。

一、配置Node和安装

  • 如果你是使用的Final的话,你自己选择一个node要安装的目录,你也可以新建一个。我的是在主目录新建了一个/soft,然后在命令工具cd /soft 该目录,如果你这儿是想放在其他目录里,你自己cd到要的那个目录里,然后你直接把下载下来的node包拖到这个目录下,就会显示上传。如果你使用的其他工具请自行解决,你也可以使用服务器远程桌面连接,然后在服务上直接下载也行。

  • 使用命令 xz -d node-v12.14.1-linux-x64.tar.xz转为 node-v12.14.1-linux-x64.tar文件 然后tar -xvf node-v10.15.1-linux-x64.tar解压,然后使用删除 rm -rf node-v12.14.1-linux-x64.tar源文件,重命文件夹 mv node-v12.14.1-linux-x64 node 后面好使用。

  • 建立软连接,就是快捷方式就相当于一个入口相当于桌面快捷方式,前面部分就是你先前安装路径 后面是快捷方式路径。

    ln -s /soft/node/bin/node /usr/local/bin/node
    ln -s /soft/node/bin/npm /usr/local/bin/npm

  • 使用 npm - vnode - v是否安装成功,如果成功会输出版本号#node -v v12.14.1 和 `#npm -v6.13.4。

    找到这个 /usr/local/bin 路径会node和npm的快捷方式,带有绿色的箭头。

二、Git环境安装

  • 选择一个目录安装Git,看你自己安装在哪儿。我的是安装到/usr/local目录下,cd /usr/local/git

  • 这儿查看git最新版本 或者github上查看,我使用的是git v2.20.0-rc0版本,你可以直接下载下来上传到linux环境中。也可以使用命令 wget https://github.com/git/git/archive/v2.20.0-rc0.tar.gz

  • 下载过后然后解压和上面的步骤一样 tar -zxvf git-v2.20.0-rc0.tar.gz,然后删除rm -rf git-v2.20.0-rc0.tar.gz源文件。

  • 安装依赖包, yum install curl-devel

    开始安装Git ./configure --prefix=/usr/local/git 这儿这个/usr/local/git 就儿这个目录是你的git安装目录,之前的解压出来目录是 /usr/local/git-v2.20.0-rc0 。

    执行 make。

    再执行完成过后,执行 make install

    建立软连接,和前面的意思一样快捷方式 ln -s /usr/local/git/bin/* /usr/bin/

    查看版本git --version

  • GitHub 添加 SSH key,先看本地是否有cd ~/.ssh 然后再执行ls,存在会显示 id_rsa、id_rsa.pub、know_hosts 三个文件,没有创建 ssh-keygen -t rsa -C "xxx邮箱",把 “xxx邮箱” 替换成你真实的注册github时的邮箱,然后回车输入两次密码。直接回车为空就行,成功后通过如下命令拷贝 SSH key 的内容 clip < ~/.ssh/id_rsa.pub不过你也可以直接打开然后再复制。然后再github新建的仓库里,用你的用户名命名。创建成功过后打开SSH and GPD Keys然后填入信息和刚才复制的 SSH keys值 ,到这儿github pages配置完成。

三、Hexo安装

  • 安装 npm install -g hexo-cli,hexo为node的一个模块。

  • 建立hexo 软连接 ln -s /soft/node/bin/node/lib/node_modules/hexo-cli/bin/hexo /usr/local/bin/hexo

  • cd /soft/hexo/hexoblog,然后执行 hexo init hexoblog npm install

  • hexoblog目录下会多出来.deploy_gitnode_modulesscaffoldspublicsourcethemes等一些配置文件夹,这儿public就是hexo 执行hexo g过后生成的网站根目录,source是编写的Markdown文件资源,themes是hexo博客的一些主题目录。这儿还有一个重要的目录配置文件_config.yml这个就是配置网站里的基础信息。

  • hexo cleanhexo generate、 hexo serverhexo deploy 分别对应简写hexo c、 g 、s 、d,第一个清除所有生成网页文件,第二个生成静态的网页文件,第三个开始启动本地服务器 http://localhost:4000/临时时访问,第四个是生成后立即部署网站。更多指令可以前往hexo官网查看

  • 这儿public目录下的_config.yml配置如果是使用github+pages 。

    1
    2
    3
    4
    5
    6
    7
    8
    heme: landscape-plus ##这儿默认是landscape主题官方

    # Deployment
    ## Docs: https://hexo.io/docs/deployment.html
    deploy:
    type: git
    repository: git@github.com:xxx/xxx.github.io.git ##这儿换成你github用户名
    branch: master
  • 配置过后就可以hexo s查看hexo d发布到github了。

四、Nginx配置安装

  • 官网下载最新的Nginx安装包nginx-1.14.2

  • 上传到服务器 /usr/local,和前面一样的解压,然后 cd /usr/local/ngxin-1.14.2,再执行命令./configure --prefix=/usr/local/nginx-1.14.2

  • 执行 make ,再执行 make install

  • 找到安装完成过后的 /usr/local/nginx/sbin/nginx的文件,我这儿把nginx-1.14.2重命名nginx。然后修改nginx的配置。找到路径 /usr/local/nginx/conf/nginx.conf 打开这儿就是一系列的配置。

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    server {
    listen 80;#可以修改成其他端口,确定该端口可用
    server_name localhost;#有域名填写域名

    listen 443 ssl;
    ssl_certificate server.crt;
    ssl_certificate_key server_nopwd.key;
    #charset koi8-r;
    #access_log logs/host.access.log main;
    location / {
    root /soft/hexo/nginxblog/public;
    #这儿就是你要修改的hexo生成的静态网站目录
    index index.html index.htm;
    }
    #error_page 404 /404.html;
    # redirect server error pages to the static page /50x.html
    error_page 500 502 503 504 404 /404x.html;
    location = /404x.html {
    root html;
    }
    }
    • 然后启动nginx, /usr/local/nginx/sbin/nginx -s reload 如果有错误的话会提示错误。/usr/local/nginx/sbin/nginx -t会检查nginx配置文件是否正确。/usr/local/nginx/sbin/nginx -s stop快速停止。

    • 如果启动出现telnet: connect to address ~ no route to host 重新关闭了重启开始出现的话,请先检查端口是否可用,可以使用指令查看 ps -ef | grep nginx 查看nginx端口是否启动成功。netstat -a 查看所有服务端口运行情况。如果还是没有解决,直接关闭防火墙iptables -F,然后再重启nginx。

    • 到这儿如果是80端口的话,你直接在你电脑上输入服务器主ip地址应该就可以看到你的博客界面了。

IOS关于极光推送JPush不能上报deviceToken的问题

问题一、 ld:library not found for -ljpush-ios-3.0.9
clang: error: linker command failed with exit code 1 (use -v to see invocation)

问题二、JIGUANGDeviceTokenController Not get deviceToken yet. Maybe: your certificate not configured APNs? or current network is not so good so APNs registration failed? or there is no APNs register code? Please refer to JPush docs.

由于项目比较老,推送的SDK版本比较低的原因,之前老的项目可以正常推送,现在在旧项目基础上新改版的一个app不能正常推送,推送账号一切都是正常的。

Read More

《无心》

华亭散漫风萧处,不现萦纡见浮层。
凡尘若是千非尽,只怪离人自有心。
满庭蒲扇护春草,人拟何时归残物。
亦作磐石盘恒心,不识烟火不赏美。
秋殇秋夜秋落叶,与人与事与朝夕。
曾有心销声匿迹,终无归人辗转起。

by:霜

《寻谊》

浅疏流萤入境来。梦翳斜娑,银烛泪墙白。
孤影倒挂映绿苔,忽知一夜情未猜!
靡靡千转呼天籁。意枕寒流,淡桥折谊在。
遥望绿浓红绸暧,行军虏马嘶声哀。

by:霜