Comment déployer Ghost Blog avec Nginx sur Ubuntu 18.04 LTS

Ghostest uneplateforme de bloggingentièrement open source(licence MIT),qui gagne en popularité auprès des développeurs et des utilisateurs ordinaires depuis sa sortie en 2013.Le code source de Ghost est disponible publiquement sur GitHub.Ghost a généralement besoin d’environ~300 Mo de RAMpour bien fonctionner, il peut donc fonctionner sur du matériel modeste.Il met l’accent sur lecontenuet leblogging. L’aspect le plus attrayant de Ghost est son design simple, propre, élégant et réactif. Tu peux écrire tes articles de blog depuis un téléphone portable. Le contenu de Ghost est écrit et formaté à l’aide du langage Markdown.Ghost convient parfaitement aux particuliers ou aux petits groupes de rédacteurs.Ghost a aussi une prise en charge intégrée du projetAMP(Accelerated Mobile Pages),qui rendra le chargement de ton blog rapide comme l’éclair sur les téléphones portables.


Récemment, les développeurs de Ghost ont publiéla première version majeure et stable de Ghost – 1.0.0. Ghost 1.0.0 a introduit de nombreuses nouvelles fonctionnalités, dont les plus remarquables sont : untout nouvel éditeur Markdown, uneinterface utilisateur (IU)rafraîchie, unnouveau design de thème par défaut, unprocessus d’installation et de mise à journouveau etamélioré avec l’outil Ghost-CLI.

Ghost Blog et CMS


Dans ce tutoriel, nous allons configurer et déployer un blog Ghost sécurisé à l’aide de l’outil Ghost-CLI de Ghost sur un serveur Ubuntu 18.04 LTSen utilisant Let’s Encrypt, Acme.sh, Node.js, npm, Yarn, NGINX et MySQL/MariaDB.

Exigences

  • Nom de domaine. Ce tutoriel utilisera le domaineexemple.com.
  • Un serveur exécutant Ubuntu 18.04 LTS avec 1 Go de RAM.
  • Un utilisateur non-root avec des privilèges sudo.

Étapes initiales

Vérifie ta version d’Ubuntu :

lsb_release -ds 
# Ubuntu 18.04 LTS

Configure le fuseau horaire :

timedatectl list-timezones
sudo timedatectl set-timezone 'Region/City'

Mets à jour les paquets de ton système d’exploitation :

sudo apt update && sudo apt upgrade -y

Installebuild-essentialle paquet :

sudo apt install -y build-essential

Étape 1 – Installe Node.js et npm

REMARQUE: La dernière version de Ghost 1.0.0 ne prend actuellement en charge que les versions8.9+ et 6.9+de Node.js.

Ghost est construit sur Node.js. Nous allons installerrecommandéversion pour Ghost qui estv8 Carbon LTSau moment de la rédaction de ce tutoriel. Sous Linux, tu as plusieurs options d’installation : Binaires Linux (x86/x64), code source ou via les gestionnaires de paquets. Nous allons utiliser la méthode du gestionnaire de paquets en utilisant le dépôt Nodesource.

Télécharge et installe la dernière version de Long-Term Support (LTS) version (release) de Node.js:

curl -sL https://deb.nodesource.com/setup_8.x | sudo -E bash -
sudo apt install -y nodejs

REMARQUE: npm est distribué avec Node.js – ce qui signifie que lorsque tu télécharges Node.js, tu obtiens automatiquement npm installé sur ton ordinateur.

Vérifie Node.js et npmversion :

node -v && npm -v
# v8.11.2
# 5.6.0

Npm est un projet distinct de Node.js, et a tendance à être mis à jour plus fréquemment. Par conséquent, même si tu viens de télécharger Node.js (et donc npm), tu auras probablement besoin de mettre à jour ton npm. Heureusement, npm sait comment se mettre à jour lui-même ! Pour mettre à jour ton npm, tape ceci dans ton terminal :

sudo npm install -g [email protected]

Revérifie la version de npm, elle doit être la dernière version :

npm -v
# 6.1.0

Étape 2 – Installe le serveur MariaDB

Ghost prend en charge MySQL/MariaDBet SQLite. Dans ce tutoriel, cependant, nous utiliserons la base de données MariaDBbase de données. Si tu préfères, tu peux utiliser MySQL au lieu de MariaDB.

