Outils pour utilisateurs

Outils du site


issue101:labo_linux_-_drupal_7

Labo Linux - Drupal sur un serveur Ubuntu 14.04

This article is an updated version of some notes I made years ago about installing Drupal on Ubuntu Server. From the Drupal website: “Drupal is a free software package that allows you to easily organize, manage and publish your content, with an endless variety of customization.” Drupal, Wordpress, and Joomla are among the most popular web content management systems. Drupal is very modular compared to other content management systems. Wordpress tends to include a lot of features right off the initial install whereas Drupal is more of a ‘start small and tailor to your needs’ system.

Cet article est une version mise à jour de notes que j'ai prises il y a pas mal d'années concernant l'installation de Drupal sur Ubuntu Server.

Extrait du site internet de Drupal : « Drupal est un paquet logiciel gratuit vous permettant d'organiser, de gérer et de publier facilement vos contenus avec des possibilités infinies de personnalisation. » Drupal, Wordpress et Joomla sont parmi les plus populaires des outils de gestion de contenu Web. Drupal est très modulaire en comparaison des autres outils de gestion de contenu. Wordpress a tendance à inclure un tas d'options dès l'installation alors que Drupal serait un système plutôt orienté vers « commencer petit et croître suivant vos besoins ».

I have a habit of forgetting tasks I don’t do everyday. When it’s a task that requires quite a few steps, I like to document the steps because I find that instructions provided by projects sometimes skip steps or make assumptions I don’t know. Installing and configuring Apache alone can be quite a task, particularly if you’re setting up multiple domains or have special library requirements. Add the complexity of learning MySQL (many people learn phpmyadmin) and things get a bit more challenging.

J'ai l'habitude d'oublier les choses que je ne fais pas quotidiennement. Quand c'est un travail qui contient plusieurs étapes, je préfère décrire chaque étape, car je trouve que les modes d'emploi fournis par les projets sautent parfois des étapes ou partent d'à priori dont je ne suis pas sûr. Installer et configurer Apache peut être ardu, particulièrement si vous mettez en place plusieurs domaines ou si vous avez besoin de bibliothèques spécifiques. Ajoutez à cela la difficulté d'apprendre MySQL (beaucoup de gens apprennent phpmyadmin) et l'ensemble commence à devenir compliqué.

For the purpose of this article, I’m assuming access to the command line of a fresh install of Ubuntu Server 14.04. Step #1 - Update Ubuntu Server:

Pour les besoins de cet article, je pars du principe qu'on travaille en ligne de commande sur une installation neuve d'Ubuntu Server.

Étape 1 – Mise à jour d'Ubuntu Server

sudo apt-get update

sudo apt-get dist-upgrade

Step #2 - Install Apache, MySQL, PHP, and some basic PHP libraries: sudo apt-get install apache2 mysql-server php5 php5-mysql php5-gd Several other dependencies are automatically added when you install Apache, MySQL and the basic PHP libraries. During the install process, you’ll be asked to enter a password for the root user to access MySQL databases. The password you use should be long and complex, especially if you plan on exposing the site to the Internet (as opposed to Intranet).

Étape 2 – Installer Apache, MySQL, PHP et quelques bibliothèques PHP de base

sudo apt-get install apache2 mysql-server php5 php5-mysql php5-gd

Quelques autres dépendances sont automatiquement ajoutées quand on installe Apache, MySQL, PHP et les bibliothèques de base de PHP.

Pendant le processus d'installation, on vous demandera d'entrer un mot de passe administrateur pour l'accès aux bases de données MySQL. Le mot de passe doit être long et complexe, particulièrement s'il est prévu de relier ce site à l'Internet (et pas uniquement à l'Intranet).

When the installation finishes you may notice a message similar to: “apache2 could not reliably determine the server’s fully qualified domain name, using 127.0.1.1. Set the ‘ServerName’ directive globally to suppress this message.” We need to set the fully qualified domain name (FQDN). Step #3 - Set the Fully Qualified Domain Name: The FQDN consists of 2 parts, the hostname of the computer running the server, and the domain name. There are a couple of ways you can solve the FQDN problem, the first is to set the FQDN with the 127.0.1.1 I.P. address in /etc/hosts (in this case my hostname is drupal8). 127.0.1.1 drupal8

Quand l'installation se termine, vous aurez un message du genre : “apache2 could not reliably determine the server’s fully qualified domain name, using 127.0.1.1. Set the ‘ServerName’ directive globally to suppress this message.” (« apache2 n'a pas pu déterminer le nom de domaine complètement qualifié (Fully Qualified Domain Name - FQDN) en utilisant 127.0.1.1. Renseigner globalement le « ServerName » [NdT : variable donnant le nom du serveur] pour supprimer ce message »).

