Une version précédente de ce tutoriel a été écrite parKevin Isaac
introduction
Ghost est une plate-forme de blogs open source légère. Ghost est entièrement personnalisable, avec de nombreux thèmes disponibles.
Dans ce didacticiel, vous allez configurer une instance Ghost prête pour la production sur Ubuntu 16.04 à l'aide de l'assistant d'installation officiel deghost-cli
. Cela installera Ghost, configurera Nginx pour les requêtes proxy vers Ghost, le sécurisera avec un certificatLet’s Encrypt et configurera Ghost pour qu'il s'exécute en arrière-plan en tant que service système.
Conditions préalables
Pour compléter ce tutoriel, vous aurez besoin de:
-
Un serveur Ubuntu 16.04 de 1 Go configuré en suivant lesUbuntu 16.04 initial server setup guide, y compris un utilisateur sudo non root et un pare-feu.
-
Node.js installed using the official PPA, as explained in How To Install Node.js on Ubuntu 16.04.
-
Nginx installé sur votre serveur, comme indiqué dansHow To Install Nginx on Ubuntu 16.04.
-
MySQL installé en suivantHow to Install MySQL on Ubuntu 16.04.
-
Facultativement, un nom de domaine configuré pour pointer vers votre serveur. Vous pouvez apprendre à pointer des domaines vers des gouttelettes DigitalOcean en suivant le didacticiel deHow To Set Up a Host Name with DigitalOcean. Vous en aurez besoin pour activer la prise en charge de SSL avec l’assistant d’installation de Let’s Encrypt via Ghost.
[[step-1 -—- Installing-the-ghost-cli-application]] == Étape 1 - Installation de l'application Ghost CLI
Nous installerons Ghost à l'aide du programme officielghost-cli
. Ce programme installe Ghost, crée l'utilisateur MySQL et la base de données MySQL, configure Nginx en tant que proxy inverse et sécurise le site à l'aide du cryptage SSL / TLS.
Tout d'abord, téléchargezghost-cli
en utilisantnpm
:
sudo npm i -g ghost-cli
Nous placerons Ghost dans le répertoirevar/www/ghost
, qui est l'emplacement d'installation recommandé. Créez ce répertoire:
mkdir /var/www/ghost
Assurez-vous ensuite que votre utilisateur possède ce répertoire.
sudo chown $USER:$USER /var/www/ghost
Le répertoire/var/www/ghost
doit avoir des autorisations complètes pour votre utilisateur et des autorisations de lecture et d'exécution pour tous les autres, définissez donc les autorisations avec la commande suivante:
sudo chmod 775 /var/www/ghost
Avec la CLI installée et le répertoire en place, nous pouvons configurer notre blog.
[[step-2 -—- installation-and-configuring-ghost]] == Étape 2 - Installation et configuration de Ghost
L'application Ghost CLI dispose d'un assistant d'installation qui vous guidera à travers toutes les étapes pour configurer un blog Ghost en état de marche.
Basculez vers le répertoire/var/www/ghost/
.
cd /var/www/ghost/
Utilisez ensuite la commandeghost
pour installer Ghost. Il va configurer Ghost pour utiliser MySQL comme base de données par défaut. Bien que vous puissiez utiliser d'autres bases de données, MySQL est le choix recommandé pour les configurations de production.
ghost install
Le programme d’installation vérifiera d’abord que vous avez installé les conditions préalables requises, puis téléchargera et installera Ghost:
Output✔ Checking system Node.js version
✔ Checking logged in user
✔ Checking current folder permissions
✔ Checking operating system compatibility
✔ Checking for a MySQL installation
✔ Checking memory availability
✔ Checking for latest Ghost version
✔ Setting up install directory
✔ Downloading and installing Ghost v1.22.2
✔ Finishing install process
Une fois le processus d'installation terminé, vous serez invité à indiquer l'URL de votre blog, ainsi que les informations de votre base de données MySQL. Indiquez le nom d'utilisateur et le mot de passe deroot à cette étape. Pour le nom de la base de données, vous pouvez utiliser la valeur par défaut deghost_prod
.
Output? Enter your blog URL: http://example.com
? Enter your MySQL hostname: localhost
? Enter your MySQL username: root
? Enter your MySQL password: [hidden]
? Enter your Ghost database name: ghost_prod
L'assistant de configuration créera alors un utilisateur systèmeghost et vous demandera s'il doit créer un utilisateur MySQLghost, ce que vous devez autoriser:
Output✔ Configuring Ghost
✔ Setting up instance
Running sudo command: useradd --system --user-group ghost
Running sudo command: chown -R ghost:ghost /var/www/ghost/content
✔ Setting up "ghost" system user
? Do you wish to set up "ghost" mysql user? Yes
✔ Setting up "ghost" mysql user
Ensuite, il vous demandera si vous souhaitez configurer Nginx. Confirmez ceci et le programme d'installation créera le bloc de serveur proxy inverse approprié pour votre blog:
Output? Do you wish to set up Nginx? Yes
✔ Creating nginx config file at /var/www/ghost/system/files/example.con.conf
Running sudo command: ln -sf /var/www/ghost/system/files/example.com.conf /etc/nginx/sites-available/example.com.conf
Running sudo command: ln -sf /etc/nginx/sites-available/example.com.conf /etc/nginx/sites-enabled/example.com.conf
Running sudo command: nginx -s reload
✔ Setting up Nginx
Ensuite, vous serez invité à configurer la prise en charge de SSL. Si vous utilisez un nom de domaine complet enregistré et que vous avez configuré vos paramètres DNS pour qu'ils pointent vers l'adresse IP de votre serveur, appuyez surY
pour continuer.
Output? Do you wish to set up SSL? Yes
Votre adresse e-mail vous sera demandée, puis le certificat sera installé.
Output? Enter your email (used for Let's Encrypt notifications) [email protected]
Running sudo command: mkdir -p /etc/letsencrypt
Running sudo command: ./acme.sh --install --home /etc/letsencrypt
Running sudo command: /etc/letsencrypt/acme.sh --issue --home /etc/letsencrypt --domain example.com --webroot /var/www/ghost/system/nginx-root --reloadcmd "nginx -s reload" --accountemail [email protected]
Running sudo command: openssl dhparam -out /etc/nginx/snippets/dhparam.pem 2048
Running sudo command: openssl dhparam -out /etc/nginx/snippets/dhparam.pem 2048
Running sudo command: mv /tmp/ssl-params.conf /etc/nginx/snippets/ssl-params.conf
✔ Creating ssl config file at /var/www/ghost/system/files/example.com-ssl.conf
Running sudo command: ln -sf /var/www/ghost/system/files/example.com-ssl.conf /etc/nginx/sites-available/example.com-ssl.conf
Running sudo command: ln -sf /etc/nginx/sites-available/example.com-ssl.conf /etc/nginx/sites-enabled/example.com-ssl.conf
Running sudo command: nginx -s reload
✔ Setting up SSL
Ensuite, l’assistant de configuration vous invitera à configurer un service systemd. Appuyez surY
pour continuer et l'assistant créera un nouveau service systemd appeléghost_example-com
et lui permettra de démarrer au démarrage:
Output? Do you wish to set up Systemd? Yes
✔ Creating systemd service file at /var/www/ghost/system/files/ghost_example-com.service
Running sudo command: ln -sf /var/www/ghost/system/files/ghost_example-com.service /lib/systemd/system/ghost_example-com.service
Running sudo command: systemctl daemon-reload
✔ Setting up Systemd
Enfin, l'assistant configurera votre base de données et vous demandera s'il doit démarrer Ghost, ce que vous devez autoriser en appuyant surY
:
OutputRunning sudo command: /var/www/ghost/current/node_modules/.bin/knex-migrator-migrate --init --mgpath /var/www/ghost/current
✔ Running database migrations
? Do you want to start Ghost? Yes
Running sudo command: systemctl is-active ghost_example-com
✔ Ensuring user is not logged in as ghost user
✔ Checking if logged in user is directory owner
✔ Checking current folder permissions
Running sudo command: systemctl is-active ghost_example-com
✔ Validating config
✔ Checking folder permissions
✔ Checking file permissions
✔ Checking content folder ownership
✔ Checking memory availability
Running sudo command: systemctl start ghost_example-com
✔ Starting Ghost
Running sudo command: systemctl is-enabled ghost_example-com
Running sudo command: systemctl enable ghost_example-com --quiet
✔ Starting Ghost
Votre blog Ghost est maintenant installé et prêt à être utilisé. Vous pouvez accéder à votre blog à l'adressehttp://example.com
. Créons maintenant un compte pour pouvoir créer votre premier message.
[[step-3 -—- creation-an-account-and-configuration-your-blog]] == Étape 3 - Création d'un compte et configuration de votre blog
Pour vous connecter et configurer votre blog, visitezhttp://example.com/login
. Vous serez accueilli avec l’écran suivant:
Appuyez sur le boutonCreate your account pour commencer.
Vous verrez l'écranCreate your account, qui vous demande le titre de votre blog, ainsi que votre nom, votre adresse e-mail et un mot de passe:
Remplissez les détails et appuyez sur le boutonLast step: Invite your team.
L'assistant vous demandera de saisir les adresses e-mail des autres collaborateurs, mais vous pouvez sélectionner le lienI’ll do this later en bas de l'écran.
Vous verrez alors une liste de publications, que Ghost appelle des histoires:
Le menu de gauche vous permet de créer un nouveau récit ou de gérer les autres paramètres de votre blog. Consultez lesofficial documentation pour en savoir plus.
Conclusion
Dans ce didacticiel, vous avez installé Ghost, configuré Nginx pour envoyer des requêtes proxy à Ghost et vous êtes assuré que Ghost s'exécute en tant que service système. Ghost vous permet toutefois de faire beaucoup plus. Jetez un coup d'œil à ces tutoriels pour en savoir plus sur l'utilisation de votre nouveau blog: