Instale Hexo en CentOS 7

Hexo es una plataforma de blog estática, construida con Node.js. Es rápido en comparación con otras plataformas de blog estáticas, como Jekyll.

En este tutorial, explicaré cómo construir e implementar un blog de Hexo. Los pasos son bastante simples, escritos para CentOS 7, Node.js 4.4. Mi máquina local es Fedora 23.

Prerrequisitos

Comenzamos con un sistema CentOS 7 recién instalado. Se requieren los siguientes paquetes de software:

  • gcc-c y gcc-c ++
  • hacer y git
  • nginx
  • openssl
  • nodejs y npm

Deberá iniciar sesión como root o como usuario con privilegios de sudo.

Instalar utilidades

$ yum install -y gcc gcc-c++ make git openssl

Instalar Nginx

Puede instalar nginxdesde el repositorio predeterminado:

$yum install -y nginx

... o instalar una versión estable del repositorio oficial de Nginx, aquí elegimos el último.

Cree un archivo de repositorio denominado nginx.repo, cuyo contenido es:

[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/mainline/centos/7/$basearch/
gpgcheck=0
enabled=1

... y copiarlo a /etc/yum.repo.d/,

$ cp nginx.repo /etc/yum.repo.d/
$ yum update and yum install -y nginx
$ systemctl enable nginx and systemctl start nginx

Instalar Node.js

Instalamos Node.js desde hace mucho tiempo desde el repositorio oficial de Node.js.

$ curl --silent --location https://rpm.nodesource.com/setup_4.x | bash -
$ yum update and yum install -y nodejs

Crea un nuevo usuario

Por lo general, es mejor crear un usuario común para ejecutar su blog, porque la raíz tiene permisos de superusuario.

Aquí creamos un usuario llamado vultry lo agregamos al grupo wheely nginx:

$ useradd -d /home/vultr -m -r -U -s /bin/bash
$ passwd vultr
$ usermod -aG nginx vultr
$ usermod -aG wheel vultr

Generar un par de claves SSH

Es útil y necesario iniciar sesión a través de una clave ssh.

$ ssh-keygen -b 4096 -C "vultr@example.com"

Después de crear nuestro par de claves ssh, copie la clave pública (generalmente id_rsa.pub) ~/.ssh/authorized_keysen el servidor:

ssh-copy-id -i ~/.ssh/id_rsa.pub vultr@example.com

Y ahora, tenemos todos los paquetes de preinstalación instalados.

Construye tu blog Hexo

Instalar Hexo

Inicie sesión como vultrusuario. Luego, crea ~/web/web/vultry ~/web/git/vultr:

### This is our hexo blog root directory
$ mkdir -p ~/web/web/vultr
### This is our git repository directory on the server
$ mkdir -p ~/web/git/vultr
### This is our deploy directory
$ mkdir -p ~/web/git/hexo

Ingrese ~/web/web/vultre instale Hexo:

$ cd ~/web/web/vultr
$ sudo npm install -g hexo-cli hexo-server
$ hexo init && npm install --save

Ahora solo tenemos que crear nuestro nuevo blog.

Editar _config.yml, para cambiar la URL del sitio de tu blog. Entonces corre:

$ hexo g

Su blog ahora ha sido generado. Los archivos HTML se encuentran en ~/web/web/vultr/public.

Configura tu servidor Nginx

En este punto, todavía no podemos acceder a nuestro sitio web. Por lo tanto, necesitamos configurar Nginx.

Nginx se ejecuta como un usuario nombrado nginxen el nginxgrupo, y es por eso que necesitamos agregar vultral grupo nginx.

$ chown -R vultr:nginx ~/web

Crear un archivo de configuración llamado Nginx vultr.confbajo ~/web/cuyo contenido es más o menos así:

server {
    listen 80;
    listen [::]:80;
    ## if https is desired, please uncomment the following lines
    #listen 443 ssl http2;
    #listen [::]:443 ssl http2;

    server_name example.com, www.example.com;

    ## if forcing https, please uncomment the following lines
    #if ($scheme = http) {
    #    return 301 https://$server_name$request_uri;
    #}

    location / {
    root /home/vultr/web/web/vultr/public;
    index index.html;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header Host $http_host;
    ## if https is desired, please uncomment the following lines
    #proxy_set_header X-Forwarded-Proto https;
    }
}

Copiar vultr.confa /etc/nginx/config.d/y reiniciar Nginx:

$ sudo ln -sf ~/web/vultr.conf /etc/nginx/config.d/
$ sudo systemctl restart nginx

Ahora nuestro blog es accesible con un navegador web.

Usando Git para implementar tu blog

Como el blog ya está configurado, esta parte del tutorial es opcional.

En este punto, es un poco inconveniente escribir una publicación de blog, ya que necesitaríamos iniciar sesión y escribir en el servidor. Una mejor solución sería escribir en nuestra máquina local, insertar la publicación en el servidor y dejar que Hexo genere automáticamente los archivos estáticos. Considerando que git tiene ganchos que pueden hacer muchas cosas, podemos usar un gancho git para lograr esta configuración.

Crear un repositorio desnudo en el servidor

Inicie sesión nuevamente en el servidor como usuario vultr. Crea un repositorio desnudo:

$ cd ~/web/git/vultr
$ git init --bare
$ cd hooks

Escriba un archivo bash llamado post-receiveque desplegará nuestro blog después de cada inserción:

#!/bin/bash
deploy_to_dir="/home/vultr/web/git/hexo"

GIT_WORK_TREE=$deploy_to_dir git checkout -f master
echo "DEPLOY:   master  copied to  $deploy_to_dir"

hexo_dir="/home/vultr/web/web/vultr/"

cd $hexo_dir

hexo clean && hexo --silent g

if [[ $? == 0 ]]; then
    echo "Congratulations! Your blog has been correctly deployed"
else:
    echo "Unfortunately your blog has not been deployed correctly"
fi

Antes de que la implementación funcione, también debemos ejecutar estos comandos en el servidor:

cd ~/web/web/vultr/
rm -rf source scaffolds _config.yml themes
ln -sf /home/vultr/web/git/hexo/themes/tranquilpeak  themes/
ln -sf /home/vultr/web/git/hexo/source .
ln -sf /home/vultr/web/git/hexo/scaffolds .
ln -sf /home/vultr/web/git/hexo/_config.yml .

Configura tu repositorio git local

En la máquina local, también necesitamos crear un repositorio. Estos pasos pueden variar si está utilizando un sistema operativo de escritorio que no sea Fedora.

Necesitarás tener git instalado.

Configura un repositorio git local:

$ mkdir -p ~/vultr/git/vultr`
$ cd ~/vultr/git/vultr and git init
$ git remote add production ssh://vultr@example.com:/home/vultr/web/git/vultr

Es útil instalar Hexo en su máquina local para escribir una publicación. Aquí configuramos un directorio Hexo para escribir.

$ mkdir ~/vultr/vultr && cd ~/vultr/vultr
$ hexo init && npm install --save
$ mv  source  _config.yml themes scaffolds ~/vultr/git/vultr
$ ln -sf ~/vultr/git/vultr/source .
$ ln -sf ~/vultr/git/vultr/_config.yml .
$ ln -sf ~/vultr/git/vultr/scaffolds .
$ hexo new "Test Post"

La configuración está completa. Puede enviar una publicación a su servidor con los siguientes comandos:

$ cd ~/vultr/git/vultr
$ git add . && git commit -m "new post"
$ git push production master

Tras el éxito, el blog se actualizará automáticamente. Salud.

Cómo instalar Multicraft en Windows

Introducción Multicraft es un panel de control de administración de servidores de Minecraft que se usa para administrar su servidor de Minecraft. En este tutorial, vamos a instalar

Proteja el acceso SSH usando Spiped en OpenBSD

Dado que el acceso SSH es el punto de entrada más importante para administrar su servidor, se ha convertido en un vector de ataque ampliamente utilizado. Pasos básicos para asegurar SS

Cómo instalar el CMS de octubre 1.0 en un VPS LAMP Debian 9

¿Usando un sistema diferente? October 1.0 CMS es un sistema de gestión de contenido (CMS) simple y confiable, gratuito y de código abierto creado en el marco de Laravel

Cómo instalar XCache en Ubuntu 15.04

XCache es un cacher de código abierto de código abierto para PHP. En este tutorial, explicaré cómo instalar y configurar XCache. Supongo que ya tienes un servicio web

How to Install MongoDB 4.0 on Arch Linux

Prerequisites A Vultr server running up to date Arch Linux (see this article) Sudo access: Commands required to be ran as root are prefixed by #, and one

How to Install RainLoop Webmail on Debian 9

Using a Different System? RainLoop is a simple, modern and fast web-based email client. RainLoop source code is hosted on Github. This guide will show you ho

Configure la seguridad y el servidor de seguridad de ConfigServer (CSF) en CentOS 7

ConfigServer Security & Firewall (CSF) es un firewall de inspección de paquetes con estado (SPI), detección de inicio de sesión / intrusión y aplicación de seguridad para servidores Linux

Soluciones de monitoreo para su VPS

En este artículo, aprenderá sobre una selección de las soluciones de monitoreo disponibles para su servidor Vultr. Dependiendo de su elección de sistema operativo, hay

How to Install Sylius eCommerce Platform on CentOS 7

Using a Different System? Sylius is a modern e-commerce platform for PHP, based on the Symfony Framework. Sylius source code is hosted on GitHub. This guid

Older Posts >