Télécharge et installe la dernière version stable du serveur MariaDBà partir du dépôt MariaDBsur ton ordinateur :

sudo apt-get install software-properties-common
sudo apt-key adv --recv-keys --keyserver hkp://keyserver.ubuntu.com:80 0xF1656F24C74CD1D8
sudo add-apt-repository 'deb [arch=amd64] https://mirrors.nxthost.com/mariadb/repo/10.3/ubuntu bionic main'
sudo apt update
sudo apt install -y mariadb-server

Pendant le processus d’installation de MariaDB, il te sera demandé d’entrer le mot de passe de l’utilisateur MariaDB.rootpour l’utilisateur. Tu dois saisir un mot de passe fort.

Installe la base de données MariaDB

Vérifie la version de MariaDB :

mysql --version && sudo mysqld --version
# mysql  Ver 15.1 Distrib 10.3.7-MariaDB, for debian-linux-gnu (x86_64) using readline 5.2
# mysqld  Ver 10.3.7-MariaDB-1:10.3.7+maria~bionic-log for debian-linux-gnu on x86_64 (mariadb.org binary distribution)

Vérifie si le démon MariaDB a démarré et s’exécute :

sudo systemctl status mysql.service
sudo systemctl is-enabled mysql.service

Exécute l’utilitairemysql_secure_installationutilitaire (script) pour améliorer la sécurité de ton installation MariaDB :

sudo mysql_secure_installation


# Enter current password for root (enter for none):

# Change the root password? [Y/n] N
# Remove anonymous users? [Y/n] Y
# Disallow root login remotely? [Y/n] Y
# Remove test database and access to it? [Y/n] Y
# Reload privilege tables now? [Y/n] Y
# Success.

# All done! If you've completed all of the above steps, your MariaDB
installation should now be secure.

# Thanks for using MariaDB!

Connecte-toi (connecte-toi) à la ligne de commande MariaDB en tant querootutilisateur :

mysql -u root -p

Crée une nouvelle base de données et un nouvel utilisateur MariaDB pour l’installation de Ghost. Cette étape est facultative, car l’outil Ghost-CLI peut créer une base de données pour toi dans une étape ultérieure. Il te suffit d’entrer les informations d’identification de l’utilisateur root MariaDB (nom d’utilisateur et mot de passe) lorsque Ghost-CLI te le demande pendant l’installation de Ghost :

mysql> CREATE DATABASE dbname;
mysql> CREATE USER 'username'@'localhost' IDENTIFIED BY 'password';
mysql> GRANT ALL ON dbname.* TO 'username'@'localhost';
mysql> FLUSH PRIVILEGES;

Exit (déconnexion) de MariaDB :

mysql> EXIT;

Étape 3 – Installer NGINX

NGINX(engine-x) est un serveur Web, un équilibreur de charge, un cache et un serveur proxy hautes performances qui fonctionne bien dans tous les environnements : Bare Metal, Cloud public/privé/hybride et Containers. NGINX sera utilisé comme proxy inverse pour notre application Ghost.

NGINX peut être installé différemment, selon le système d’exploitation. Pour Linux, les paquets NGINX denginx.orgpeuvent être utilisés.

Télécharge et installe la dernière versionmainline(recommandé pour la plupart des déploiements) de NGINX et des modules à chargement dynamique directement depuis le dépôt officiel de NGINX.:

wget https://nginx.org/keys/nginx_signing.key
sudo apt-key add nginx_signing.key
rm nginx_signing.key
sudo -s
printf "deb https://nginx.org/packages/mainline/ubuntu/ $(lsb_release -sc) nginx\ndeb-src https://nginx.org/packages/mainline/ubuntu/ $(lsb_release -sc) nginx\n" >> /etc/apt/sources.list.d/nginx_mainline.list
exit
sudo apt update
sudo apt install -y nginx nginx-module-geoip nginx-module-image-filter nginx-module-njs nginx-module-perl nginx-module-xslt

Vérifie que NGINX est installé en vérifiant sa version :

sudo nginx -v && sudo nginx -V
# nginx version: nginx/1.15.0
# nginx version: nginx/1.15.0

Démarre et active NGINX :

sudo systemctl start nginx.service
sudo systemctl enable nginx.service

Créer/etc/nginx/snippets, /etc/nginx/ssl,/etc/nginx/sites-available et/etc/nginx/sites-enabled répertoires. Ces répertoires sont nécessaires pour que l’outil Ghost-CLI fonctionne correctement.:

sudo mkdir -p /etc/nginx/{snippets,ssl,sites-available,sites-enabled}

Ajoute la directiveinclude /etc/nginx/sites-enabled/*.conf;à la directivenginx.conffichier, exécute :

sudo vim /etc/nginx/nginx.conf

Installe le serveur web Nginx

Sauvegarde le fichier et quitte l’éditeur Vim.

Étape 4 – Installe Yarn (facultatif)

Télécharge et installe Yarnle gestionnaire de paquets sur ton système :

curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | sudo apt-key add -
echo "deb https://dl.yarnpkg.com/debian/ stable main" | sudo tee /etc/apt/sources.list.d/yarn.list
sudo apt update && sudo apt install -y yarn

Vérifie la version de Yarn :

yarn --version
# 1.7.0

Étape 5 – Installation de Ghost-CLI

Ghost-CLIest un outil d’interface de ligne de commande (CLI) qui facilite l’installation et la mise à jour de Ghost. Il installe la base de données, configure NGINX comme proxy inverse, active la sécurité TLS/SSL à l’aide de Let’s Encrypt CA, renouvelle automatiquement ton SSL et initialise Ghost comme service systemd. Ghost-CLI est un module npm qui peut être installé via soitnpmouyarn.

Télécharge et installe l’outil Ghost-CLI:

sudo npm install -g [email protected]
# or with Yarn
sudo yarn global add [email protected]

Vérifier Ghost-CLIversion :

ghost version
# Ghost-CLI version: 1.8.1

Dépanne le système pour détecter tout problème potentiel lors de l’installation ou de la mise à jour de Ghost :

ghost doctor install

Étape 6 – Installer Ghost

Ensuite, nous allons installer Ghost à l’aide de l’outil Ghost-CLI.

Tout d’abord,crée un répertoire racine de document vide :

sudo mkdir -p /var/www/example.com

Change la propriété du/var/www/example.comà l’utilisateur non racine avecsudoprivilèges que tu as créé. Dans cet exemple,johndoe:

sudo chown johndoe:johndoe /var/www/example.com

Ton dossier d’installation doit avoir les bonnes permissions :

sudo chmod 755 /var/www/example.com

Navigue dans le répertoire racine de Ghost :

cd /var/www/example.com

Assure-toi que le répertoire est vide pour éviter les conflits de fichiers :

ls -a

Installe Ghost en mode production en exécutant :

ghost install

Réponds à chaque question comme demandé :

? Enter your blog URL: https://example.com
? Enter your MySQL hostname: localhost
? Enter your MySQL username: root
? Enter your MySQL password: your_mysql_root_user_password_here
? Enter your Ghost database name: database_name_for_ghost
? Do you wish to set up "ghost" mysql user? yes ? Do you wish to set up Nginx? yes ? Do you wish to set up SSL? yes ? Enter your email (used for Let's Encrypt notifications) [email protected] ? Do you wish to set up Systemd? yes ? Do you want to start Ghost? yes

Une fois l'installation terminée, exécute

ghost ls

pour afficher les processus Ghost en cours d'exécution.

À l'avenir, pour mettre à jour ton blog Ghost lorsqu'une nouvelle version sera publiée, il te suffira d'exécuter la commande suivante

ghost update

à partir du répertoire d'installation de Ghost et Ghost-CLI s'occupera de tout pour toi.

Étape 7 - Termine l'installation de Ghost

Pour terminer le processus d'installation, accède à la page de configuration de Ghost en ajoutant/ghostà la fin de l'URL ou de l'IP de ton blog. Cet exemple utilisehttps://example.com/ghost.

Sur l'écran de bienvenue, clique surCréer ton compte:

Installateur web Ghost

Saisis ton adresse e-mail, crée un utilisateur, un mot de passe et un titre de blog :

Invite d'autres membres dans ton équipe. Si tu préfères sauter cette étape, clique surJe le ferai plus tard, emmène-moi sur mon blog !en bas de la page.

Navigue dans la zone d'administration de Ghost pour créer ton premier article, modifier le thème de ton site ou configurer des paramètres supplémentaires :

Histoires de fantômes

Félicitations ! Tu as installé et déployé avec succès la plateforme de blogging Ghost sur le serveur Ubuntu 18.04 LTS.

Vous aimerez aussi...