Nous continuons d'élargir notre marché. Nous avons récemment parlé de la façon dont créé une image Gitlab, et cette semaine Drupal est apparu sur notre marché.
Nous expliquons pourquoi nous l'avons choisi et comment l'image a été créée.
Drupal est une plate-forme pratique et puissante pour créer tout type de sites : des microsites et blogs aux grands projets sociaux, qui sert également de base aux applications Web, écrites en PHP et utilisant des bases de données relationnelles comme stockage de données.
Drupal 9 inclut toutes les fonctionnalités introduites dans la version 8.9. La principale différence entre la version 9 et la version 8 est que la plateforme continuera à recevoir des mises à jour et des correctifs de sécurité après novembre 2021. Également dans la version 9, le processus de mise à niveau a été simplifié, ce qui rend le processus de mise à niveau à partir de la version 8 encore plus facile.
Exigences du serveur
Pour utiliser Drupal, il est recommandé d'utiliser 2 Go de RAM et 2 cœurs CPU.
Les principaux fichiers Drupal font environ 100 Mo, vous aurez également besoin d'espace pour stocker les images, la base de données, les thèmes, les modules complémentaires et les sauvegardes, qui dépendront de la taille de votre site.
Drupal 9 nécessite PHP 7.4 ou supérieur avec une limitation minimale (memory_limit) à 64 Mo de mémoire, en cas d'utilisation de modules supplémentaires, il est recommandé d'installer 128 Mo.
Drupal peut utiliser Apache ou Nginx comme serveur Web et MySQL, PostgreSQL ou SQLite comme base de données.
Nous installerons Drupal en utilisant Nginx et MySQL.
Installation
Mettez à jour les packages installés vers la dernière version :
sudo dnf update -y
Ajoutons une autorisation permanente pour le trafic entrant vers les ports http/80 et https/443 :
Puisque PHP 7.2 est actuellement utilisé dans le référentiel principal Centos, ajoutons le référentiel REMI avec PHP 7.4 (la version minimale pour Drupal 9).
Pour cela, ajoutez le dépôt EPEL (requis par le dépôt REMI) :
Puisque nous créons un modèle pour VDS et qu'ils peuvent être lents, nous ajouterons un délai de démarrage de mysqld de 30 secondes, sinon il pourrait y avoir des problèmes avec le démarrage du serveur lors du démarrage initial du système :
sudo sed -i '/Group=mysql/a
ExecStartPre=/bin/sleep 30
' /usr/lib/systemd/system/mysqld.service
Modifions le groupe et l'utilisateur sous lesquels nginx s'exécutera en apportant des modifications à /etc/php-fpm.d/www.conf :
sudo sed -i --follow-symlinks 's/user = apache/user = nginx/g' /etc/php-fpm.d/www.conf
sudo sed -i --follow-symlinks 's/group = apache/group = nginx/g' /etc/php-fpm.d/www.conf
Changez le propriétaire du répertoire de session PHP en nginx en conséquence :
sudo chown -R nginx. /var/lib/php/session
Supprimons les lignes de commentaires du fichier de configuration /etc/nginx/nginx.conf (afin qu'il n'y ait pas de double hit pour sed) :
sudo sed -i -e '/^[ t]*#/d' /etc/nginx/nginx.conf
Ajoutez les paramètres de compression gzip à /etc/nginx/nginx.conf
Ajoutons les paramètres du fichier d'index index.php à /etc/nginx/nginx.conf :
sudo sed -i '/ root /usr/share/nginx/html;/a
index index.php index.html index.htm;
' /etc/nginx/nginx.conf
Ajoutons des paramètres pour le serveur par défaut : traitement PHP via le socket php-fpm, désactivez le journal pour les fichiers statiques, augmentez le délai d'expiration, désactivez le journal des accès et des erreurs pour favicon.ico et robots.txt, et refusez l'accès à .ht des fichiers pour tout le monde :
Supprimez l'archive avec les fichiers d'installation :
rm -f ./tar.gz
Définissez le propriétaire des fichiers nginx :
chown -R nginx. /usr/share/nginx/html
A ce stade, nous allons éteindre le serveur et prendre un instantané :
shutdown -h now
Après avoir démarré le VDS à partir du snapshot, nous effectuerons la configuration initiale du serveur MySQL en exécutant le script :
mysql_secure_installation
Activez le validateur de mot de passe :
Would you like to setup VALIDATE PASSWORD component? : y
Définissez le mot de passe de l'utilisateur root MySQL :
New password:
Re-enter new password:
Supprimez les utilisateurs anonymes :
Remove anonymous users? (Press y|Y for Yes, any other key for No) : y
Empêchons root de se connecter à distance :
Disallow root login remotely? (Press y|Y for Yes, any other key for No) : y
Supprimons la base de données de test :
Remove test database and access to it? (Press y|Y for Yes, any other key for No) : y
Rechargeons les tables de privilèges :
Reload privilege tables now? (Press y|Y for Yes, any other key for No) : y
Après cela, pour terminer l'installation, nous pouvons aller à adresse_ip_vps
A cette adresse, nous verrons une page avec l'installation de Drupal.
Sélectionnons la langue à utiliser. Par exemple : le russe. Cliquez sur « Enregistrer et continuer »
Choisissons un profil d'installation (la démo est utilisée uniquement pour se familiariser avec le système). Dans notre cas, que ce soit "standard".
Sur la page suivante, donnez un nom à la base de données, tel que « drupal ». Spécifiez le nom d'utilisateur de la base de données root et le mot de passe qui lui a été donné lors du démarrage de mysql_secure_installation. Cliquez sur "Enregistrer et continuer".
Attendons la fin de l'installation et de la mise à jour des traductions (le processus peut prendre plusieurs minutes).
Nous indiquerons le nom du site, définirons l'email du site (au nom duquel les notifications du site seront envoyées), le login, le mot de passe et l'email du compte administrateur Drupal. Nous définirons également le pays et le fuseau horaire dans les paramètres régionaux. Et terminez l'installation en cliquant sur "Enregistrer et continuer".
Après cela, vous pouvez accéder au panneau de configuration avec le login et le mot de passe de l'administrateur Drupal créés.
Paramètre HTTPS (facultatif)
Pour configurer HTTPS, le VDS doit avoir un nom DNS valide, spécifiez dans
/etc/nginx/nginx.conf
dans la section serveur le nom du serveur (par exemple) :
server_name domainname.ru;
Redémarrez nginx :
service nginx restart
Commençons certbot :
sudo /usr/local/bin/certbot-auto --nginx
Saisissez votre e-mail, acceptez les conditions générales d'utilisation (A), Abonnez-vous à la newsletter (facultatif) (N), sélectionnez les noms de domaine pour lesquels vous souhaitez émettre un certificat (Entrez pour tous).
Si tout s'est déroulé sans erreur, nous verrons un message concernant l'émission réussie des certificats et la configuration du serveur :
Congratulations! You have successfully enabled ...
Après cela, les connexions sur le port 80 seront redirigées vers 443 (https).
Ajoutez à /etc/crontab pour mettre à jour automatiquement les certificats :
Configuration de la sécurité des hôtes de confiance (recommandé)
Ce paramètre est destiné à résoudre le problème de la détection dynamique de base_url et à empêcher les attaques d'en-tête HTTP HOST (lorsque votre site pense qu'il s'agit de quelqu'un d'autre).
Pour ce faire, vous devez spécifier les noms de domaine de confiance du site dans le fichier de paramètres.
En fichier
/usr/share/nginx/html/sites/default/settings.php Décommentons ou ajoutons un paramètre avec des modèles de noms de sites réels, par exemple :
Drupal prend en charge APCu - Alternative PHP User Cache, les versions 8 et 9 utilisent APCu de manière plus intensive comme cache local à court terme que les versions précédentes. La taille du cache par défaut (32 Mo) convient à la plupart des sites et ne peut pas dépasser 512 Mo.
Pour l'activer, installez le module PHP APCu :
dnf -y install php-pecl-apcu
Redémarrez nginx et php-fpm :
service nginx restart
service php-fpm restart
Dans le cas de l'utilisation de la langue russe et de l'APCu avec la taille de mémoire cache recommandée, vous pouvez voir un avertissement dans le panneau de configuration indiquant que la taille de la mémoire cache allouée diffère de celle recommandée, mais en fait tout fonctionne correctement, et le mauvais l'avertissement sera très probablement corrigé dans les prochaines mises à jour.
Nous souhaitons vous rappeler que vous pouvez également créer une image pour nous
Il existe trois options pour participer.
Préparez vous-même l'image et obtenez 3000 roubles sur votre solde
Si vous êtes prêt à vous lancer immédiatement dans la bataille et à créer vous-même l'image qui vous manque, nous vous créditerons de 3000 XNUMX roubles sur votre solde interne - vous pourrez les dépenser sur des serveurs.
Dites au support que vous allez créer et tester des images
Nous vous créditerons 3000 XNUMX roubles et vous offrirons la possibilité de créer des instantanés
Commandez un serveur virtuel avec un système d'exploitation propre
Installez le logiciel sur ce VPS et configurez-le
Rédiger des instructions ou un script pour le déploiement de logiciels
Créer un instantané pour le serveur configuré
Commandez un nouveau serveur virtuel en sélectionnant l'instantané créé précédemment dans la liste déroulante "Modèle de serveur"
En cas de création réussie du serveur, transférez les matériaux reçus à l'étape 6 au support technique
En cas d'erreur, vous pouvez vérifier la raison auprès de l'assistance et répéter la configuration.
Pour les chefs d’entreprise : proposez votre logiciel
Si vous êtes un développeur de logiciels déployés et utilisés sur un VPS, nous pouvons vous inclure sur le marché. C’est ainsi que nous pouvons vous aider à attirer de nouveaux clients, du trafic et de la visibilité. ишите нам
Dites-nous dans les commentaires quelle image vous manque ?