Nous avons donc besoin de donner le nom de domaine complètement qualifié (FQDN).

Étape 3 – Donner une valeur au nom de domaine complètement qualifié

Le FQDN comporte deux parties : Le nom d'hôte de l'ordinateur sur lequel tourne le serveur et le nom de domaine. Il y a plusieurs façons de résoudre le problème du FQDN. La première est de paramétrer le FQDN avec l'adresse IP 127.0.1.1 dans /etc/hosts (dans ce cas, mon nom d'hôte est Drupal8) :

127.0.1.1 drupal8

The second, and preferred method is to set the ServerName directive in /etc/apache2/conf-available/fqdn.conf and enable the configuration with the apache program a2enconf. First set the ServerName directive in /etc/apache2/conf-available/fqdn.conf: ServerName localhost Next we need to enable the configuration file. It’s important to note that the conf file must end in .conf. We can enable the configuration file with a2enconf: sudo a2enconf fqdn Lastly we need to reload Apache: sudo service apache2 reload

La seconde façon, préférable, est de donner la valeur ServerName dans /etc/apache2/conf-available/fqdn.conf et de lancer la configuration avec le programme apache a2enconf. D'abord nous mettons les indications de ServerName dans le fichier /etc/apache2/conf-available/fqdn.conf :

ServerName localhost

Ensuite, nous devons valider le fichier de configuration. Il est important de noter que le fichier de configuration doit se terminer par .conf. Nous pouvons valider le fichier de configuration à l'aide de a2enconf :

sudo a2enconf fqdn

Puis nous devons recharger Apache :

sudo service apache2 reload

Step #4 - Download and unpack Drupal and move it to /var/www/html: For the purpose of this article I’m assuming you’re just running a single website on a single server. If you plan on running multiple sites on the server your setup will be a little different. For multi-site setups, you’ll need to know a bit about modifying apache configuration files in /etc/apache2/sites-available. For this single site, we’re just going to use the already enabled 000-default.conf file which points to /var/www/html for the web server.

Étape 4 – Télécharger et décompresser Drupal et le déplacer dans /var/www/html

Dans le cadre de cet article, nous partons du principe que nous installons un site Internet unique sur un seul serveur. Si vous projetez d'installer plusieurs sites sur le serveur, la configuration sera un peu différente. Pour des configurations multi-sites, vous devez savoir comment modifier le fichier de configuration dans /etc/apache2/sites-available. Pour ce site unique nous allons juste utiliser le fichier préconfiguré 000-default.conf qui pointe vers /var/www/html pour le serveur Internet.

The simplest method to download Drupal is to use wget. Version 7.39 is the current stable version at the time of this article. wget http://ftp.drupal.org/files/projects/drupal-7.39.tar.gz Next unpack Drupal 7: tar -zxvf drupal-7.39.tar.gz At this step, you may want to change into the drupal-7.39/ directory and read the INSTALL and README files. If you’re using PostgreSQL instead of MySQL, be sure to read the INSTALL.pgsql.txt file. If you run into problems installing with MySQL, you might also want to have a look at the INSTALL.mysql.txt file. The INSTALL.txt file gives an overview of an overall installation. If you’ve changed into the drupal-7.39 directory, make sure you’re above it for the next step, moving the drupal folders to /var/www/html:

La méthode la plus simple pour télécharger Drupal est d'utiliser wget. La version stable en cours au moment où j'écris cet article est la 7.39.

wget http://ftp.drupal.org/files/projects/drupal-7.39.tar.gz

Ensuite on décompresse Drupal 7 :

tar -zxvf drupal-7.39.tar.gz

Arrivé là, il serait bon d'aller dans le répertoire de Drupal-7.39 et de lire les fichiers INSTALL et README. Si vous utilisez PostgreSQL à la place de MySQL, assurez-vous de lire le fichier INSTALL.pgsql.txt. Si, lors de l'installation avec MySQL, vous rencontrez des problèmes, vous pourriez vouloir jeter un œil au fichier INSTALL.mysql.txt. Le fichier INSTALL.txt donne une vue générale d'une installation standard. Si vous vous êtes déplacé dans le dossier drupal-7.39, prenez bien garde de remonter d'un niveau dans l'arborescence avant l'étape suivante qui consiste à déplacer les dossiers drupal dans /var/www/html :

