Nous continuons d'élargir notre marché. Récemment, nous avons expliqué comment , et cette semaine, Drupal est apparu sur notre marché.
Nous vous expliquons pourquoi nous l'avons choisi et comment l'image a été créée.
Drupal — une plateforme pratique et puissante pour créer tout type de sites : des microsites et blogs aux grands projets sociaux, utilisée également comme base pour des applications web, écrite en PHP et utilisant des bases de données relationnelles comme stock.
Drupal 9 comprend toutes les fonctionnalités mises en œuvre dans la version 8.9. La principale différence entre la version 9 et la version 8 est que des mises à jour et correctifs de sécurité seront publiés pour la plateforme après novembre 2021. De plus, la version 9 simplifie le processus de mise à jour, rendant le passage de la version 8 encore plus facile.
Exigences du serveur
Pour utiliser Drupal, il est recommandé d'avoir 2 Go de RAM et 2 cœurs CPU.
Les fichiers principaux de Drupal occupent environ 100 Mo, vous aurez besoin d’espace supplémentaire pour stocker les images, la base de données, les thèmes, les modules supplémentaires et les sauvegardes, ce qui dépendra de la taille de votre site.
Pour Drupal 9, PHP 7.4 ou une version ultérieure est requis avec une restriction minimale (memory_limit) sur la mémoire de 64 Mo, et si vous utilisez des modules supplémentaires, il est recommandé de fixer cela à 128 Mo.
En tant que serveur web, Drupal peut utiliser Apache ou Nginx, et comme base de données MySQL, PostgreSQL ou SQLite.
Nous allons installer Drupal en utilisant Nginx et MySQL.
Installation
Mettons à jour les paquets installés vers la dernière version :
sudo dnf update -yAjoutons une autorisation permanente pour le trafic entrant sur les ports http/80 et https/443 :
sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --permanent --add-service=httpsAppliquons les nouvelles règles du pare-feu :
sudo systemctl reload firewalldInstallons Nginx :
sudo dnf install nginx -yDémarrons et activons le serveur Nginx :
sudo systemctl start nginx
sudo systemctl enable nginx Comme actuellement le référentiel principal de CentOS utilise PHP 7.2, ajoutons le référentiel REMI avec PHP 7.4 (version minimale pour Drupal 9).
Pour cela, ajoutons le référentiel EPEL (nécessaire pour le référentiel REMI) :
rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpmAjoutons le référentiel REMI :
sudo dnf install -y https://rpms.remirepo.net/enterprise/remi-release-8.rpm
Activons le module php:remi-7.4 pour installer php 7.4 :
sudo dnf module enable php:remi-7.4 -yInstallons php-fpm et php-cli :
sudo dnf install -y php-fpm php-cliInstallons les modules PHP requis pour le bon fonctionnement de Drupal :
sudo dnf install -y php-mysqlnd php-date php-dom php-filter php-gd php-hash php-json php-pcre php-pdo php-session php-simplexml php-spl php-tokenizer php-xmlNous installerons également les modules PHP recommandés mbstring opcache :
sudo dnf install -y php-mbstring php-opcacheInstallons le serveur MySQL :
sudo dnf install mysql-server -yActivate and start the MySQL server :
sudo systemctl start mysqld
sudo systemctl enable mysqldComme nous faisons un modèle pour VDS, qui peuvent être lents, ajoutons un délai de démarrage du mysqld de 30 secondes, sinon il pourrait y avoir des problèmes de démarrage du serveur lors du premier chargement du système :
sudo sed -i '/Group=mysql/a
ExecStartPre=/bin/sleep 30
' /usr/lib/systemd/system/mysqld.serviceChangeons le groupe et l'utilisateur sous lesquels nginx fonctionnera en modifiant /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.confChangeons également le propriétaire du répertoire des sessions PHP en nginx :
sudo chown -R nginx. /var/lib/php/sessionNous allons supprimer les lignes de commentaires dans le fichier de configuration /etc/nginx/nginx.conf (pour éviter des doubles déclenchements pour sed) :
sudo sed -i -e '/^[ t]*#/d' /etc/nginx/nginx.confAjoutons les paramètres de compression gzip dans /etc/nginx/nginx.conf
sudo sed -i '/types_hash_max_size 2048;/a
gzip on;
gzip_static on;
gzip_types text/plain text/css application/json application/x-javascript text/xml application/xml application/xml+rss text/javascript application/javascript image/x-icon image/svg+xml application/x-font-ttf;
gzip_comp_level 9;
gzip_proxied any;
gzip_min_length 1000;
gzip_disable "msie6";
gzip_vary on;
' /etc/nginx/nginx.confAjoutons dans /etc/nginx/nginx.conf les configurations pour le fichier d'index index.php :
sudo sed -i '/ root /usr/share/nginx/html;/a
index index.php index.html index.htm;
' /etc/nginx/nginx.confAjoutons les paramètres pour le serveur par défaut concernant le traitement PHP via le socket php-fpm, désactivons les journaux pour les fichiers statiques, augmentons le temps d'expiration, désactivons les journaux d'accès et d'erreurs pour favicon.ico et robots.txt et interdisons l'accès aux fichiers .ht pour tous :
sudo sed -i '/ location / {/a
try_files $uri $uri/ /index.php?q=$uri&$args;
}
location ~* ^.+.(js|css|png|jpg|jpeg|gif|ico|woff)$ {
access_log off;
expires max;
}
location ~ .php$ {
try_files $uri =404;
fastcgi_pass unix:/run/php-fpm/www.sock;
fastcgi_index index.php;
include fastcgi_params;
fastcgi_intercept_errors on;
fastcgi_ignore_client_abort off;
fastcgi_connect_timeout 60;
fastcgi_send_timeout 180;
fastcgi_read_timeout 180;
fastcgi_buffer_size 128k;
fastcgi_buffers 4 256k;
fastcgi_busy_buffers_size 256k;
fastcgi_temp_file_write_size 256k;
}
location = /favicon.ico {
log_not_found off;
access_log off;
}
location = /robots.txt {
allow all;
log_not_found off;
access_log off;
}
location ~ /.ht {
deny all;' /etc/nginx/nginx.confInstallons wget requis pour l'installation de certbot :
sudo dnf install wget -yTéléchargeons le fichier exécutable certbot depuis le site officiel :
cd ~
wget https://dl.eff.org/certbot-autoDéplaçons certbot dans /usr/local/bin/ :
mv certbot-auto /usr/local/bin/certbot-autoEt définissons les droits et le propriétaire comme root :
chown root /usr/local/bin/certbot-auto
chmod 0755 /usr/local/bin/certbot-autoInstallons les dépendances de certbot et à ce stade, interrompons son fonctionnement (Réponses : Y, c) :
certbot-autoTéléchargeons depuis le site officiel l'archive de la dernière version de Drupal 9 :
cd ~
wget https://www.drupal.org/download-latest/tar.gzInstallons tar pour extraire l'archive :
sudo dnf install tar -ySupprimons les fichiers par défaut dans le répertoire /usr/share/nginx/html/ :
rm -rf /usr/share/nginx/html/*Décompressons les fichiers dans le répertoire du serveur web :
tar xf tar.gz -C /usr/share/nginx/html/Déplaçons les fichiers du sous-répertoire vers le répertoire racine du serveur web :
mv /usr/share/nginx/html/drupal-9.0.7/* /usr/share/nginx/html/Supprimons le sous-répertoire :
rm -rf /usr/share/nginx/html/drupal-9.0.7Supprimons l'archive avec les fichiers d'installation :
rm -f ./tar.gzDéfinissons nginx comme propriétaire des fichiers :
chown -R nginx. /usr/share/nginx/htmlÀ ce stade, nous allons éteindre le serveur et faire un snapshot :
shutdown -h nowAprès le démarrage du VDS à partir du snapshot, effectuons la configuration initiale du serveur MySQL en lançant le script :
mysql_secure_installationActiver le validateur de mots de passe :
Souhaitez-vous configurer le composant VALIDATE PASSWORD ? : yDéfinissons le mot de passe de l'utilisateur root MySQL :
Nouveau mot de passe :
Ressaisir le nouveau mot de passe :Supprimons les utilisateurs anonymes :
Supprimer les utilisateurs anonymes ? (Appuyez sur y|Y pour Oui, toute autre touche pour Non) : yInterdire la connexion root à distance :
Interdire la connexion root à distance ? (Appuyez sur y|Y pour Oui, toute autre touche pour Non) : ySupprimer la base de données test :
Supprimer la base de données test et y accéder ? (Appuyez sur y|Y pour Oui, toute autre touche pour Non) : yRecharger les tables de privilèges :
Recharger les tables de privilèges maintenant ? (Appuyez sur y|Y pour Oui, toute autre touche pour Non) : y Après cela, pour terminer l'installation, nous pouvons aller à l'adresse
À cette adresse, nous verrons la page d'installation de Drupal.
Choisissez la langue utilisée. Par exemple : français. Cliquez sur « Enregistrer et continuer »
Choisissez le profil d'installation (la démo est uniquement utilisée pour se familiariser avec le système). Dans notre cas, cela sera « standard ».
À la page suivante, définissons le nom de la base de données, par exemple « drupal ». Indiquons le nom d'utilisateur de la BDD root et le mot de passe défini lors de l'exécution de mysql_secure_installation. Cliquez sur « Enregistrer et continuer ».
Patientez jusqu'à la fin de l'installation et la mise à jour des traductions (ce processus peut prendre quelques minutes).
Nous indiquerons le nom du site, définirons l'email du site (au nom duquel les notifications seront envoyées), le nom d'utilisateur, 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 nous terminerons l'installation en cliquant sur « Enregistrer et continuer ».
Après cela, vous pouvez accéder au tableau de bord avec le nom d'utilisateur et le mot de passe créés pour l'administrateur Drupal.
Configuration de HTTPS (optionnelle)
Pour configurer HTTPS, le VDS doit avoir un nom DNS valide, indiquez dans
/etc/nginx/nginx.confla section serveur le nom du serveur (par exemple) :
server_name domainname.fr;Redémarrons nginx :
service nginx restartLançons certbot :
sudo /usr/local/bin/certbot-auto --nginxSaisissons notre e-mail, acceptons les conditions du service (A), l'abonnement à la newsletter (optionnelle) (N), choisissons les noms de domaine pour lesquels le certificat doit être émis (Entrée pour tous).
Si tout s'est bien passé, nous verrons un message confirmant l'émission réussie des certificats et la configuration du serveur :
Félicitations ! Vous avez activé avec succès ...Après cela, les connexions sur le port 80 seront redirigées vers 443 (https).
Ajoutons dans /etc/crontab pour la mise à jour automatique des certificats :
# Cert Renewal
30 2 * * * root /usr/local/bin/certbot-auto renew --post-hook "nginx -s reload"Configuration de la sécurité des hôtes de confiance (recommandée)
Cette configuration est destinée à résoudre le problème lié à la détermination dynamique de base_url, et vise à prévenir les attaques de l'en-tête HTTP HOST (lorsque votre site pense qu'il est un autre).
Pour cela, il faut indiquer les noms de domaine de confiance du site dans le fichier de configuration.
Dans le fichier
/usr/share/nginx/html/sites/default/settings.php décommentons ou ajoutons la configuration avec les motifs des noms de domaine actuels, par exemple :
$settings['trusted_host_patterns'] = [
'^www.mydomain.fr$',
];
Installation de PHP APCu (RECOMMANDÉ)
Drupal prend en charge APCu — Alternative PHP User Cache, les versions 8 et 9 utilisent plus intensément APCu comme cache local à court terme que les versions précédentes. La taille du cache par défaut (32 Mo) conviendra à la plupart des sites et ne peut pas dépasser 512 Mo.
Pour l'activer, installons le module PHP APCu :
dnf -y install php-pecl-apcuRedémarrons nginx et php-fpm :
service nginx restart
service php-fpm restartEn cas d'utilisation de la langue russe et d'APCu avec la taille de mémoire recommandée pour le cache, vous pouvez voir un avertissement dans le tableau de bord indiquant que la taille de la mémoire allouée au cache diffère de celle recommandée, mais en réalité tout fonctionne correctement, et cet avertissement incorrect sera probablement corrigé dans les prochaines mises à jour.
Ou si l'avertissement est gênant, vous pouvez utiliser .
Nous tenons à vous rappeler que vous pouvez également créer une image pour nous
Il y a trois façons de participer.
Préparez l’image vous-même et recevez 3000 roubles sur votre solde
Si vous êtes prêt à vous lancer et à créer l'image qui vous manque, nous vous créditerons 3000 roubles sur votre solde interne — que vous pourrez dépenser pour des serveurs.
Comment créer votre image :
- Créez un compte chez nous sur le
- Informez le support que vous allez créer et tester des images
- Nous vous créditerons 3000 roubles et activerons la possibilité de créer des snapshots
- Commandez un serveur virtuel avec un système d'exploitation propre
- Installez le logiciel sur ce VPS et configurez-le
- Rédigez un guide ou un script pour déployer le logiciel
- Créez un snapshot pour le serveur configuré
- Commandez un nouveau serveur virtuel en choisissant dans le menu déroulant le snapshot créé précédemment comme « Modèle de serveur »
- En cas de création réussie du serveur, transmettez les documents obtenus à l'étape 6 au support technique
- En cas d'erreur, vous pouvez demander au support la raison et répéter la configuration
Pour les propriétaires d'entreprise : proposez votre logiciel
Si vous êtes un développeur de logiciels qui se déploie et s'utilise sur VPS, nous pouvons vous inclure dans notre marketplace. Ainsi, nous pouvons vous aider à attirer de nouveaux clients, du trafic et de la notoriété.
Dites-nous dans les commentaires quel type d'image vous manque ?
Et nous le préparerons nous-mêmes
Source : habr.com
