Cómo instalar Ghost con Apache en Ubuntu 18.04 LTS

27 feb 2021 6 min di lettura
Cómo instalar Ghost con Apache en Ubuntu 18.04 LTS
Indice dei contenuti

Introducción

Si su intención es instalar Ghost Blog en un servidor remoto, continúe leyendo; de lo contrario, si desea instalar Ghost Blog en su computadora local, omita el primer párrafo "Conexión al servidor" y lea el siguiente.

Conexión al servidor

Para acceder al servidor, necesita conocer la dirección IP. También necesitará la contraseña para la autenticación.

Para conectarse al servidor como root, escriba este comando:

ssh root@IP_DEL_SERVER

A continuación, se le pedirá que ingrese la contraseña del usuario root.

Si no usa el usuario root, puede iniciar sesión con otro nombre de usuario usando el mismo comando, luego cambie el primer parámetro:

ssh VOSTRO_UTENTE@IP_DEL_SERVER

Luego se le pedirá que ingrese su contraseña de usuario.

Ahora está conectado a su servidor, está listo para comenzar la instalación de Ghost Blog.

Prerrequisitos

La instalación oficial de Ghost requiere la siguiente pila:

  • Ubuntu 18.04
  • Apache: se recomienda Nginx.
  • Node.js: se recomienda la versión 6.x /8.x /10.x
  • MySQL 5.5, 5.6 o 5.7 (no> = 8.0)
  • systemd
  • Un servidor con al menos 1 GB de memoria
  • Un nombre de dominio registrado

Configuración del servidor

Agregar un nuevo usuario:

adduser nome_utente

Nota: El uso del nombre de usuario fantasma causa conflictos con Ghost-CLI, por lo que es importante usar un nombre alternativo.

De forma predeterminada, un nuevo usuario está solo en su propio grupo, que se crea cuando se crea la cuenta. Para agregar el usuario a un nuevo grupo, podemos usar el comando usermod.

Asigne privilegios de sudo al usuario recién creado:

usermod -aG sudo nome_utente

Inicie sesión con el nuevo usuario:

su - nome_utente

Asegúrese de que las listas de paquetes y los paquetes instalados estén actualizados:

sudo apt-get update
sudo apt-get upgrade

Instalar Apache2

Para instalar Apache:

sudo apt-get install apache2

Instale algunos paquetes recomendados:

sudo apt-get install libxml2-dev

Si ufw está activado, habilite los puertos utilizados por Apache:

sudo ufw allow 'Apache Full'

Active los módulos apache2 recomendados:

sudo a2enmod

Debería recibir un mensaje de salida similar al siguiente:


Your choices are: access_compat actions alias allowmethods asis auth_basic auth_digest auth_form authn_anon authn_core authn_dbd authn_dbm authn_file authn_socache authnz_fcgi authnz_ldap authz_core authz_dbd authz_dbm authz_groupfile authz_host authz_owner authz_user autoindex buffer cache cache_disk cache_socache cgi cgid charset_lite data dav dav_fs dav_lock dbd deflate dialup dir dump_io echo env expires ext_filter file_cache filter headers heartbeat heartmonitor ident include info lbmethod_bybusyness lbmethod_byrequests lbmethod_bytraffic lbmethod_heartbeat ldap log_debug log_forensic lua macro mime mime_magic mpm_event mpm_prefork mpm_worker negotiation proxy proxy_ajp proxy_balancer proxy_connect proxy_express proxy_fcgi proxy_fdpass proxy_ftp proxy_html proxy_http proxy_scgi proxy_wstunnel ratelimit reflector remoteip reqtimeout request rewrite sed session session_cookie session_crypto session_dbd setenvif slotmem_plain slotmem_shm socache_dbm socache_memcache socache_shmcb speling ssl status substitute suexec unique_id userdir usertrack vhost_alias xml2enc

 **Which module(s) do you want to enable (wildcards ok)?**

Habilite los siguientes módulos:

sudo a2enmod proxy
sudo a2enmod proxy_http
sudo a2enmod proxy_ajp
sudo a2enmod rewrite
sudo a2enmod deflate
sudo a2enmod headers
sudo a2enmod proxy_balancer
sudo a2enmod proxy_connect
sudo a2enmod proxy_html
sudo a2enmod ssl

Reinicie Apache:

sudo service apache2 restart

Desactive el archivo de configuración de Apache predeterminado:

sudo a2dissite 000-default

Cree un nuevo archivo de configuración de host virtual para nuestra instalación de Ghost:

sudo nano /etc/apache2/sites-available/ghost.conf

Agregue las siguientes líneas de código:


<VirtualHost *:80>
 ServerAdmin admin@localhost
 DocumentRoot /var/www/ErrorLog ${APACHE_LOG_DIR}/error.log
 CustomLog ${APACHE_LOG_DIR}/access.log combined
 ProxyPreserveHost On
 # Servers to proxy the connection, or
 # List of application servers Usage
 ProxyPass /http://localhost:2368/ProxyPassReverse /http://localhost:2368/ServerName tuodominio.it
 ServerAlias www.tuodominio.it
 </VirtualHost>

Activar el host virtual:

sudo a2ensite ghost

Reinicie Apache:

sudo service apache2 restart

Si está instalado, detenga Nginx:

service nginx stop

Instalar MySQL

A continuación, debe instalarse MySQL para utilizarlo como base de datos de producción.

sudo apt-get install mysql-server

En Ubuntu 18.04 LTS se requiere una contraseña para garantizar que MySQL sea compatible con Ghost-CLI.

Inicie sesión en MySQL:

sudo mysql

Establezca la contraseña para el usuario root:

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'TUA_PASSWORD';

Salir de MySQL:

quit

Si es necesario, inicie sesión nuevamente con el usuario creado anteriormente:

su - nome_utente

Instalar Node.js

Deberá instalar una de las versiones de Node compatibles con Ghost, agregue el repositorio NodeSource para Node 10:

curl -sL https://deb.nodesource.com/setup_10.x | sudo -E bash

Ahora instale Node.js:

sudo apt-get install -y nodejs

Instalar Ghost-CLI

Ghost-CLI es una herramienta de línea de comandos que le permite instalar y configurar Ghost de forma rápida y sencilla. El módulo npm se puede instalar con npm o hilo:

sudo npm install ghost-cli@latest -g

Instalar Ghost

Una vez que se haya configurado el servidor y se haya instalado ghost-cli, puede instalar Ghost. Los siguientes pasos son la configuración recomendada:

Crea un directorio:

sudo mkdir -p /var/www/ghost

Establezca el propietario de la carpeta:

sudo chown nome_utente:nome_utente /var/www/ghost

Establezca los permisos correctos:

sudo chmod 775 /var/www/ghost

Mover carpeta:

cd /var/www/ghost

Ejecute el comando de instalación de Ghost:

ghost install

Debería recibir un mensaje de advertencia acerca de que Nginx no se está instalando, similar al siguiente:


✔ Checking system Node.js version
 ✔ Checking logged in user
 ✔ Checking current folder permissions
 System checks failed with message: 'Missing package(s): nginx'
 Some features of Ghost-CLI may not work without additional configuration.
 For local installs we recommend using

instalación fantasma local

 instead.
 ? Continue anyway? Yes

Ignorar el mensaje y continuar con la instalación tecleando y o sí.

Si desea instalar Ghost en su PC en localhost, ejecute el siguiente comando:

ghost install local

Para instalar certificados SSL para https con Let's Encrypt, continúe leyendo

Durante la instalación, la CLI le pedirá una serie de preguntas para configurar el sitio.

Blog URL Ingrese la URL exacta donde estará disponible la publicación e incluya el protocolo HTTP o HTTPS. Por ejemplo https://example.com. Ghost-CLI lo guiará para configurar SSL.

Nombre de host MySQL Si MySQL está instalado en el mismo servidor, use localhost (presione Enter para usar el predeterminado). Si MySQL está instalado en otro servidor, ingrese el nombre manualmente.

Nombre de usuario /contraseña de MySQL Si ya tiene una base de datos MySQL existente, ingrese el nombre de usuario. De lo contrario, ingrese root. Luego proporcione la contraseña de su usuario.

Nombre de la base de datos fantasma Ingrese el nombre de su base de datos. Se configurará automáticamente para usted, a menos que esté utilizando un usuario /contraseña de MySQL que no sea root. En este caso, la base de datos ya debe existir y tener los permisos correctos.

¿Configurar un usuario "fantasma" para MySQL? (Recomendado) Si ha proporcionado el usuario raíz de MySQL, Ghost-CLI puede crear un usuario MySQL personalizado que solo puede acceder /modificar su nueva base de datos de Ghost y nada más.