sudo mv drupal-7.39/* /var/www/html

sudo mv drupal-7.39/.htaccess /var/www/html

If your server is also your desktop machine (generally not a great idea), you can check it out in a web browser by typing http://localhost/ into the web browser. From another Linux machine, you can type in the hostname of your web server http://drupal/. Despite adding the drupal files to /var/www/html, we still get the apache splash screen because there’s an index.html file in the /var/www/html folder. Getting rid of this file will display the drupal installation when you navigate to the hostname/FQDN.

Si votre serveur est aussi votre ordinateur de bureau (plutôt déconseillé), vous pouvez le vérifier dans un navigateur en tapant http://localhost/. Depuis une autre machine Linux du réseau local, vous pouvez entrer le nom d'hôte de votre serveur http://drupal/. Malgré le fait que nous avons ajouté les fichiers drupal dans /var/www/html, nous obtenons toujours l'écran d'accueil d'Apache parce qu'il y a un fichier index.html dans le dossier /var/www/html. En supprimant ce fichier, on obtiendra l'écran d'installation de Drupal en se rendant à l'adresse hostname/FQDN.

Step #5 - Create the MySQL database to hold the drupal files: Before we can set drupal up, it needs a database to write to. MySQL is one of the most common databases in the world and a great choice here. You can use a web interface to mysql, but I’ve always preferred to just run mysql itself and issue commands: mysql -u root -p The -u switch tells mysql the user is the root user. The -p switch is used for passing the password, but if you don’t put one after the -p, it will prompt you for the password (a better idea if you work with other people around). A tip worth remembering is that mysql commands are terminated with a semicolon. At the mysql> prompt, create a database with whatever name you want, I tend to use d_sitename: create database d_test;

Étape 5 – Créer la base de données MySQL qui contiendra les fichiers Drupal

Avant de pouvoir démarrer Drupal, nous allons avoir besoin d'une base de données dans laquelle nous pourrons écrire. MySQL est l'une des bases de données les plus répandues dans le monde et un excellent choix en ce qui nous concerne. Vous pouvez utiliser une interface Internet pour commander MySQL, mais j'ai toujours préféré utiliser directement des commandes MySQL en lançant le logiciel dans un terminal :

mysql -u root -p

L'option -u prévient MySQL que l'utilisateur est l'administrateur. L'option -p est utilisée pour envoyer le mot de passe, mais, si vous ne mettez rien derrière, le programme vous demandera le mot de passe (utile s'il y a d'autres personnes autour de vous). Une chose dont il faut se souvenir est qu'une commande MySQL se termine toujours avec un point-virgule. À l'invite mysql>, créez une base de données portant le nom de votre choix ; personnellement, j'utilise en général d_nomdusite :

create database d_test;

If the command is successful, you’ll see a “Query OK, 1 row affected” message. To see what other databases exist, use the show databases; command. Next we want to grant rights to access the database to a user who exists on the system. In my Ubuntu installation I used the username charles. The proper rights for the database can be found in the INSTALL.mysql.txt file. grant select, insert, update, delete, create, drop, index, alter, create temporary tables on d_test.* TO ‘charles’@’localhost’ IDENTIFIED BY ‘MyExtra0rdinarilyL0ngPaddw0rd’; Don’t forget the .* after your database name. I did this several times when I was first starting to use mysql and couldn’t figure out why I kept getting an error.

Si la commande s'est bien passée, vous obtiendrez le message « Query OK, 1 row affected ». Pour voir s'il existe d'autres bases de données, utilisez la commande « show databases; ». Ensuite nous voulons attribuer des droits d'accès à la base à un utilisateur existant. Dans mon installation Ubuntu, j'utilise le nom Charles. Les droits valides pour une base de données sont listés dans le fichier INSTALL.mysql.txt.

grant select, insert, update, delete, create, drop, index, alter, create temporary tables on d_test.* TO ‘charles’@’localhost’ IDENTIFIED BY ‘MonMotDePasseExtraordinairementLong’;

N'oubliez pas le .* après le nom de la base de données. Je l'ai fait plusieurs fois quand je débutais avec MySQL et je n'arrivais pas à comprendre pourquoi j'avais toujours une erreur.

Next quit mysql by issuing the quit; command. If you run ls -al on the files in /var/www/html, you’ll notice they all have your username and group attached to them. Before installing drupal we want to change the group to the www-data group: sudo chown -R :www-data * sudo chown :www-data .htaccess If you want to specify a different username, specify it before the colon. For example:

Ensuite il faut sortir de MySQL par la commande « quit; ». Si vous faites un ls -al dans /var/www/html, vous verrez que tous les fichiers comportent votre nom d'utilisateur et votre groupe. Avant d'installer Drupal, il faut changer le groupe au groupe www-data :

sudo chown -R :www-data *

sudo chown :www-data .htaccess

Si vous souhaitez donner un autre nom d'utilisateur, spécifiez-le avant les deux points. Par exemple :

sudo chown -R charles:www-data *

Be a bit careful about the files you’re changing permissions on. Make sure you’re in the path where your drupal files are. Drupal also needs to be able to write to the configuration file in the sites/default directory, so temporary write permission needs to be given to this directory: sudo chmod a+w sites/default It’s important that this write permission be removed immediately after the installation or your server could get hacked!

Faites bien attention aux fichiers pour lesquels vous changez la permission. Soyez sûrs d'être dans le répertoire de vos fichiers Drupal. Drupal a également besoin de pouvoir écrire sur le fichier de configuration dans le répertoire sites/default ; on doit donc donner une permission d'écriture temporaire dans ce répertoire :

sudo chmod a+w sites/default

Il est important de supprimer cette permission d'écriture sitôt l'installation terminée pour éviter que le serveur ne soit piraté !

Drupal has a default.settings.php file in the sites/default directory that needs to be copied as settings.php. sudo cp sites/default/default.settings.php sites/default/settings.php (Note: the above command is all one line with a space between default.settings.php and sites/default/settings.php) The settings.php file also must be writeable, and as with the sites/default directory, you should remove write permission after the installation. sudo chmod a+w sites/default/settings.php

Dans le répertoire sites/default, Drupal a un fichier qu'il faut copier en tant que settings.php :

sudo cp sites/default/default.settings.php sites/default/settings.php

(Notez bien que la commande ci-dessus tient en une seule ligne avec une espace entre default.settings.php et sites/default/settings.php). Les permissions d'écriture doivent être données pour le fichier settings.php et, comme pour le répertoire sites/default, doivent être supprimées tout de suite après l'installation.

sudo chmod a+w sites/default/settings.php

We’re almost ready to install drupal, there’s one more step we need before running the installation PHP script, enabling mod_rewrite. Mod_rewrite is an apache module that enables rewriting of urls so they look more clean. For example: Instead of your browser going to yoursite.com/en/ref=as_ss_tl?, the web site points to yoursite.com/example. To accomplish this type: sudo a2enmod rewrite Because mod_rewrite affects apache a restart is needed. sudo service apache2 restart

Nous sommes presque prêts à installer Drupal, mais il faut activer mod-rewrite avant de lancer le script PHP d'installation. Mod_rewrite est un module Apache qui ré-écrit les url pour qu'elles soient plus simples. Ainsi plutôt que votre navigateur ne soit dirigé vers yoursite.com/en/ref=as_ss_tl?, le site pointera vers yoursite.com/example. Pour faire cela il faut taper :

sudo a2enmod rewrite

Comme le mode rewrite affecte Apache, il est nécessaire de le relancer.

sudo service apache2 restart

Step #6 - Start the drupal install from a browser: The next step is to run the install.php file from a browser. If you’ve eliminated the index.html (not index.php) file, you should be redirected to the install.php file when you open the URL to your web server. I use Linux almost exclusively most of the time, but if you’re using a Windows machine to access your Linux web server, you may need to tell the Windows machine hosts file which I.P. address your Linux server resides on. On Windows, this file is C:\WINDOWS\system32\drivers\etc\hosts. On Ubuntu/Xubuntu, just enter your server URL into the browser. For example: http://drupal/ Choose Standard Installation. English is the built-in language. Other languages can be added and there’s a link on how to do this on the installation page. The INSTALL.txt file covers installing other languages. For the moment click Save and Continue.

Étape 6 – Lancer l'installation de Drupal depuis un navigateur

L'étape suivante consiste à lancer l'installation de Drupal (le fichier install.php) depuis un navigateur. Si vous avez supprimé le fichier index.html (et pas index.php), vous devrez être redirigé vers le fichier install.php quand vous ouvrez l'URL depuis votre serveur. J'utilise presque exclusivement Linux, mais si vous utilisez une machine Windows pour accéder à votre serveur Linux, vous devrez indiquer au fichier hôte de votre machine Windows à quelle adresse IP se trouve votre serveur Linux. Sur Windows ce fichier s'appelle C:\system32\drivers\etc\hosts. Sur Ubuntu/Xubuntu vous n'avez qu'à entrer l'URL de votre serveur dans votre navigateur. Par exemple http://drupal/

Choisissez l'installation standard. L'anglais est la langue par défaut. D'autres langues peuvent être ajoutées. Un lien vers la procédure à suivre se trouve sur la page d'installation. Le fichier INSTALL.txt explique comment installer d'autres langues. Pour le moment cliquer sur Save and Continue.

If all the steps above have been completed correctly you’ll see the Drupal database configuration screen. If write permission is not set on sites/default, or the settings.php file is missing from that directory, you’ll see an error message indicating so. Enter the database information from the earlier database you created into the database configuration page and click Save and Continue.

Si toutes les étapes ci-dessus se sont déroulées correctement, le masque de configuration de la base de données Drupal apparaîtra. Vous aurez un message d'erreur si les permissions d'écriture n'ont pas été données au répertoire sites/default, ou si le fichier settings.php est absent.

Entrez les informations de base de données en suivant celles que vous aviez indiquées précédemment [Ndt : sur la base MySQL] et cliquez sur Save and Continue.

At this point Drupal will write the settings to the settings.php config file. We can now safely remove write permissions on this file and the sites/default directory: sudo chmod go-w sites/default/settings.php sudo chmod go-w sites/default/ The last step in setting up our Drupal installation is to enter your site information, including the name of your site, the site e-mail address (the address that will send mail to users from), your admin username/password and admin email address (called the site maintenance account), the server’s default country and time-zone, and whether or not you want to check for drupal updates automatically and receive email notifications of releases (a good idea). Click Save and Continue. Now you can proceed to log into your newly created Drupal site.

Drupal va maintenant enregistrer les réglages dans le fichier de configuration settings.php. Le moment est venu de supprimer les permissions d'écriture sur ce fichier et sur le dossier sites/default :

sudo chmod go-w sites/default/settings.php

sudo chmod go-w sites/default/

La dernière étape dans le réglage de notre installation Drupal sera d'entrer les informations de votre site, y compris le nom, l'adresse courriel du site (l'adresse à partir de laquelle seront envoyés des courriels aux utilisateurs), vos nom et mot de passe administrateur, l'adresse courriel de l'administrateur (appelée le compte de maintenance du site), le pays et le fuseau horaire du serveur par défaut et le type de mise à jour que vous souhaitez pour Drupal : soit automatique soit manuelle par le biais d'avertissements que vous recevrez par courriel à chaque mise à jour (une bonne solution). Cliquez sur Save and Continue.

Vous pouvez maintenant vous connecter sur votre nouveau site Drupal.

This article has covered a basic installation of Drupal. Some of the concepts, such as creating a mySQL database, enabling mod_rewrite, installing PHP and PHP libraries will be useful installing other content management systems and wikis. It’s a complex process and although the INSTALL.txt files are available, I always found I needed to write down my own steps to remember the steps I got stuck on. If you get stuck during the process of installing Drupal, there are several good resources: • The INSTALL.txt and README.txt files in the drupal-7.39/ directory • Drupal’s Quick Install for Beginners: https://www.drupal.org/documentation/install/beginners • Apache virtual hosts examples: http://httpd.apache.org/docs/2.2/vhosts/examples.html • 2bits.com - Besides having developed more than 30 modules for Drupal and being a server tuning company, 2bits has a lot of useful articles on Drupal - http://2bits.com/contents/articles

Cet article traite d'une installation basique de Drupal. Certain des principes tels que la création d'une base de données MySQL, la mise en place de mod-rewrite, l'installation de PHP et des bibliothèques PHP seront utiles pour installer d'autres systèmes de gestion de contenu et des wiki. C'est un processus complexe et, bien que les fichiers INSTALL.txt soient disponibles, j'ai toujours eu besoin d'écrire ma propre liste d'étapes pour me souvenir de celles qui m'ont posé problème.

Si vous vous trouvez bloqué durant l'installation de Drupal, il existe un certain nombre de bonnes sources d'information :

• Les fichiers INSTALL.txt et README.txt dans le répertoire drupal-7.39/

• Installation rapide de Drupal pour les débutants : https://www.drupal.org/documentation/install/beginners

• Les exemples d'hôtes virtuels pour Apache : http://httpd.apache.org/docs/2.2/vhosts/examples.html

• 2bits.com. Au-delà du fait d'avoir développé plus de 30 modules pour Drupal et d'être une entreprise de mise au point de serveurs, 2bits a un tas d'articles très utiles sur Drupal - http://2bits.com/contents/articles

issue101/labo_linux_-_drupal_7.txt · Dernière modification : 2015/10/11 14:17 de fcm_-_ekel