Cómo instalar la plataforma de bloggin Ghost en CentOS Linux
En este artículo vamos a mostrar cómo instalar la plataforma de blogs Ghost en CentOS 6.4 Linux.
Ghost es una plataforma de blogs minimalista de código abierto que fue lanzada recientemente. Es muy sencillo crear contenido y está escrito en NodeJS.
Los siguientes pasos suponen que estás trabajando directamente en el servidor CentOS, están instaladas las development tools y has corrido todas sus actualizaciones.
Este tutorial requiere de paquetes RPM adicionales. Antes de continuar, por favor activa primero el repositorio EPEL:
CentOS 6 "“ 32-bit
# rpm -Uvh http://mirror.overthewire.com.au/pub/epel/6/i386/epel-release-6-8.noarch.rpm
CentOS 6 "“ 64-bit
# rpm -Uvh http://download.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
Después de ejecutar los comandos anteriores para tu versión correspondiente de CentOS, se crea el siguiente archivo:
/etc/yum.repos.d/epel.repo
El archivo de arriba se puede editar directamente para activar o desactivar la repo EPEL.
1. Instalación de los pre requisitos para Ghost
Instala unzip, Apache, NodeJS y NPM:
# yum install unzip httpd nodejs npm
2. Crea un directorio Ghost
En este ejemplo, vamos a crearlo en /home/usuario/public_html/ghost
# mkdir /home/usuario/public_html/ghost
3. Descarga y descomprime Ghost
Cambia al directorio de Ghost y descarga el archivo .zip del código fuente de Ghost:
# cd /home/usuario/public_html/ghost
# curl -L https://ghost.org/zip/ghost-latest.zip -o ghost.zip
# unzip -uo ghost.zip -d ghost
En este caso, hemos recuperado un enlace directo para la descarga, pero por favor asegúrate de que siempre estás usando la última versión. La última versión se puede obtener a través de tu cuenta de Ghost.
4. Usar NPM para descargar requisitos adicionales para Ghost
# npm install --production
5. Cambiar a la URL de Ghost y arranca Ghost con NPM
Renombra /ghost/config.example.js a /ghost/config.js y cambia la IP 127.0.0.1: a tu IP pública
Ahora arrancaremos Ghost con NPM. Vamos a utilizar screen para poner este proceso en segundo plano, que permanecerá vivo incluso después de cerrar la sesión (la mejor manera de hacerlo sería con un script):
# screen npm start --production
Esto permitirá iniciar Ghost en una sesión de pantalla para que se puede ejecutar en segundo plano. Sin utilizar el primer comando screen, si la sesión SSL se cerrara, tu sitio también caería. Una vez introducido este comando, se puede separar la sesión de screen manteniendo pulsada la tecla Ctrl, al pulsar A, a continuación presiona D. La pantalla se debe mostrar como desapegada para que puedas salir de Ghost ejecutándose en segundo plano.
Hacer que Ghost se ejecute para siempre
El método descrito anteriormente para iniciar Ghost es npm start. Esta es una buena manera de hacerlo en desarrollo y en pruebas locales pero si, como decía más arriba, inicias Ghost utilizando la línea de comandos se detendrá cada vez que se cierre la ventana de terminal o sesión de SSH. Para evitar que Ghost se detenga tienes que ejecutar Ghost como un servicio. Hay dos maneras de lograr esto .
Forever (https://npmjs.org/package/forever)
Puedes usar forever para ejecutar Ghost como una tarea en segundo plano. forever también se encargará de la instalación de Ghost y reiniciará el proceso de node si se bloquea.
• Para instalar forever escribe: npm install forever -g
• Para iniciar Ghost utilizando forever desde el directorio de instalación de Ghost escribe: NODE_ENV=production forever start index.js
• Para detener Ghost escribe: forever stop index.js
• Para comprobar si se está ejecutando Ghost escribe: forever list
Supervisor (http://supervisord.org/)
Distribuciones de Linux más populares, tales como Fedora, Debian y Ubuntu, mantienen un paquete para Supervisor: Un sistema de control de proceso que permite ejecutar Ghost en el arranque sin necesidad de utilizar scripts de inicio. A diferencia de un script de inicio, Supervisor es portátil entre las distribuciones y versiones de Linux.
• Instala Supervisor según sea necesario para tu distribución Linux. Por lo general, esto será:
â—¦ Debian/Ubuntu: apt-get install supervisor
â—¦ Fedora/CentOS: yum install supervisor
â—¦ La mayoría de las otras distribuciones: easy_install supervisor
• Asegúrate de que Supervisor está en marcha mediante la ejecución de: service supervisor start
• Crea el script de inicio para la instalación de Ghost. Normalmente, esto irá en /etc/supervisor/conf.d/ghost.conf Por ejemplo :
[program:ghost]
command = node /path/to/ghost/index.js
directory = /path/to/ghost
user = ghost
autostart = true
autorestart = true
stdout_logfile = /var/log/supervisor/ghost.log
stderr_logfile = /var/log/supervisor/ghost_err.log
environment = NODE_ENV="production"
• Inicia Ghost utilizando: supervisorctl start ghost
• Para detener Ghost: supervisorctl stop ghost
Puedes ver la documentación de Supervisor para más información.
Ghost ahora debe estar en ejecución en 127.0.0.1:2368 (o la IP que hayamos puesto en el archivo /ghost/config.js - en mi caso 46.105.123.120)
Para que Ghost corra en un dominio lo veremos en otra ocasión.
Mi archivo config.js completo es el siguiente:
// # Ghost Configuration
// Setup your Ghost install for various environments
var path = require('path'),
config;
config = {
// ### Development **(default)**
development: {
// The url to use when providing links to the site, E.g. in RSS and email.
url: 'http://my-ebook.es/ghost',
// Example mail config
// Visit http://docs.ghost.org/mail for instructions
// ```
// mail: {
// transport: 'SMTP',
// options: {
// service: 'Mailgun',
// auth: {
// user: '', // mailgun username
// pass: '' // mailgun password
// }
// }
// },
// ```
database: {
client: 'sqlite3',
connection: {
filename: path.join(__dirname, '/content/data/ghost-dev.db')
},
debug: false
},
server: {
// Host to be passed to node's `net.Server#listen()`
host: '46.105.123.120',
// Port to be passed to node's `net.Server#listen()`, for iisnode set this to `process.env.PORT`
port: '2368'
}
},
// ### Production
// When running Ghost in the wild, use the production environment
// Configure your URL and mail settings here
production: {
url: 'http://my-ebook.es/ghost',
mail: {},
database: {
client: 'sqlite3',
connection: {
filename: path.join(__dirname, '/content/data/ghost.db')
},
debug: false
},
server: {
// Host to be passed to node's `net.Server#listen()`
host: '46.105.123.120',
// Port to be passed to node's `net.Server#listen()`, for iisnode set this to `process.env.PORT`
port: '2368'
}
},
// **Developers only need to edit below here**
// ### Testing
// Used when developing Ghost to run tests and check the health of Ghost
// Uses a different port number
testing: {
url: 'http://my-ebook.es/ghost:2369',
database: {
client: 'sqlite3',
connection: {
filename: path.join(__dirname, '/content/data/ghost-test.db')
}
},
server: {
host: '46.105.123.120',
port: '2369'
}
},
// ### Travis
// Automated testing run through Github
travis: {
url: 'http://my-ebook.es/ghost:2368',
database: {
client: 'sqlite3',
connection: {
filename: path.join(__dirname, '/content/data/ghost-travis.db')
}
},
server: {
host: '46.105.123.120',
port: '2368'
}
}
};
// Export config
module.exports = config;
Ve a la IP que hayas configurado y deberías ver Ghost (si no has configurado los DNS, utiliza tu archivo hosts para probar!).
Ahora deberías ser capaz de ver la instancia Ghost corriendo desde la dirección IP de tu servidor (ver la imagen de más arriba). Para empezar, simplemente ve a:
http://XXXXX:2368/admin
o
http://XXXXX:2368/ghost
Donde XXXXX es la dirección IP pública y 2368 el puerto en que escucha Ghost.
Se te pedirá configurar una cuenta de administrador para que puedas iniciar el blog de inmediato.
La pantalla de arriba cambiará una vez quieras iniciar una nueva sesión:
El primer post de bienvenida se puede ver aquí: http://46.105.123.120:2368/welcome-to-ghost/
La página principal del blog de Ghost se llama Ghost apañados
Como vemos en todas las pantallas nos aparece un mensaje en azul:
Ghost is attempting to use your server's sendmail to send e-mail. It is recommended that you explicitly configure an e-mail service, See http://docs.ghost.org/mail for instructions
que nos indica que debemos configurar el servicio de email para Ghost, pero esto en el próximo artículo.
Para obtener más información acerca de Ghost, y cómo utilizar Ghost, consulta el sitio oficial.
Puedes encontrar las instrucciones de instalación completas para todos los sistemas operativos en http://docs.ghost.org/installation/ .
Nota rápida: Aunque este tutorial está para ayudar en la instalación de Ghost en CentOS, no podemos ofrecer el desarrollo o la configuración del soporte. Si tienes alguna pregunta acerca de Ghost, recomendamos los foros de Ghost.