GNU/Linux >> Tutoriels Linux >  >> Rocky Linux

Comment installer NEOS CMS avec Nginx et Lets Encrypt SSL sur Rocky Linux 8

Neos est un système de gestion de contenu (CMS) gratuit et open-source qui vous permet de créer facilement des sites Web complexes sans avoir besoin de coder. Vous pouvez créer un blog, un site Web d'actualités, une page de portefeuille ou un site Web d'entreprise en l'utilisant. Il offre un riche ensemble de fonctionnalités telles que l'édition en ligne, prend en charge plusieurs sites Web sur une seule installation, des outils de référencement intégrés, des URL lisibles par l'homme, un gestionnaire de plug-ins, un aperçu de l'appareil et prend en charge plusieurs modèles. Il prend en charge les technologies modernes telles que l'API REST, JSON, GraphQL et oEmbed.

Dans ce didacticiel, vous apprendrez à installer Neos CMS sur un serveur exécutant le système d'exploitation Rocky Linux 8.

Prérequis

  • Un serveur exécutant Rocky Linux 8.

  • Un utilisateur sudo non root.

  • Assurez-vous que tout est mis à jour.

    Mise à jour $ sudo dnf
  • Installez les packages d'utilitaires de base. Certains d'entre eux sont peut-être déjà installés.

    $ sudo dnf install wget curl nano unzip yum-utils -y

Étape 1 - Configurer le pare-feu

La première étape consiste à configurer le pare-feu. Rocky Linux utilise Firewalld Firewall. Vérifiez l'état du pare-feu.

$ sudo firewall-cmd --staterunning

Le pare-feu fonctionne avec différentes zones, et la zone publique est celle par défaut que nous utiliserons. Répertorier tous les services et ports actifs sur le pare-feu.

$ sudo firewall-cmd --permanent --list-services

Il devrait afficher la sortie suivante.

cockpit dhcpv6-client ssh

Autoriser les ports HTTP et HTTPS.

$ sudo firewall-cmd --permanent --add-service=http$ sudo firewall-cmd --permanent --add-service=https

Revérifiez l'état du pare-feu.

$ sudo firewall-cmd --permanent --list-services

Vous devriez voir une sortie similaire.

cockpit dhcpv6-client http https ssh

Rechargez le pare-feu pour activer les modifications.

$ sudo firewall-cmd --reload

Étape 2 - Installer Nginx

Rocky Linux est livré avec une ancienne version de Nginx. Vous devez télécharger le dépôt officiel Nginx pour installer la dernière version.

Créez et ouvrez le /etc/yum.repos.d/nginx.repo fichier pour créer le référentiel Nginx officiel.

$ sudo nano /etc/yum.repos.d/nginx.repo

Collez-y le code suivant.

[nginx-stable]name=nginx stable repobaseurl=http://nginx.org/packages/centos/$releasever/$basearch/gpgcheck=1enabled=1gpgkey=https://nginx.org/keys/nginx_signing. keymodule_hotfixes=true[nginx-mainline]name=nginx mainline repobaseurl=http://nginx.org/packages/mainline/centos/$releasever/$basearch/gpgcheck=1enabled=0gpgkey=https://nginx.org/keys/ nginx_signing.keymodule_hotfixes=true

Enregistrez le fichier en appuyant sur Ctrl + X et en saisissant Y lorsque vous y êtes invité.

Installez Nginx.

$ sudo dnf installer nginx

Vérifiez l'installation.

$ nginx -vnginx version :nginx/1.20.2

Activez et démarrez le service Nginx.

$ sudo systemctl enable nginx --now

Étape 3 - Installer PHP et les extensions

Pour notre tutoriel, nous devons installer la dernière version de PHP en utilisant le référentiel de Remi. La première étape consiste à récupérer le référentiel Epel.

$ sudo dnf install epel-release

Ensuite, installez le référentiel Remi.

Installation $ sudo dnf https://rpms.remirepo.net/enterprise/remi-release-8.rpm

Vérifiez les flux PHP disponibles.

$ dnf module list php -yLast metadata expiration check:0:00:12 ago on Fri 03 Dec 2021 09:39:32 AM UTC.Rocky Linux 8 - AppStreamName Stream Profiles Summaryphp 7.2 [d] common [d], devel, langage de script PHP minimalphp 7.3 commun [d], devel, langage de script PHP minimalphp 7.4 commun [d], devel, langage de script PHP minimalRemi's Modular repository for Enterprise Linux 8 - x86_64Name Stream Profiles Summaryphp remi-7.2 common [d], devel , langage de script PHP minimalphp remi-7.3 commun [d], devel, langage de script PHP minimalphp remi-7.4 common [d], devel, script PHP minimal languagephp remi-8.0 common [d], devel, langage de script PHP minimalphp remi-8.1 common [d], devel, langage de script PHP minimalHint :[d]efault, [e]nabled, [x]disabled, [i]nstalled 

La version par défaut est 7.2. Activez le référentiel PHP 8.0 de Remi.

$ sudo dnf module reset php$ sudo dnf module enable php:remi-8.0

Ensuite, installez PHP et ses extensions requises par Neos avec ImageMagick.

$ sudo dnf install php-fpm php-mbstring php-xml php-curl php-mysqlnd php-zip php-cli php-imagick ImageMagick php-intl

Vérifiez l'installation.

$ php --versionPHP 8.0.14 (cli) (construit :16 décembre 2021 03:01:07) ( NTS gcc x86_64 )Copyright (c) The PHP GroupZend Engine v4.0.14, Copyright (c) Zend Technologies 

Étape 4 - Installer et configurer le serveur MySQL

Nous utiliserons la base de données MySQL pour stocker les données. Le référentiel Appstream de Rocky Linux est livré avec la dernière version de MySQL.

Installez MySQL.

$ sudo dnf install mysql-server

Activez et démarrez le service MySQL.

$ sudo systemctl enable mysqld --now

Installation sécurisée de MySQL.

$ sudo mysql_secure_installation

Pour la première étape, il vous sera demandé si vous souhaitez configurer le plugin Validate Password, que vous pouvez utiliser pour tester la force de votre mot de passe MySQL. Choisissez Y procéder. Il vous sera demandé de choisir le niveau de validation du mot de passe à l'étape suivante. Choisissez 2 qui est le niveau le plus fort et exigera que votre mot de passe comporte au moins huit caractères et inclue un mélange de caractères majuscules, minuscules, numériques et spéciaux.

Sécurisation du déploiement du serveur MySQL.Connexion à MySQL à l'aide d'un mot de passe vierge.VALIDATE PASSWORD COMPONENT peut être utilisé pour tester les mots de passe et améliorer la sécurité. Il vérifie la force du mot de passe et permet aux utilisateurs de définir uniquement les mots de passe suffisamment sécurisés. Souhaitez-vous configurer le composant VALIDATE PASSWORD ?Appuyez sur y|Y pour Oui, n'importe quelle autre touche pour Non :YIl existe trois niveaux de politique de validation de mot de passe :Longueur FAIBLE>=8Longueur MOYENNE>=8, numérique, casse mixte et caractères spéciauxLongueur FORTE>=8, numérique, casse mixte, caractères spéciaux et fichier dictionnaireVeuillez entrer 0 =FAIBLE, 1 =MOYEN et 2 =FORT :2

Il vous sera demandé de choisir un mot de passe root à l'étape suivante. Choisissez un mot de passe fort qui répond aux exigences du plugin de validation de mot de passe. À l'étape suivante, il vous sera demandé si vous souhaitez continuer avec le mot de passe choisi. Appuyez sur y pour continuer.

Veuillez définir le mot de passe pour root ici.Nouveau mot de passe :Saisissez à nouveau le nouveau mot de passe :Force estimée du mot de passe :100Souhaitez-vous continuer avec le mot de passe fourni ?(Appuyez sur y|Y pour Oui, n'importe quelle autre touche pour Non) :O

Appuyez sur Y puis ENTER clé pour toutes les invites suivantes pour supprimer les utilisateurs anonymes et la base de données de test, désactiver les connexions root et charger les règles nouvellement définies.

...Supprimer les utilisateurs anonymes ? (Appuyez sur y|Y pour Oui, n'importe quelle autre touche pour Non) :YSuccès....Interdire la connexion root à distance ? (Appuyez sur y|Y pour Oui, n'importe quelle autre touche pour Non) :YSuccès....Supprimer la base de données de test et y accéder ? (Appuyez sur y|Y pour Oui, n'importe quelle autre touche pour Non) :Y - Suppression de la base de données de test...Succès. - Suppression des privilèges sur la base de données de test...Succès.Le rechargement des tables de privilèges garantira que toutes les modifications apportées jusqu'à présent prendront effet immédiatement...Recharger les tables de privilèges maintenant ? (Appuyez sur y|Y pour Oui, n'importe quelle autre touche pour Non) :YSuccès.Tout est fait !

Entrez dans le shell MySQL. Entrez votre mot de passe root pour continuer.

$ mysql -u root -p

Créer des neos utilisateur. Assurez-vous que le mot de passe répond aux exigences définies auparavant.

mysql> CRÉER UN UTILISATEUR 'neos'@'localhost' IDENTIFIÉ PAR 'Your_password2' ;

Créer neosdb base de données.

mysql> CREATE DATABASE neosdb CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

Accordez les privilèges d'utilisateur sur neosdb base de données.

mysql> ACCORDER TOUS LES PRIVILÈGES SUR neosdb.* À 'neos'@'localhost' ;

Quittez le Shell.

mysql> quitter

Étape 5 - Installer Composer

Composer est un outil de gestion des dépendances pour PHP et est requis par Neos CMS pour fonctionner.

Téléchargez le script d'installation de Composer.

$ curl -sS https://getcomposer.org/installer -o composer-setup.php

Exécutez les commandes suivantes pour vérifier le programme d'installation.

$ HASH=`curl -sS https://composer.github.io/installer.sig`$ echo $HASH$ php -r "if (hash_file('SHA384', 'composer-setup.php') ==='$HASH') { echo 'Installateur vérifié'; } else { echo 'Installateur corrompu'; unlink('composer-setup.php'); } echo PHP_EOL;"

Les commandes ci-dessus récupèrent la valeur de hachage du programme d'installation et la font correspondre à votre script téléchargé. Vous devriez voir la sortie suivante si le programme d'installation peut être exécuté en toute sécurité.

Installateur vérifié

Installez Composer.

$ sudo php composer-setup.php --install-dir=/usr/local/bin --filename=composer

Vérifiez l'installation en vérifiant sa version.

$ composer --versionComposer version 2.2.3 2021-12-31 12:18:53

Étape 6 - Installer Neos CMS

Créez un répertoire racine pour l'installation de Neos.

$ sudo mkdir -p /var/www/neos

Modifiez la propriété du répertoire racine pour l'utilisateur actuellement connecté.

$ sudo chown -R $USER:$USER /var/www/neos

Basculez vers le répertoire racine.

$ cd /var/www/neos

Utilisez Composer pour installer Neos et ses dépendances.

$ composer create-project --no-dev neos/neos-base-distribution .

N'oubliez pas le point à la fin de la commande qui indique à Composer de l'installer dans le répertoire courant. Vous pouvez recevoir les avertissements suivants lors de l'installation. Entrez y procéder. L'installation ne sera pas gênée à cause de cela.

 - Installation de neos/composer-plugin (2.1.3) :L'extraction d'archiveneos/composer-plugin contient un plugin Composer qui n'est actuellement pas dans votre configuration allow-plugins. Voir https://getcomposer.org/allow-pluginsFaites-vous confiance à "neos/composer-plugin" pour exécuter le code et souhaitez-vous l'activer maintenant ? (écrit "allow-plugins" dans composer.json) [y,n,d,?] y - Installation de composer/package-versions-deprecated (1.11.99.4) :l'extraction d'archivecomposer/package-versions-deprecated contient un plugin Composer qui n'est actuellement pas dans votre configuration allow-plugins. Voir https://getcomposer.org/allow-pluginsFaites-vous confiance à "composer/package-versions-deprecated" pour exécuter le code et souhaitez-vous l'activer maintenant ? (écrit "allow-plugins" dans composer.json) [y,n,d,?] y

Changez la propriété du répertoire racine en nginx .

$ sudo ./flow core:setfilepermissions $USER nginx nginx

Ajouter l'utilisateur actuellement connecté au nginx groupe.

$ sudo usermod -a -G nginx $USER

C'est tout pour le moment. Nous effectuerons les configurations restantes plus tard.

Étape 7 - Configurer les autorisations SELinux

Utiliser le chcon de SELinux commande pour modifier le contexte de sécurité du fichier pour le contenu Web servi à partir de /var/www/neos répertoire.

$ sudo chcon -t httpd_sys_content_t /var/www/neos -R$ sudo chcon -t httpd_sys_rw_content_t /var/www/neos -R

Configurez SELinux pour autoriser les connexions réseau pour le Neos CMS.

$ sudo setsebool -P httpd_can_network_connect on

Étape 8 - Installer et configurer SSL

Pour installer un certificat SSL avec Let's Encrypt, nous devons télécharger l'outil Certbot. Nous avons besoin du référentiel Epel pour installer Certbot, mais nous pouvons ignorer cette étape puisque nous l'avons installé plus tôt dans le didacticiel.

Installez Certbot.

$ sudo dnf install certbot

Arrêtez le serveur Nginx car il interfère avec l'outil Certbot.

$ sudo systemctl stop nginx

Générez un certificat SSL.

$ sudo certbot certonly --standalone --agree-tos --no-eff-email --staple-ocsp --preferred-challenges http -m [email protected] -d neos.example.com

La commande ci-dessus téléchargera un certificat dans /etc/letsencrypt/live/neos.example.com répertoire sur votre serveur.

Générer un groupe Diffie-Hellman certificat.

$ sudo openssl dhparam -out /etc/ssl/certs/dhparam.pem 2048

Créez un répertoire racine Web de défi pour le renouvellement automatique de Let's Encrypt.

$ sudo mkdir -p /var/lib/letsencrypt

Créez une tâche Cron pour renouveler le SSL. Il s'exécutera tous les jours pour vérifier le certificat et le renouveler si nécessaire. Pour cela, créez d'abord le fichier /etc/cron.daily/certbot-renew et ouvrez-le pour le modifier.

$ sudo nano /etc/cron.daily/certbot-renew

Collez le code suivant.

#!/bin/shcertbot renouveler --cert-name neos.example.com --webroot -w /var/lib/letsencrypt/ --post-hook "systemctl reload nginx"

Enregistrez le fichier en appuyant sur Ctrl + X et en saisissant Y lorsque vous y êtes invité.

Modifiez les autorisations sur le fichier de tâche pour le rendre exécutable.

$ sudo chmod +x /etc/cron.daily/certbot-renew

Étape 9 - Configurer Nginx et PHP

Configurer PHP-FPM

Ouvrez le fichier /etc/php-fpm.d/www.conf .

$ sudo nano /etc/php-fpm.d/www.conf

Nous devons définir l'utilisateur/groupe Unix de processus PHP sur nginx . Trouvez le user=www-data et group=www-data lignes dans le fichier et changez-les en nginx .

... ; Utilisateur/groupe de processus Unix ; Remarque :L'utilisateur est obligatoire. Si le groupe n'est pas défini, le groupe de l'utilisateur par défaut ; sera utilisé.; RPM :utilisateur apache choisi pour donner accès aux mêmes répertoires que httpduser =nginx; RPM :Garder un groupe autorisé à écrire dans le journal dir.group =nginx...

Enregistrez le fichier en appuyant sur Ctrl + X et en saisissant Y lorsque vous y êtes invité.

Démarrez le service PHP.

$ sudo systemctl start php-fpm

Configurer Nginx

Créez et ouvrez le fichier /etc/nginx/conf.d/neos.conf pour l'édition.

$ sudo nano /etc/nginx/conf.d/neos.conf

Collez-y le code suivant.

serveur { écouter 443 ssl http2 ; écouter [::]:443 ssl http2 ; nom_serveur neos.exemple.com ; access_log /var/log/nginx/neos.access.log ; error_log /var/log/nginx/neos.error.log; # SSL certificat_ssl /etc/letsencrypt/live/neos.example.com/fullchain.pem ; clé_certificat_ssl /etc/letsencrypt/live/neos.example.com/privkey.pem ; ssl_trusted_certificate /etc/letsencrypt/live/neos.example.com/chain.pem ; SSL_session_timeout 5 m ; ssl_session_cache partagé :MozSSL :10 m ; ssl_session_tickets désactivé ; ssl_protocols TLSv1.2 TLSv1.3 ; ssl_prefer_server_ciphers activé ; chiffrements_ssl -RSA-CHACHA20-POLY1305 :DHE-RSA-AES128-GCM-SHA256 :DHE-RSA-AES256-GCM-SHA384 ; ssl_ecdh_curve X25519:prime256v1:secp384r1:secp521r1; ssl_stapling activé ; ssl_stapling_verify activé ; ssl_dhparam /etc/ssl/certs/dhparam.pem ; résolveur 8.8.8.8 ; racine /var/www/neos/Web/; index index.php; location / { try_files $uri $uri/ /index.php?$args; } # Passer les scripts PHP à l'emplacement du serveur FastCGI ~ \.php$ { fastcgi_split_path_info ^(.+\.php)(.*)$; fastcgi_pass unix:/run/php-fpm/www.sock; # Dépend de la version PHP fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name ; fastcgi_param PATH_INFO $fastcgi_path_info ; fastcgi_param FLOW_REWRITEURLS 1 ; fastcgi_param FLOW_CONTEXT Production ; fastcgi_param X-Forwarded-For $proxy_add_x_forwarded_for ; fastcgi_param X-Forwarded-Port $proxy_port ; fastcgi_param REMOTE_ADDR $adresse_distante ; fastcgi_param REMOTE_PORT $port_distant ; fastcgi_param SERVER_ADDR $adresse_serveur ; fastcgi_param SERVER_NAME $http_host ; fastcgi_read_timeout 300 ; fastcgi_buffer_size 128k; fastcgi_buffers 256 16k; fastcgi_busy_buffers_size 256k ; fastcgi_temp_file_write_size 256k ; inclure fastcgi_params ; try_files $uri =404; } emplacement ~ /_Resources/ { access_log off ; log_not_found désactivé ; expire max ; if (!-f $request_filename) { rewrite "/_Resources/Persistent/([a-z0-9]{40})/.+\.(.+)" /_Resources/Persistent/$1.$2 break ; réécrire "/_Resources/Persistent(?>/[a-z0-9]{5}){8}/([a-f0-9]{40})/.+\.(.+)" /_Resources/ Pause persistante/1,2 $ ; } }}# appliquer le serveur HTTPS { écouter 80 ; écouter [::]:80 ; nom_serveur neos.exemple.com ; renvoie 301 https://$host$request_uri;}

Notez que le répertoire racine à utiliser dans la configuration Nginx est /var/www/neos/Web/ et non /var/www/neos/ .

Enregistrez le fichier en appuyant sur Ctrl + X et en saisissant Y lorsque vous y êtes invité une fois terminé.

Ouvrez le fichier /etc/nginx/nginx.conf pour l'édition.

$ sudo nano /etc/nginx/nginx.conf

Ajoutez la ligne suivante avant la ligne include /etc/nginx/conf.d/*.conf; .

server_names_hash_bucket_size 64 ;

Enregistrez le fichier en appuyant sur Ctrl + X et en saisissant Y lorsque vous y êtes invité.

Vérifiez la syntaxe du fichier de configuration Nginx.

$ sudo nginx -tnginx :la syntaxe du fichier de configuration /etc/nginx/nginx.conf est oknginx :le test du fichier de configuration /etc/nginx/nginx.conf est réussi

Redémarrez le service Nginx pour activer la nouvelle configuration.

$ sudo systemctl redémarrer nginx

Étape 10 - Installation complète de Neos

Lancez l'URL https://neos.example.com dans votre navigateur, et vous obtiendrez l'écran de configuration suivant.

Cliquez sur Aller à la configuration bouton pour continuer. Vous serez redirigé vers l'écran de connexion.

Exécutez la commande suivante dans le terminal pour obtenir votre mot de passe.

$ cat /var/www/neos/Data/SetupPassword.txtLe mot de passe de configuration est :SCPUYmmQUne fois que vous vous êtes connecté avec succès, ce fichier est automatiquement supprimé pour des raisons de sécurité. Assurez-vous d'enregistrer le mot de passe de configuration pour une utilisation ultérieure.

Saisissez le mot de passe et cliquez sur Connexion procéder. Neos vérifiera les bibliothèques d'images PHP.

Cliquez sur Suivant pour continuer. Il vous sera demandé d'entrer vos informations d'identification de base de données. Saisissez les informations d'identification créées à l'étape 4. Une fois les informations d'identification vérifiées, vous obtiendrez une Connexion établie message à l'écran.

Cliquez sur Suivant pour continuer . Il vous sera demandé de créer un compte administrateur. Remplissez vos coordonnées.

Cliquez sur Suivant procéder. Ensuite, il vous sera demandé de choisir si vous souhaitez importer un site de démonstration ou en créer un à partir de zéro. Si vous souhaitez créer un nouveau site à partir de zéro, vous devez remplir les deux cases. Par exemple, si vous créez un site d'actualités, remplissez les cases comme indiqué. N'oubliez pas que si vous partez de zéro, il n'y aura pas de CSS sur le site et vous devrez le faire vous-même.

Nom du package :Neos.HowtoForgeNewsNom du site :HowtoForgeNews

Pour notre tutoriel, nous nous en tiendrons au site de démonstration. Pour importer un site de démonstration, laissez tous les champs vides.

Cliquez sur Suivant procéder. Vous obtiendrez l'écran de fin de configuration.

Cliquez sur Aller au backend pour ouvrir l'écran de connexion au panneau de commande. Entrez votre nom d'utilisateur et votre mot de passe et cliquez sur Connexion pour ouvrir le panneau d'administration.

Depuis que nous avons importé le site de démonstration, la première étape consiste à supprimer le Try me page, permettant à quiconque de configurer des comptes principaux avec le droit de modifier le site Web.

Passez à Essayez-moi page dans la barre latérale gauche et cliquez sur Supprimer bouton mis en évidence dans la capture d'écran ci-dessous.

Cliquez sur la flèche orange à droite de Publié - En direct pour ouvrir le menu déroulant et cliquez sur Tout publier pour enregistrer les modifications.

Votre installation Neos CMS est prête à l'emploi.

Conclusion

Dans ce tutoriel, vous avez installé et configuré Neos CMS à l'aide d'une pile LEMP sur un serveur basé sur Rocky Linux 8. Si vous avez des questions, postez-les dans les commentaires ci-dessous.


Rocky Linux
  1. Comment installer Let's Encrypt SSL pour NGINX sur Rocky Linux 8

  2. Comment installer Nextcloud avec Nginx et Lets Encrypt SSL sur Ubuntu 20.04 LTS

  3. Comment installer Shopware avec NGINX et Lets Encrypt sur CentOS 7

  4. Comment installer Shopware avec NGINX et Lets Encrypt sur Fedora 30

  5. Comment installer WordPress avec LEMP (Nginx, MariaDB et PHP) sur Rocky Linux 8 ?

Comment installer Drupal 9 avec Nginx et Lets Encrypt SSL sur Debian 10

Comment installer WordPress avec LAMP et Lets Encrypt SSL gratuit sur Rocky Linux

Comment installer Joomla avec Nginx sur Rocky Linux

Comment installer Moodle avec Nginx et Lets Encrypt SSL sur Ubuntu 20.04

Comment installer Shopware avec NGINX et Lets encrypt sur Debian 9

Comment installer MyBB Forum avec Nginx et Lets Encrypt sur Debian 10