Comment installer Drupal sur un serveur Ubuntu 14.04 avec Apache

introduction

Drupal est un système de gestion de contenu (CMS) populaire utilisé pour exécuter certains des plus grands blogs et sites Web sur Internet. En raison de la stabilité de la base, de l'adaptabilité de la plate-forme et de sa communauté active, Drupal reste un choix populaire après plus d'une décennie sur la scène.

Dans ce guide, nous expliquerons comment installer Drupal sur un serveur Ubuntu 14.04. Nous utiliserons Apache pour desservir notre site, car il s’agit de la configuration recommandée par l’équipe de Drupal.

Conditions préalables

Avant de commencer avec ce guide, vous aurez besoin d’un serveur Ubuntu 14.04 avec une configuration de base complète. Suivez nosUbuntu 14.04 initial server setup guide pour configurer un utilisateur non root avec des privilèges sudo.

Apache, PHP et MySQL devront également être configurés sur votre serveur. Vous pouvez apprendre comment configurer cela en suivant notre guide surgetting LAMP installed on Ubuntu 14.04.

Une fois que vous avez rempli les conditions ci-dessus, continuez avec ce guide.

Avant de récupérer les fichiers Drupal et de les installer dans notre répertoire Web, nous devons préparer notre système. Bien qu'Apache, PHP et MySQL aient déjà été installés, nous devons apporter quelques modifications supplémentaires et apporter des modifications à chacun de ces éléments pour notre installation.

Configurer un utilisateur MySQL et une base de données pour Drupal

La première chose à faire est de configurer un utilisateur MySQL et une base de données pour l’utilisation de notre installation Drupal. Il est important de configurer un utilisateur et une base de données dédiés pour des raisons de sécurité.

Pour commencer, connectez-vous à MySQL:

mysql -u root -p

Le mot de passe de l'utilisateur racine MySQL que vous avez configuré lors de l'installation de ce logiciel vous sera demandé.

Une fois que vous vous êtes authentifié avec succès, vous serez déposé dans une invite MySQL. Tout d’abord, créez une base de données que votre installation Drupal pourra utiliser. Nous appellerons notre base de donnéesdrupal par souci de simplicité:

CREATE DATABASE drupal;

Ensuite, vous devez créer un utilisateur que le logiciel Drupal peut utiliser pour se connecter à la base de données. Dans ce guide, nous appellerons notre utilisateurdrupaluser. Sélectionnez un mot de passe fort pour remplacer celui du bloc ci-dessous:

CREATE USER drupaluser@localhost IDENTIFIED BY 'password';

Nous avons maintenant une base de données et un utilisateur, mais notre utilisateur n’a pas encore l’autorisation d’exécuter des actions sur la base de données. Nous pouvons résoudre ce problème en accordant des autorisations à l'utilisateur. Drupal a besoin de plusieurs autorisations pour fonctionner correctement. Vous trouverez ci-dessous une bonne sélection qui permettra au logiciel de fonctionner sans exposer inutilement notre base de données:

GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP,INDEX,ALTER,CREATE TEMPORARY TABLES,LOCK TABLES ON drupal.* TO drupaluser@localhost;

Votre utilisateur a maintenant reçu l'autorisation d'administrer la base de données que nous avons créée. Pour mettre en œuvre ces modifications maintenant, nous devons vider les informations de privilège sur le disque:

FLUSH PRIVILEGES;

Maintenant, nous pouvons sortir de notre session interactive MySQL:

exit

Vous serez redirigé dans votre sessionbash.

Installer des modules PHP et peaufiner la configuration

Nous installerons ensuite quelques modules PHP nécessaires à l’application Drupal. Heureusement, ils se trouvent dans les dépôts par défaut d’Ubuntu.

Mettez à jour votre cache de paquet local et installez-les en tapant:

sudo apt-get update
sudo apt-get install php5-gd php5-curl libssh2-php

Nous allons également apporter quelques petites modifications à votre fichier de configuration PHP. Celles-ci sont recommandées par les développeurs Drupal. Ouvrez le fichier de configuration Apache PHP avec les privilèges sudo dans votre éditeur de texte:

sudo nano /etc/php5/apache2/php.ini

Recherchez la directiveexpose_php et la directiveallow_url_fopen et réglez-les toutes les deux sur «Off»:

. . .
expose_php = Off
. . .
allow_url_fopen = Off
. . .

Enregistrez et fermez le fichier lorsque vous avez terminé.

Activer la réécriture des fonctionnalités et des fichiers Htaccess dans Apache

Ensuite, nous devrions regarder Apache. Premièrement, nous voulons activer la fonctionnalité de réécriture. Cela permettra à notre site Drupal de modifier les URL en chaînes conviviales.

