Instalar Ghost en un hosting Cloud Web

Cómo instalar un blog basado en la plataforma Ghost en un hosting Cloud Web

Esta traducción ha sido generada de forma automática por nuestro partner SYSTRAN. En algunos casos puede contener términos imprecisos, como en las etiquetas de los botones o los detalles técnicos. En caso de duda, le recomendamos que consulte la versión inglesa o francesa de la guía. Si quiere ayudarnos a mejorar esta traducción, por favor, utilice el botón «Contribuir» de esta página.

Última actualización: 04/05/2022

Introducción

Ghost es un gestor de contenidos open source destinado a blogueros o periodistas que simplifica el proceso de publicación en internet. El programa está escrito en JavaScript y utiliza Node.js, un entorno de ejecución que permite crear sitios web y API en JavaScript del lado del servidor.

En el hosting Cloud Web de OVHcloud, es posible elegir Node.js como motor de ejecución de sitios web y, por lo tanto, permite instalar y alojar Ghost o cualquier otra aplicación diseñada para Node.js.

Este tutorial explica cómo instalar un blog con Ghost en un hosting Cloud Web de OVHcloud y cómo publicarlo para que se pueda acceder a él a través de un dominio.

Requisitos

  • Tener contratado un plan de hosting Cloud Web de OVHcloud.
  • Haber activado Node.js como motor de ejecución.
  • Haber añadido el dominio correspondiente como multisitio y haber establecido Node.js como motor de ejecución.
  • Estar conectado al área de cliente de OVHcloud, en la sección Web Cloud.
  • Conocimientos necesarios:
    • Estar familiarizado con el ecosistema Node.js.
    • Conectarse por SSH.
    • Editar un archivo en línea de comandos con Vim, Emacs o Nano, por ejemplo.

Procedimiento

1. Activar el motor de ejecución Node.js

Para ver los motores de ejecución de su hosting Cloud Web, conéctese al área de cliente de OVHcloud, haga clic en Alojamientos en la columna izquierda y seleccione el alojamiento Cloud Web correspondiente. A continuación, abra la pestaña Motores de ejecución.

Se mostrará una tabla con los motores de ejecución que haya añadido hasta ese momento. Asegúrese de que el motor de ejecución Node.js esté activado. Si lo está, vaya al apartado 2. Asociar Node.js a un multisitio.

ghostcloudweb

De lo contrario, añada un nuevo motor de ejecución (si su plan lo permite) o modifique el motor existente.

  • Si quiere añadir un motor de ejecución, haga clic en el botón Acciones situado sobre la tabla y seleccione Añadir un motor de ejecución.
  • Si quiere modificar un motor de ejecución, haga clic en el botón ··· situado al final de la línea correspondiente al motor y seleccione Editar.

En la nueva ventana, cumplimente los campos con los valores que indicamos a continuación o adaptados a su caso particular.

Elemento Valor que debe introducir
Nombre personalizado NodeJS 8
Motor de ejecución nodejs-8
Ruta de acceso al directorio público public
Entorno de la aplicación production
Script de ejecución de la aplicación server.js

Una vez que haya introducido toda la información, haga clic en Aceptar. Para más información sobre los motores de ejecución, consulte nuestra guía Gestionar los motores de ejecución en un hosting Cloud Web.

ghostcloudweb

2. Asociar Node.js a un multisitio

Ahora que Node.js está activado como motor de ejecución, ya puede asociarlo a un multisitio. Para ello, abra la pestaña Multisitio. Se mostrará una tabla que contiene todos los dominios añadidos como multisitio.

ghostcloudweb

Preste especial atención a las columnas de la tabla que indican la carpeta raíz y el motor de ejecución, y compruebe que, para el dominio en cuestión, la carpeta sea la correcta y el motor de ejecución sea Node.js. Si necesita ayuda, a continuación explicamos estos valores en mayor profundidad. Si todo es correcto, vaya directamente al apartado 3. Crear una base de datos MySQL.

Columna Descripción
Carpeta raíz Es la carpeta que contendrá el código fuente del dominio (corresponde al DocumentRoot). En nuestro ejemplo, vamos a indicar «ghost». Por lo tanto, esa será la carpeta en la que deberemos colocar el código fuente Node.js.
Motor de ejecución Se trata del motor de ejecución asociado al dominio. El nombre que aparece corresponde al «Nombre personalizado» que haya indicado al crear el motor de ejecución. En nuestro ejemplo, es «NodeJS 8».

Si los datos que figuran en la tabla no son correctos, añada un nuevo multisitio o modifique el existente.

  • Si quiere añadir un multisitio, haga clic en el botón Añadir un dominio o subdominio situado a la derecha de la tabla.
  • Si quiere editar el multisitio, haga clic en el icono con forma de rueda dentada situado al final de la línea correspondiente al dominio y seleccione Editar.

En la nueva ventana, cumplimente los campos según su caso particular. La siguiente tabla muestra los valores utilizados en este tutorial:

Elemento Valor utilizado en este tutorial
Dominio ghost.demo-nodejs.ovh
Carpeta raíz ghost
Motor de ejecución NodeJS 8

