Cómo instalar MODX Revolution en un CentOS 7 LAMP VPS
¿Usando un sistema diferente? MODX Revolution es un sistema de gestión de contenido (CMS) de nivel empresarial rápido, flexible, escalable, gratuito y de código abierto escrito i
Ghost es una plataforma de blogs de código abierto que ha ganado popularidad entre los desarrolladores y usuarios comunes desde su lanzamiento en 2013. Se centra en el contenido y los blogs. Lo más atractivo de Ghost es su diseño simple, limpio y receptivo. Puede escribir sus publicaciones de blog desde un teléfono móvil. El contenido para Ghost está escrito usando el lenguaje Markdown. Ghost es perfecto para individuos o pequeños grupos de escritores.
En esta guía vamos a configurar e implementar un blog seguro Ghost v0.11.x LTS en un CentOS 7.3 VPS usando Let's Encrypt , Certbot , Node.js , NPM , NGINX y MySQL .
Verifique la versión de CentOS:
cat /etc/centos-release
# CentOS Linux release 7.3.1611 (Core)
Cree un nuevo usuario no root :
useradd -c "John Doe" johndoe && passwd johndoe
Conviértalo en superusuario agregándolo al wheel
grupo:
usermod -aG wheel johndoe
Cambiar a nuevo usuario:
su - johndoe
Actualice el software de su sistema operativo:
sudo yum check-update || sudo yum update -y
Configure la zona horaria:
timedatectl list-timezones
sudo timedatectl set-timezone 'Region/City'
Instalar herramientas de desarrollo:
sudo yum groupinstall -y 'Development Tools'
Instale el editor de texto Vim:
sudo yum install -y vim
Reinicie el sistema si es necesario:
sudo shutdown -r now
NOTA : Antes de comenzar este paso, asegúrese de haber establecido registros DNS para su dominio.
Vamos a utilizar Let's Encrypt CA y el cliente Certbot de EFF para obtener el certificado SSL / TLS para nuestro blog Ghost. No olvide reemplazar todas las instancias de blog.domain.tld
con su nombre de dominio.
Habilite el repositorio de Paquetes adicionales para Enterprise Linux (EPEL):
# Certbot is packaged in Extra Packages for Enterprise Linux (EPEL) repository. To use Certbot, you must first enable the EPEL repository.
sudo yum install -y epel-release
Instale el software de administración de certificados Certbot (anteriormente cliente Let's Encrypt ) hecho con Python:
sudo yum install -y certbot
Verifique la versión de Certbot:
certbot --version
# certbot 0.14.1
Obtenga el certificado RSA utilizando el método de autenticación independiente (complemento):
sudo certbot certonly --standalone --domains blog.domain.tld --rsa-key-size 2048 --must-staple --email [email protected] --no-eff-email --agree-tos
# IMPORTANT NOTES:
# - Congratulations! Your certificate and chain have been saved at
/etc/letsencrypt/live/blog.domain.tld/fullchain.pem.
# Your cert will expire on YYYY-MM-DD. . . .
# . . .
Después de seguir los pasos anteriores, su certificado y clave privada estarán en el /etc/letsencrypt/live/blog.domain.tld
directorio.
NOTA : Ghost actualmente solo admite las versiones Node.js 4.5+ y 6.9+.
Ghost está construido sobre Node.js. Vamos a instalar la versión recomendada para Ghost que se encuentra v6 Boron LTS
al momento de escribir esto.
Descargue e instale Node.js v6 LTS:
sudo curl --silent --location https://rpm.nodesource.com/setup_6.x | sudo bash -
sudo yum install -y nodejs
Verifique las versiones Node.js y NPM:
node -v && npm -v
# v6.11.2
# 3.10.10
De forma predeterminada, Ghost viene configurado para usar una base de datos SQLite, que no requiere configuración.
Alternativamente, Ghost también se puede usar con una base de datos MySQL cambiando la configuración de la base de datos. Primero debe crear una base de datos y un usuario, luego puede cambiar la configuración de sqlite3 existente.
Descargue e instale la última versión de MySQL (actualmente 5.7 ) del repositorio oficial de MySQL Yum:
cd /tmp
# Adding the MySQL Yum Repository
wget https://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpm
sudo yum localinstall -y mysql57-community-release-el7-11.noarch.rpm
# Installing MySQL
sudo yum install -y mysql-community-server
Verifique la versión de MySQL:
mysql --version
# mysql Ver 14.14 Distrib 5.7.19, for Linux (x86_64) using EditLine wrapper
Inicie MySQL Server y verifique su estado:
sudo systemctl start mysqld.service
sudo systemctl status mysqld.service
MySQL versión 5.7 o superior genera una contraseña aleatoria temporal para el root
usuario de MySQL después de la instalación y la contraseña se almacena en el archivo de registro de errores de MySQL, ubicado en /var/log/mysqld.log
. Para revelarlo, use el siguiente comando:
sudo grep 'temporary password' /var/log/mysqld.log
Ejecute el mysql_secure_installation
script para asegurar un poco su base de datos:
NOTA : El complemento de validación de contraseña está instalado y habilitado, por lo que su nueva contraseña para el
root
usuario debe ser segura ( una letra mayúscula, una letra minúscula, un dígito y un carácter especial, y que la longitud total de la contraseña sea de al menos 8 caracteres) ) Si desea relajar eso o deshabilitar el complemento por completo ( no recomendado ), consulte la documentación oficial de MySQL para saber cómo hacerlo.
sudo mysql_secure_installation
Inicie sesión en MySQL como usuario root:
mysql -u root -p
# Enter password:
Cree una nueva base de datos MySQL y usuario:
create database dbname;
grant all on dbname.* to 'user' identified by 'password';
Salga de MySQL:
exit
Descargue e instale la última versión principal de NGINX del repositorio oficial de NGINX:
# Add the NGINX Yum Repository
sudo vim /etc/yum.repos.d/nginx_mainline.repo
# Copy/paste the following into /etc/yum.repos.d/nginx_mainline.repo
[nginx]
name=nginx repo
baseurl=https://nginx.org/packages/mainline/centos/7/$basearch/
gpgcheck=1
enabled=1
wget https://nginx.org/keys/nginx_signing.key
sudo rpm --import nginx_signing.key
rm nginx_signing.key
sudo yum install -y nginx nginx-module-geoip nginx-module-image-filter nginx-module-njs nginx-module-perl nginx-module-xslt nginx-nr-agent
Verifique que esté instalado comprobando la versión de NGINX:
sudo nginx -v
# nginx version: nginx/1.13.3
Verifique el estado, habilite e inicie el servicio NGINX (daemon):
sudo systemctl status nginx.service # inactive (dead)
sudo systemctl enable nginx.service
sudo systemctl start nginx.service
Cree un /etc/nginx/ssl
directorio y genere nuevos parámetros de Diffie-Hellman ( DH ):
sudo mkdir -p /etc/nginx/ssl
sudo openssl dhparam -out /etc/nginx/ssl/dhparams-2048.pem 2048
Crear directorio de registro para blog.domain.tld
host virtual:
sudo mkdir -p /var/log/nginx/blog.domain.tld
Configure NGINX como un servidor proxy inverso HTTP ( S ):
sudo vim /etc/nginx/conf.d/ghost.conf
Pegue lo siguiente en /etc/nginx/conf.d/ghost.conf
:
# domain: blog.domain.tld
# public: /var/www/ghost
upstream ghost_app {
server 127.0.0.1:2368;
keepalive 32;
}
server {
listen [::]:80 default_server;
listen 80 default_server;
listen [::]:443 ssl http2 default_server;
listen 443 ssl http2 default_server;
server_name blog.domain.tld;
root /var/www/ghost;
error_log /var/log/nginx/blog.domain.tld/error.log;
access_log /var/log/nginx/blog.domain.tld/access.log;
client_max_body_size 100M;
ssl_certificate /etc/letsencrypt/live/blog.domain.tld/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/blog.domain.tld/privkey.pem;
ssl_dhparam ssl/dhparams-2048.pem;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2 TLSv1.3;
ssl_ciphers 'ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA:ECDHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA256:DHE-RSA-AES256-SHA:ECDHE-ECDSA-DES-CBC3-SHA:ECDHE-RSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:DES-CBC3-SHA:!DSS';
ssl_prefer_server_ciphers on;
ssl_buffer_size 4K;
ssl_session_timeout 1d;
ssl_session_cache shared:SSL:50M;
ssl_session_tickets off;
ssl_stapling on;
ssl_stapling_verify on;
ssl_trusted_certificate /etc/letsencrypt/live/blog.domain.tld/chain.pem;
resolver 8.8.8.8 8.8.4.4 valid=300s;
location / {
proxy_pass http://ghost_app;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_hide_header X-Powered-By;
proxy_http_version 1.1;
proxy_set_header Connection "";
}
}
Guarde y pruebe la configuración de NGINX para errores de sintaxis:
sudo nginx -t
Recargue la configuración de NGINX:
sudo systemctl reload nginx.service
NOTA : Si desea alojar varios blogs de Ghost en el mismo VPS, cada instancia de Ghost debe ejecutarse en un puerto separado.
Crear directorio raíz de documentos:
sudo mkdir -p /var/www/
Crea un nuevo usuario fantasma:
sudo useradd -c 'Ghost application' ghost
Descargar Ghost:
curl -L https://github.com/TryGhost/Ghost/releases/download/0.11.11/Ghost-0.11.11.zip -o ghost.zip
Descomprima Ghost en el /var/www/ghost
directorio (ubicación de instalación recomendada):
sudo unzip -uo ghost.zip -d /var/www/ghost
rm ghost.zip
Mover al nuevo directorio fantasma:
cd /var/www/ghost
Cambiar la propiedad del /var/www/ghost
directorio:
sudo chown -R ghost:ghost .
Cambiar a nuevo ghost
usuario:
sudo su - ghost
Navegue a la raíz del documento /var/www/ghost
:
cd /var/www/ghost
Instale Ghost solo con dependencias de producción. Cuando esto se completa, se instala Ghost:
npm install --production
Santo Configurar cambiando url
, mail
y database
la propiedad de la producción de objetos en el interior del config.js
archivo:
cp config.example.js config.js
vim /var/www/ghost/config.js
var path = require('path'),
config;
config = {
// ### Production
// When running Ghost in the wild, use the production environment.
// Configure your URL and mail settings here
production: {
url: 'https://blog.domain.tld',
mail: {
transport: 'SMTP',
options: {
service: 'Mailgun',
auth: {
user: '',
pass: ''
}
}
},
database: {
client: 'mysql',
connection: {
host: '127.0.0.1',
user: 'your_database_user',
password: 'your_database_password',
database: 'your_database_name',
charset: 'utf8'
},
debug: false
},
// . . .
// . . .
NOTA : también debe configurar los
Iniciar Ghost en entorno de producción:
npm start --production
Ghost ahora estará corriendo. Tanto la interfaz de usuario como la interfaz de administración del blog están protegidas con HTTPS y HTTP / 2 también funciona. Puede abrir su navegador y visitar el sitio en https://blog.domain.tld
. No olvide reemplazar blog.domain.tld
con su nombre de dominio.
Cierre el proceso de Ghost presionando CTRL
+ C
y salga del usuario fantasma de nuevo al usuario no root que haya creado al principio:
exit
Si cierra su sesión de terminal con su VPS, su blog también se cerrará. Eso no es bueno. Para evitar esto, vamos a usar systemd. Mantendrá nuestro blog activo las 24 horas, los 7 días de la semana.
Crear ghost.service
archivo de unidad systemd. Ejecute sudo sudo vim /etc/systemd/system/ghost.service
y copie / pegue el siguiente contenido:
[Unit]
Description=Ghost - the professional publishing platform
Documentation=https://docs.ghost.org/v0.11.11/docs
After=network.target
[Service]
Type=simple
# Edit WorkingDirectory, User and Group as needed
WorkingDirectory=/var/www/ghost
User=ghost
Group=ghost
ExecStart=/bin/npm start --production
ExecStop=/bin/npm stop --production
Restart=always
SyslogIdentifier=Ghost
[Install]
WantedBy=multi-user.target
Habilitar y comenzar ghost.service
:
sudo systemctl enable ghost.service && sudo systemctl start ghost.service
Verificar ghost.service
estado:
sudo systemctl status ghost.service && sudo systemctl is-enabled ghost.service
Navega https://blog.domain.tld/ghost/
y crea un usuario administrador de Ghost. ¡Haz esto tan pronto como sea posible!
Eso es. Ahora tenemos un blog de Ghost totalmente funcional. Su servidor está entregando contenido a través de HTTP / 2 cuando el cliente lo admite. Si desea cambiar el tema predeterminado de Ghost llamado Casper a uno personalizado, simplemente puede descargar y descomprimir el tema en la /var/www/ghost/content/themes
carpeta y seleccionarlo a través de la interfaz de administrador de Ghost, ubicada en https://blog.domain.tld/ghost
.
¿Usando un sistema diferente? MODX Revolution es un sistema de gestión de contenido (CMS) de nivel empresarial rápido, flexible, escalable, gratuito y de código abierto escrito i
¿Usando un sistema diferente? Ghost es una plataforma de blogs de código abierto que ha estado ganando popularidad entre los desarrolladores y usuarios comunes desde su 201
¿Usando un sistema diferente? Fork es un CMS de código abierto escrito en PHP. El código fuente de Forks está alojado en GitHub. Esta guía le mostrará cómo instalar Fork CM
Typesetter es un CMS de código abierto escrito en PHP enfocado en la facilidad de uso con la edición True WYSIWYG y el almacenamiento de archivos planos. En este artículo, estaremos instalando
¿Usando un sistema diferente? MODX Revolution es un sistema de gestión de contenido (CMS) de nivel empresarial rápido, flexible, escalable, gratuito y de código abierto escrito i
Las instancias de Vultr son una excelente manera de ejecutar su blog de WordPress, pero una extensión más notable de WordPress es WooCommerce, un complemento de comercio electrónico que extiende
Introduction The closer you keep your OpenBSD install to the default and without as many added packages, the more secure it will be. While the more commo
Introducción WordPress es el sistema de gestión de contenido dominante en Internet. Potencia todo, desde blogs hasta sitios web complejos con contenido dinámico.
Ghost es una plataforma de publicación moderna y de código abierto construida en Node.js con un cliente de administración Ember.js, una API JSON y una API de tema impulsada por Handlebars.js. Ghos
¿Usando un sistema diferente? Ghost es una plataforma de blogs de código abierto que ha estado ganando popularidad entre los desarrolladores y usuarios comunes desde su 201
Using a Different System? Dotclear is a very simple blogging engine. It is open-source and easy to use. This tutorial will go through the installation on
Un uso común de un servidor virtual Vultr es alojar sitios web de Wordpress. Esta guía le muestra cómo automatizar la configuración de un servidor virtual desde cero
Ghost es el último y más grande advenedizo para rivalizar con WordPress. El desarrollo de temas es rápido y fácil de aprender porque los desarrolladores de Ghost decidieron usar ambos
¿Usando un sistema diferente? MODX Revolution es un sistema de gestión de contenido (CMS) de nivel empresarial rápido, flexible, escalable, gratuito y de código abierto escrito i
¿Usando un sistema diferente? MODX Revolution es un sistema de gestión de contenido (CMS) de nivel empresarial rápido, flexible, escalable y de código abierto escrito en PHP. Es yo
¿Usando un sistema diferente? MODX Revolution es un sistema de gestión de contenido (CMS) de nivel empresarial rápido, flexible, escalable, gratuito y de código abierto escrito i
Neos es un innovador sistema de gestión de contenido de código abierto que es excelente para crear y editar contenido en línea. Con autores y editores en mente, Neo
¿Usando un sistema diferente? Ghost es una plataforma de blogs de código abierto que ha estado ganando popularidad entre los desarrolladores y usuarios comunes desde su 201
¿Usando un sistema diferente? Fork es un CMS de código abierto escrito en PHP. El código fuente de Forks está alojado en GitHub. Esta guía le mostrará cómo instalar Fork CM
Los ataques de ransomware van en aumento, pero ¿puede la IA ayudar a lidiar con el último virus informático? ¿Es la IA la respuesta? Lea aquí, sepa que la IA es una bendición o una perdición
ReactOS, un sistema operativo de código abierto y gratuito, está aquí con la última versión. ¿Puede satisfacer las necesidades de los usuarios de Windows de hoy en día y acabar con Microsoft? Averigüemos más sobre este estilo antiguo, pero una experiencia de sistema operativo más nueva.
Whatsapp finalmente lanzó la aplicación de escritorio para usuarios de Mac y Windows. Ahora puede acceder a Whatsapp desde Windows o Mac fácilmente. Disponible para Windows 8+ y Mac OS 10.9+
Lea esto para saber cómo la Inteligencia Artificial se está volviendo popular entre las empresas de pequeña escala y cómo está aumentando las probabilidades de hacerlas crecer y dar ventaja a sus competidores.
Recientemente, Apple lanzó macOS Catalina 10.15.4, una actualización complementaria para solucionar problemas, pero parece que la actualización está causando más problemas que conducen al bloqueo de las máquinas Mac. Lee este artículo para obtener más información
13 Herramientas comerciales de extracción de datos de Big Data
Nuestra computadora almacena todos los datos de una manera organizada conocida como sistema de archivos de diario. Es un método eficiente que permite a la computadora buscar y mostrar archivos tan pronto como presiona buscar.
A medida que la ciencia evoluciona a un ritmo rápido, asumiendo muchos de nuestros esfuerzos, también aumentan los riesgos de someternos a una singularidad inexplicable. Lea, lo que la singularidad podría significar para nosotros.
Una mirada a 26 técnicas analíticas de Big Data: Parte 1
La IA en la salud ha dado grandes pasos desde las últimas décadas. Por tanto, el futuro de la IA en el sector sanitario sigue creciendo día a día.