Les modules réels d'Apachemod_rewriteont déjà installés par défaut. Cependant, il n'est pas activé. Nous pouvons basculer le commutateur pour activer ce module en tapant:

sudo a2enmod rewrite

Cela activera le module au prochain redémarrage d’Apache. Avant de redémarrer Apache, nous devons ajuster la configuration de notre hôte virtuel pour permettre l'utilisation d'un fichier.htaccess. Ce fichier contiendra les règles de réécriture réelles et est inclus par défaut dans l'installation de Drupal.

Ouvrez le fichier virtualhost par défaut maintenant:

sudo nano /etc/apache2/sites-enabled/000-default.conf

Dans le bloc «VirtualHost», ajoutez un bloc de répertoire qui pointe vers notre racine Web. Dans ce bloc, définissez la directiveAllowOverride sur «Tous». Vous pouvez également ajouter une directiveServerName pour pointer vers votre nom de domaine et modifier la directiveServerAdmin pour refléter une adresse e-mail valide:


    . . .
    ServerName  example.com
    ServerAdmin [email protected]
    DocumentRoot /var/www/html

    
        AllowOverride All
    
    . . .

Enregistrez et fermez le fichier lorsque vous avez terminé.

Maintenant, il suffit de redémarrer le serveur Web pour implémenter nos modifications à Apache et PHP:

sudo service apache2 restart

Installer les fichiers Drupal

Maintenant que notre système est prêt, nous pouvons installer Drupal dans notre racine Web.

En fait, nous allons d'abord décompresser les fichiers dans notre répertoire personnel, puis les copier à l'emplacement approprié. Cela nous donnera un accès immédiat aux fichiers d'origine en cas de problème ou en cas de suppression accidentelle de fichiers par la suite.

Accédez auxDrupal download page et vérifiez la dernière version dans la section «Versions recommandées». Faites un clic droit sur le lientar.gz de la version qui vous intéresse et choisissez «copier l'adresse du lien» ou toute autre option similaire que votre navigateur propose.

De retour sur votre serveur, accédez à votre répertoire personnel et utilisezwget pour télécharger le fichier de projet en utilisant le lien que vous avez copié:

cd ~
wget http://ftp.drupal.org/files/projects/drupal-7.32.tar.gz

Votre lien aura probablement un numéro de version différent à la fin. Une fois le fichier téléchargé, extrayez le répertoire de l'application en tapant:

tar xzvf drupal*

Maintenant, déplacez-vous dans la structure de répertoires nouvellement extraite et utilisez l'utilitairersync pour copier en toute sécurité tous les fichiers dans le répertoire racine Web de votre serveur. Nous utilisons le point dans cette commande pour spécifier le répertoire actuel. Ceci est nécessaire pour copier certains fichiers cachés dont nous avons besoin:

cd drupal*
sudo rsync -avz . /var/www/html

Vous avez maintenant la version originale des fichiers dans un répertoire de votre dossier de base au cas où vous auriez besoin de les référencer. Nous allons passer dans le répertoire racine Web pour personnaliser notre installation:

cd /var/www/html

Ajustement des fichiers Drupal pour plus de sécurité et de facilité d’installation

Le script d'installation basé sur le Web nécessite que nous apportions des modifications à notre répertoire Drupal afin de terminer le processus correctement. Nous devrions au préalable éliminer cela de manière à ne pas avoir à basculer entre le navigateur Web et la ligne de commande.

Tout d'abord, nous devons créer un nouveau répertoire sous le sous-arbresites/default appeléfiles:

mkdir /var/www/html/sites/default/files

Ensuite, nous devrions copier le fichier de paramètres par défaut dans le nom de fichier utilisé par Drupal pour la configuration active:

cp /var/www/html/sites/default/default.settings.php /var/www/html/sites/default/settings.php

Ce fichier de paramètres actif nécessite temporairement des autorisations supplémentaires lors de la procédure d'installation. Nous devons pour le moment accorder des autorisations d’écriture au propriétaire du groupe (nous attribuerons momentanément le propriétaire du groupe à l’utilisateur Web). Nous allons le supprimer une fois l'installation réussie:

chmod 664 /var/www/html/sites/default/settings.php

Ensuite, nous devons donner la propriété de groupe de nos fichiers à l'utilisateur Web, qui dans Ubuntu estwww-data. Nous voulons donner à l'ensemble de l'installation Drupal ces propriétés de propriété:

sudo chown -R :www-data /var/www/html/*

Votre serveur est maintenant configuré de manière appropriée pour exécuter le script d'installation basé sur le Web.

Terminez la procédure d'installation basée sur le Web

Le reste de l'installation se fera dans votre navigateur Web. Ouvrez votre navigateur et accédez au nom de domaine ou à l’adresse IP de votre serveur:

http://server_domain_or_IP

Vous verrez la page initiale de la procédure d’installation de Drupal:

Drupal choose profile

À moins que vous n'ayez une raison de ne pas le faire, sélectionnez l'installation «Standard» et cliquez sur «Enregistrer et continuer». Cliquez sur les boutons Continuer suivants jusqu'à la page de configuration de la base de données. Renseignez les informations que vous avez utilisées lors de la configuration de votre base de données et de votre utilisateur.

Pour ce guide, nous avons utilisé une base de données appeléedrupal, un utilisateur de base de données nommédrupaluser et un mot de passe depassword. Vous devriez avoir sélectionné un mot de passe différent lors de la création de l'utilisateur. Cliquez à nouveau sur «Enregistrer et continuer» lorsque vous avez renseigné les détails de votre base de données:

Drupal database config

Note: Lorsque vous cliquez sur «Enregistrer et continuer», il est possible que vous soyez redirigé vers la même page de configuration de la base de données. Si cela se produit, actualisez simplement la page. La base de données sera configurée et le profil sera installé.

Vous verrez une boîte d’informations en haut de la page vous indiquant qu’il est maintenant approprié de modifier les autorisations du fichier de paramètres. Nous allons le faire momentanément. Pour l'instant, vous devez configurer des informations de base sur votre site. Remplissez les champs en utilisant les valeurs appropriées pour votre site:

Drupal configure site

Cliquez sur le bouton «Enregistrer et continuer» une dernière fois pour terminer l'installation. Vous pouvez maintenant visiter votre site en allant sur votre nom de domaine:

Drupal completed install

Vous avez terminé l'installation de Drupal avec succès.

Cependant, nous devons toujours rétablir les autorisations pour notre fichier de paramètres afin que les utilisateurs non autorisés ne puissent pas apporter de modifications. Sur votre serveur, restreignez l'accès en écriture au fichier en tapant:

chmod 644 /var/www/html/sites/default/settings.php

Cela devrait bloquer d'autres modifications dans le fichier de paramètres.

Dépannage

Si la dernière étape de l’installation de Drupal ne s’achève pas, consultez vos journaux d’erreur:

sudo tail /var/log/apache2/error.log

Si vous voyez une erreur comme celle-ci:

[Wed Nov 12 13:40:10.566144 2014] [:error] [pid 7178] [client 108.29.37.206:55238] PHP Fatal error:  Call to undefined function field_attach_load() in /var/www/html/includes/entity.inc on line 316, referer: http://12.34.56.78/install.php?profile=standard&locale=en
sh: 1: /usr/sbin/sendmail: not found

Cela indique que l'installation ne s'est pas terminée correctement. Il existe de nombreuses causes et corrections pour cette erreur documentée par Drupal:

Certains des correctifs les plus probables incluent la modification du fichier/etc/php5/apache2/php.ini pour augmenter lesmax_execution_time:

sudo nano /etc/php5/apache2/php.ini

Fichier:

max_execution_time = 300

Vous voudrez peut-être également essayer l'installation du navigateur dans un navigateur autre que Chrome, tel que Safari. Les paramètres de cookies du navigateur peuvent interférer avec l'installation.

Quoi qu'il en soit, une fois que vous avez implémenté votre correctif, vous devrez supprimer la base de données Drupal existante et le fichier/var/www/html/sites/default/settings.php existant, les remplacer par des copies par défaut et recommencer l'installation. If you have any data or settings worth preserving, make backups.

Pour ce faire, vous pouvez vous connecter à MySQL et àDROP DATABASE drupal;, puis suivre à nouveau la section de base de données précédente pour créer la base de données et lui accorder les privilèges.

Vous pouvez également exécuter à nouveaucp /var/www/html/sites/default/default.settings.php /var/www/html/sites/default/settings.php pour remplacer le fichier de paramètres. Assurez-vous d'exécuter la commandechmod 664 /var/www/html/sites/default/settings.php pour définir à nouveau les autorisations correctes.

Rendez-vous ensuite à votre adresse IP - éventuellement dans un autre navigateur - et tentez à nouveau l'installation finale.

Conclusion

Vous avez maintenant une base solide pour construire votre site Drupal. Drupal est incroyablement flexible, vous permettant de personnaliser l'apparence et les fonctionnalités du site en fonction de vos besoins et de ceux de vos utilisateurs.

Pour savoir où aller à partir d'ici, visitez notreDrupal tags page où vous pouvez trouver des tutoriels pour vous aider tout au long de votre chemin. Vous trouverez également une zone de questions et réponses pour obtenir de l'aide ou contribuer à la communauté.