/ apache

Como instalar la plataforma de blogging Ghost parte 2

En el anterior tutorial, te enseñe lo básico sobre la instalación de Ghost. Ahora, si te gusta lo que probaste, y te emociona lo suficiente como para dejar Wordpress atrás y mudarte, esto es lo que necesitas saber para poner tu blog online.

Primero un repaso sobre cosas que debes saber antes de seguir adelante.

  • Ghost esta escrito en Node.js, y por lo tanto, corre su propio servidor web. Asi como lo lees, Node.js no usa un servidor web para funcionar, sino que al crear tu aplicación estas creando tu propio servidor web, el cual proveerá a las peticiones que se realizen.

Por lo tanto, Ghost NO CORRE DIRECTAMENTE SOBRE APACHE. Esto no significa que no puedas utilizar los dos servicios juntos, ya explicaremos mejor eso más adelante.

  • Si tu servicio de hosting no provee soporte para Node.js, deberás tener tu propio VPS (servidor privado virtual) o servidor fisico que si posea soporte para este.

Como en mi caso, el hosting que por lo general uso utiliza el stack LAMP, me vi obligado a instalarlo sobre un servidor aparte.

Dicho esto pongamos manos a la obra.

Lo primero que debes de hacer es instalar Node.js y Ghost propiamente dicho en tu servidor. Para este caso, asumo que estas corriendo esto en un VPS o en un servidor físico conectado publicamente a Internet.

Una vez hayas terminado de realizar lo explicado en la primera parte de este tutorial, podemos avanzar a configurar nuestro reluciente blog.

Aquí pueden pasar dos cosas:

  • Que utilices tu servidor unicamente para correr Ghost.
  • Que además corras otro servidor web, como Apache o nginx.

Si tu caso es el primero, simplemente cambias el puerto sobre el que escuchará tu servidor Node.js al 80. Esto lo haces modificando los parametros port en el archivo config.js dentro de la carpeta raíz de Ghost.

Si tu caso es el segundo, lo tienes un poco mas complicado.

Configurando tu Apache web server!

Lo que debes saber es que si puedes correr Node.js en conjunción con Apache, y mas importante aún, existe un modo de poder ver tus sitios hechos con Node.js desde Apache webserver!. Esto lo hacemos utilizando el mod_proxy de Apache.

Como funciona esto? Basicamente, corremos el sitio Node.js desde otro puerto diferente al puerto 80 (en el caso de Ghost, este puerto es el 2368), y por medio del mod_proxy de Apache, hacemos que este redirija de forma transparente nuestro sitio a través de un Virtualhost de Apache.

Ok, pero como haces eso?. Es bastante simple en realidad. Lo primero que necesitas es tener configurado tu nombre de dominio dentro del archivo /etc/hosts. Haces esto añadiendo una linea en dicho archivo con el sigiente formato:

direcciónIPdeTuServidor	nombreDeDominio

Un ejemplo sería por ej:

192.188.65.35	pepitoperez.com

Una vez hecho esto, podemos crear nuestro nuevo Virtualhost. Primero que nada nos aseguramos de activar el mod_proxy de Apache:

$ sudo a2enmod proxy_http

luego reiniciamos el servidor Apache:

$ sudo service apache restart

Ahora que tenemos habilitado el mod_proxy, creamos un archivo para la configuración del Virtualhost de nuestro sitio en el directorio /etc/apache2/sites-available/.

$ sudo nano /etc/apache2/sites-available/pepitoperez

y dentro de este archivo

NameVirtualHost pepitoperez.com:80
<VirtualHost pepitoperez.com:80>
     ServerName pepitoperez.com
     ProxyPreserveHost on
     ProxyPass / http://[direcciónIP]:2368/
 </VirtualHost>

Recuerda que debes de usar el mismo puerto y url en tu archivo config.js.

Guardas el archivo y ejecutas el siguiente comando en tu terminal:

$ sudo a2ensite pepitoperez

Por ultimo, reinicias el servidor Apache. Con esto ya deberías de poder ver tu blog online si estas corriendo ambos servicios, tanto Apache como Ghost.

Para poder ejecutar tu blog en background, y que siga ejecutandose una vez cerrada la conexión con tu servidor, puedes usar el programa screen. Lo instalas y lo utilizas de la siguiente manera: Desde el directorio raiz de Ghost:

$ screen npm start --production

y una vez ejecutandose:

Ctrl+D y luego Ctrl+A

Por ultimo, para terminar finalmente nuestra configuración...

Configurar el envio de emails utilizando tu correo Gmail.

Asumo que cuentas con un correo Gmail. Tambien puedes utilizar esta configuración cambiando los parametros de servidor. En el archivo config.js, donde dice

mail: {},

lo modificamos por

mail: {
    service: "Gmail",
    fromaddress: 'direccionDeEmail',
    transport: 'SMTP',
    options: {
        host: "smtp.gmail.com",
        secureConnection: true,
        port: 465,
        auth: {
            user: 'direccionDeEmail',
            pass: 'contraseña'
         }
    }
},

Esto lo encuentras en la sección production del archivo.

Y con esto tenemos listo y online nuestro blog Ghost.