¿Configurar NGINX? NO (instalamos Apache anteriormente) Configure NGINX automáticamente para permitir que su sitio sea visto por el mundo exterior.

¿Configurar SSL? (En este caso, Nginx no está instalado, se omitirá la configuración) Si ha utilizado una URL https para el blog y ya se ha dirigido a su dominio, Ghost-CLI puede configurar SSL automáticamente para usted mediante Let's Encrypt. Alternativamente, puede hacer esto con el comando ghost setup ssl más adelante.

Ingrese su correo electrónico (en este caso Nginx no está instalado, se omitirá la configuración) Se requiere una dirección de correo electrónico para configurar la certificación SSL para que pueda estar informado en caso de problemas con el certificado, incluso durante la renovación.

Configurar systemd? (Recomendado) systemd es la herramienta de gestión de procesos recomendada para mantener Ghost sin problemas. Le recomendamos que elija .

¿Iniciar Ghost? Elija para iniciar Ghost.

Instalar certificados SSL para https

Agreguemos el repositorio oficial de Cerbot para obtener los paquetes más actualizados:

sudo add-apt-repository ppa:certbot/certbot

Instale el paquete Certbot para Apache:

sudo apt install python-certbot-apache

Certbot usa el complemento Apache para obtener certificados SSL:

sudo certbot --apache

Mover carpeta:

cd /etc/apache2/sites-available

Debe tener un nuevo archivo generado automáticamente por Let's Encrypt, con el nombre -ssl escrito dentro. En este caso ghost-le-ssl.conf.

Abre el archivo:

sudo nano ghost-le-ssl.conf

Agregue las siguientes líneas antes de incluir los archivos Let's Encrypt:


RequestHeader set "X-Forwarded-Proto" expr=%{REQUEST_SCHEME}
 RequestHeader set "X-Forwarded-SSL" expr=%{HTTPS}

Entonces:


<IfModule mod_ssl.c>
 <VirtualHost *:443>
 ServerAdmin admin@localhost
 DocumentRoot /var/www/ErrorLog ${APACHE_LOG_DIR}/error.log
 CustomLog ${APACHE_LOG_DIR}/access.log combined
 ProxyPreserveHost On
 # Servers to proxy the connection, or
 # List of application servers Usage
 ProxyPass /http://localhost:2368/ProxyPassReverse /http://localhost:2368/ServerName TUODOMINIO.it
 ServerAlias www.TUODOMINIO.it

 RequestHeader set "X-Forwarded-Proto" expr=%{REQUEST_SCHEME}
 RequestHeader set "X-Forwarded-SSL" expr=%{HTTPS}

 Include /etc/letsencrypt/options-ssl-apache.conf
 SSLCertificateFile /etc/letsencrypt/live/TUODOMINIO.it/fullchain.pem
 SSLCertificateKeyFile /etc/letsencrypt/live/TUODOMINIO.it/privkey.pem
 </VirtualHost>
 </IfModule>

Guarde y cierre el archivo

Reinicie Apache:

sudo service apache2 restart

Configurar Ghost con SSL

Debe cambiar la URL principal de Ghost en su archivo de configuración principal.

Mover carpeta:

cd /var/www/ghost

Abra el siguiente archivo:

sudo nano config.production.json

Cambie el primer parámetro de URL asegurándose de que esté configurado con https:


“url”: "https://TUODOMINIO.it"

Guarde y cierre el archivo.

Reiniciar Ghost:

ghost restart

Mantenimiento futuro

Una vez que se ha configurado Ghost, es importante mantenerlo correctamente actualizado y actualizado. Afortunadamente, esto es relativamente fácil de hacer con Ghost-CLI. Ejecute la ayuda de ghost para obtener una lista de los comandos disponibles o explore la documentación completa de Ghost-CLI.

La instalación y configuración de Ghost Blog con Apache2 en Ubuntu 18.04 LTS ha finalizado.

Support us with a

Successivamente, completa il checkout per l'accesso completo a Noviello.it.
Bentornato! Accesso eseguito correttamente.
Ti sei abbonato con successo a Noviello.it.
Successo! Il tuo account è completamente attivato, ora hai accesso a tutti i contenuti.
Operazione riuscita. Le tue informazioni di fatturazione sono state aggiornate.
La tua fatturazione non è stata aggiornata.