Active las opciones que desee. Una vez que haya introducido toda la información, haga clic en Siguiente y acepte. El dominio puede tardar un máximo de una hora en añadirse. Sin embargo, la modificación de la configuración DNS puede tardar hasta 24 horas en ser efectiva. Para más información sobre la gestión de multisitios, consulte nuestra guía Alojar varios sitios web en un mismo hosting.

ghostcloudweb

3. Crear una base de datos MySQL

Abra la pestaña Bases de datos (si no puede verla, haga clic en el botón con tres rayas). La tabla muestra las bases de datos creadas en su alojamiento hasta ese momento. Existen dos formas de crear una nueva base de datos:

  • Si todavía no ha creado ninguna base de datos, haga clic en el botón Crear una base de datos.
  • Si ya ha creado alguna base de datos, haga clic en el botón Acciones situado sobre la tabla y seleccione Crear una base de datos.

ghostcloudweb

En la nueva ventana, solo está disponible la versión 5.6 del MySQL.. A continuación, seleccione «Almacenada en la instancia Cloud Web» y haga clic en Siguiente.

Indique un nombre de usuario y una contraseña. Haga clic en Siguiente y confirme haciendo clic en Aceptar. La base de datos tardará unos minutos en crearse.

ghostcloudweb

4. Crear las variables de entorno

Aunque no es obligatorio crear variables de entorno, sí es altamente recomendable.

En este tutorial vamos a crear variables de entorno para los datos de conexión a nuestra base de datos MySQL. De este modo, si esos datos cambian (por ejemplo, si cambia la contraseña), solo tendrá que modificar el valor de la variable desde el área de cliente, sin necesidad de editar el código fuente.

Para ello, abra la pestaña Variables de entorno. La tabla muestra las variables que haya creado hasta ese momento. Para añadir una nueva, haga clic en el botón Acciones situado sobre la tabla y seleccione Añadir una variable de entorno.

ghostcloudweb

En la nueva ventana, introduzca la información solicitada en función de su caso particular y, a continuación, haga clic en el botón Aceptar para crear la variable. Estas son las variables que hemos creado en este tutorial:

Nombre Tipo de variable Valor
database__connection__host string Dirección del servidor MySQL
database__connection__user string Nombre de usuario MySQL indicado al crear la base de datos
database__connection__database string Nombre de la base de datos MySQL
database__connection__password password Contraseña MySQL indicada al crear la base de datos
database__client string mysql
server__port integer 80
server__host string 0.0.0.0

5. Conectarse al hosting Cloud Web por SSH

Para conectarse al hosting Cloud Web, necesitará los datos de conexión. Para obtenerlos, abra la pestaña FTP - SSH (si no puede verla, haga clic en el botón con tres rayas). Se mostrará la información relativa a su espacio de almacenamiento. Consulte los siguientes elementos:

Elemento Descripción
Acceso SSH al cluster Este enlace le permite conocer dos datos:
- la dirección del servidor: empieza después de la doble barra (//) y termina antes de los dos puntos (:);
- el puerto de conexión: número que aparece tras los dos puntos (:).

Por ejemplo, en ssh://sshcloud.cluster024.hosting.ovh.net:12345/, «sshcloud.cluster024.hosting.ovh.net» sería la dirección y «12345», el puerto de conexión.
Usuario SSH principal Usuario SSH principal creado en el alojamiento.

Si ha olvidado la contraseña del usuario SSH, haga clic en el botón ··· situado al final de la línea correspondiente y seleccione Cambiar la contraseña.

ghostcloudweb

Para conectarse por SSH, es necesario tener un terminal. En MacOS y Linux, esta herramienta está instalada por defecto. Si tiene Windows, deberá instalar un programa como PuTTY o añadir la funcionalidad OpenSSH. Esta operación depende del sistema operativo que utilice, por lo que no podemos detallar todos los casos en este tutorial.

No obstante, a continuación ofrecemos un ejemplo de comando que puede utilizar (no olvide sustituir «sshlogin», «sshserver» y «connectionport» por el valor correspondiente). Después de ejecutar el comando, el sistema le pedirá que introduzca la contraseña del usuario SSH.

ssh sshlogin@sshserver -p connectionport

Una vez que se haya conectado, puede comprobar que aparezcan las variables de entorno anteriormente creadas. Si ha seguido nuestro tutorial, encontrará:

demonon@cloudweb-ssh:~ $ env | grep "database_"
database__client=mysql
database__connection__host=demononghost.mysql.db
database__connection__user=demononghost
database__connection__password=ZuperZecure123
database__connection__database=demononghost

6. Instalar Ghost

En primer lugar, sitúese en la carpeta raíz que haya indicado en el apartado 2 de este tutorial. En nuestro caso, se trata del directorio «ghost».

demonon@cloudweb-ssh:~ $ ls -l
drwxr-xr-x 3 demonon demonon 4 Mar  6 16:53 ghost
drwx---r-x 3 demonon demonon 5 Mar  6 16:48 www
demonon@cloudweb-ssh:~ $ cd ghost/
demonon@cloudweb-ssh:~/ghost $

Descargue la última versión de Ghost y descomprima el contenido.

demonon@cloudweb-ssh:~/ghost $ ls
public  server.js
demonon@cloudweb-ssh:~/ghost $ curl -s -LO https://github.com/TryGhost/Ghost/releases/download/2.16.4/Ghost-2.16.4.zip
demonon@cloudweb-ssh:~/ghost $ unzip Ghost-2.16.4.zip
Archive:  Ghost-2.16.4.zip
   creating: content/
   creating: content/adapters/
  inflating: content/adapters/README.md 
   creating: content/apps/
  inflating: content/apps/README.md 
  ....
demonon@cloudweb-ssh:~/ghost $ rm Ghost-2.16.4.zip
demonon@cloudweb-ssh:~/ghost $ ls
Gruntfile.js  LICENSE  MigratorConfig.js  PRIVACY.md  README.md  content  core  index.js  package.json  public  server.js  yarn.lock

Ghost utiliza Yarn, una alternativa a npm, para gestionar las dependencias de Node.js. Instale Yarn a través de npm y añada estos binarios a su PATH:

demonon@cloudweb-ssh:~/ghost $ npm-node8 install yarn
npm notice created a lockfile as package-lock.json. You should commit this file.
+ yarn@1.13.0
added 1 package and audited 1 package in 2.893s
found 0 vulnerabilities

demonon@cloudweb-ssh:~/ghost $ export PATH=$PATH:/usr/local/nodejs8/bin/:~/ghost/node_modules/.bin/
demonon@cloudweb-ssh:~/ghost $ node --version
v8.15.0
demonon@cloudweb-ssh:~/ghost $ yarn --version
1.13.0

Puede hacer que los cambios en su PATH sean persistentes añadiendo la exportación al archivo ~/.profile:

demonon@cloudweb-ssh:~ $ echo "export PATH=$PATH:/usr/local/nodejs8/bin/:~/ghost/node_modules/.bin/" >> ~/.profile

A continuación, instale las dependencias de Ghost utilizando Yarn:

demonon@cloudweb-ssh:~/ghost $ yarn install
yarn install v1.13.0
[1/5] Validating package.json...
[2/5] Resolving packages...
[3/5] Fetching packages...
[4/5] Linking dependencies...
[5/5] Building fresh packages...
success Saved lockfile.
Done in 269.89s.

Estando situado en el directorio ~/ghost, cree un archivo config.production.json que contendrá la configuración de Ghost:

{
    "url": "http://ghost.demo-nodejs.ovh",
    "paths": {
        "contentPath": "content/"
    }
}

A continuación, haga que el archivo server.js (indicado en el apartado 1 de este tutorial) apunte hacia el archivo index.js de Ghost:

demonon@cloudweb-ssh:~/ghost $ unlink  server.js
demonon@cloudweb-ssh:~/ghost $ ln -s index.js server.js

Ya hemos terminado de instalar y configurar Ghost. Solo queda reiniciar el demonio Node.js para que se apliquen los cambios realizados en el archivo ~/ghost.

7. Reiniciar el demonio Node.js

Para reiniciar el demonio Node.js, vuelva al área de cliente de OVHcloud. Abra la pestaña Multisitio, haga clic en el botón ... situado al final de la línea correspondiente al dominio y seleccione Reiniciar.

A continuación, la aplicación estará accesible desde el dominio indicado en la configuración del multisitio.

ghostcloudweb

8. Utilizar HTTPS

Para que su sitio web sea más seguro, puede configurar una redirección HTTP hacia HTTPS. Para ello, estando situado en el directorio ghost, cree un archivo .htaccess con el siguiente contenido:

RewriteCond %{ENV:HTTPS} !on
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

Conclusiones

En este tutorial hemos explicado cómo instalar una aplicación Node.js en un hosting Cloud Web. ¡Ya puede empezar a utilizar Ghost y publicar en él sus primeros contenidos!

Más información

Migrar un sitio web y el correo a OVHcloud

Publicar un sitio web en internet

Instalar un sitio web con un módulo en un clic

Alojar varios sitios web en un mismo hosting

Interactúe con nuestra comunidad de usuarios en https://community.ovh.com/en/.


¿Le ha resultado útil esta guía?

Si lo desea, también puede enviarnos sus sugerencias para ayudarnos a mejorar nuestra documentación.

Imágenes, contenido, estructura...: ayúdenos a mejorar nuestra documentación con sus sugerencias.

No podemos tratar sus solicitudes de asistencia a través de este formulario. Para ello, haga clic en "Crear un tíquet" .

¡Gracias! Tendremos en cuenta su opinión.

OVHcloud Community

¡Acceda al espacio de la OVHcloud Community! Resuelva sus dudas, busque información, publique contenido e interactúe con otros miembros de la comunidad.

Discuss with the OVHcloud community

A partir del 1 de enero de 2015, con arreglo a la Directiva 2006/112/CE modificada, los precios IVA incluido pueden variar según el país de residencia del cliente (por defecto, los precios con IVA incluyen el IVA español vigente).