installer WordPress sous Debian

WordPress est à la base un moteur de blog qui s’est enrichi pour devenir un système de gestion de contenu (CMS).

Nous allons installer WordPress dans une Debian 7 (Wheezy). Pour faciliter la rédaction de mon document, nous réaliserons toutes les étapes en ligne de comande dans un terminal administrateur.

Prérequi WordPress

WordPress a besoin de:

  • Un Serveur HTTP, nous utiliserons Apache
  • Un serveur de base de donnée, nous utiliserons MySQL
  • PHP (language de programation pour produire des pages webs dynamiques

Apache

Normallement, si vous avez, lors de votre installation de Debian, coché la case d’installation du serveur HTTP, Apache devrait déjà être installé. Pour vérifier, lancer la commande apt-get update pour faire une mise à jour de l’état d’installation des packets, puis lancer aptitude search ‘apache2‘. Vous obtiendrez quelque chose comme ceci.

# aptitude search 'apache2'
i   apache2                                                      - Métapaquet pour le serveur HTTP Apache
p   apache2-dbg                                                  - symboles de débogage pour Apache
p   apache2-doc                                                  - Documentation du serveur HTTP Apache
v   apache2-mpm                                                  - 
p   apache2-mpm-event                                            - serveur HTTP Apache - modèle géré par événements
p   apache2-mpm-itk                                              - MPM multiutilisateur pour Apache 2.2
p   apache2-mpm-prefork                                          - serveur HTTP Apache - modèle traditionnel « non-threaded »
i A apache2-mpm-worker                                           - serveur HTTP Apache - modèle multi-processus
p   apache2-prefork-dev                                          - en-têtes de développement Apache - MPM sans fils d'exécution
p   apache2-suexec                                               - programme standard suexec pour le mod suexec d'Apache 2
p   apache2-suexec-custom                                        - programme suexec configurable pour mod_suexec de Apache 2
p   apache2-threaded-dev                                         - en-têtes de développement Apache - MPM avec fils d'exécution
i A apache2-utils                                                - programmes utilitaires pour serveurs web
i A apache2.2-bin                                                - fichiers binaires communs pour le serveur HTTP Apache
i A apache2.2-common                                             - serveur HTTP Apache (fichiers communs)
p   libapache2-authcassimple-perl                                - Apache2 module to authentificate trough a CAS server
....
p   libapache2-webauth                                           - Apache 2 modules for WebAuth authentication
p   libapache2-webkdc                                            - Apache 2 modules for a WebAuth authentication KDC
p   rt4-apache2                                                  - Apache 2 specific files for request-tracker4
p   torrus-apache2                                               - Universal front-end for Round-Robin Databases (for apache 2.x) (depreca

Si Apache est installé, vous devriez avoir un petit « i » en début de ligne avant ‘apache2‘. Donc pas besoin d’aller plus loin pour l’instant.

Si ce n’est pas le cas, lancer la commande:

#apt-get install apache2

C’est tout pour apache.

MySQL

Normallement, si vous avez, lors de votre installation de Debian, coché la case d’installation du serveur de base de données, ‘MysQL-Server’ devrait déjà être installé. Pour vérifier, lancer la commande apt-get update pour faire une mise à jour de l’état d’installation des packets, puis lancer aptitude search ‘mysql-server‘. Vous obtiendrez quelque chose comme ceci.

# aptitude search 'mysql-server'
p   mysql-server                                                 - MySQL database server (metapackage depending on the latest version)
p   mysql-server-5.5                                             - serveur de bases de données MySQL - binaires et configuration
v   mysql-server-core                                            - 
p   mysql-server-core-5.5                                        - binaires du serveur de bases de données MySQL
v   virtual-mysql-server                                         - 

Ici, nous voyons que le serveur MySQL n’est pas installé, indiqué par le ‘p‘ devant ‘mysql-server‘. Nous allons donc l’installer. Si chez vous, ‘mysql-server‘ est déjà installé, ne pas exécuter la commande d’installation suivante.

#apt-get install mysql-server

Pendant le processus d’installation, il va vous être demandé de compléter certainne information. Je vais mettre des copies d’écran pour vous accompagner dans le processus d’installation.

La première information demandée est le mot de passe administrateur de MySQL. Faire en sorte de bien le définir et ne pas le perdre.

MysqlServer

Valider et retaper le mot de passe administrateur pour vérifier qu’il n’y a pas eu d’erreur de frappe.

MySQLServeurConfirmationA la fin de l’installation de MySQL, si tout s’est bien passé, vous devriez obtenir ceci.

[ ok ] Starting MySQL database server: mysqld ..
[info] Checking for tables which need an upgrade, are corrupt or were 
not closed cleanly..
Paramétrage de libhtml-template-perl (2.91-1) ...
Paramétrage de mysql-server (5.5.38-0+wheezy1) ...

PHP

Php n’est pas sistématiquement installé. Pour vérifier, taper la commande que vous commencez à connaître: aptitude search ‘php5*’. Cela donne quelque chose comme ca:

# aptitude search 'php5*'
p   cakephp                                                      - MVC rapid application development framework for PHP
p   cakephp-instaweb                                             - Development webserver for CakePHP applications
....
p   php5                                                         - langage de script côté serveur, inclus dans du HTML (méta-paquet)
....
v   php5-mssql                                                   - 
p   php5-mysql                                                   - modules MySQL pour PHP5
p   php5-mysqlnd                                                 - MySQL module for php5 (Native Driver)
....
p   suphp-common                                                 - Common files for mod suphp
p   uphpmvault                                                   - upload recovery images to HP MediaVault2 via Ethernet

Les lignes, qui nous intéressent, sont php5 et php5-mysql. Elles doivent être installé (petit ‘i‘ au début de la ligne). Si ce n’est pas le cas, installer ces deux packets:

#apt-get install php5 php5-mysql

Voila! C’est tout pour les prérequis. Nous allons maintenant installer WordPress.

Worpess

installation de WordPress

Au jour d’aujourd’hui (18-01-2015), la version courante de WordPress est la version 4.1. Nous allons la télécharger, la décompresser, préparer la base de donnée et l’installer.

Téléchargement de WordPress

Lancer la commande suivante

#wget https://fr.wordpress.org/wordpress-4.1-fr_FR.zip

Pour vérifier que le fichier est bien téléchargé, lancer:

# ls -l
total 6896
-rw-r--r-- 1 user user      65 oct.   6 22:06 bash_profile
-rw-r--r-- 1 user user      61 oct.   6 00:08 bash_profile~
drwxr-xr-x 2 user user    4096 oct.   2 22:52 Bureau
drwxr-xr-x 2 user user    4096 oct.   2 22:52 Documents
drwxr-xr-x 2 user user    4096 oct.   2 22:52 Images
drwxrwxr-x 3 user user    4096 oct.   6 21:44 lorrainng
drwxr-xr-x 2 user user    4096 oct.   2 22:52 Modèles
drwxr-xr-x 2 user user    4096 oct.   2 22:52 Musique
drwxr-xr-x 2 user user    4096 oct.   2 22:52 Public
drwxr-xr-x 4 user user    4096 oct.  11 12:48 Téléchargements
drwxr-xr-x 2 user user    4096 oct.   2 22:52 Vidéos
-rw-r--r-- 1 root   root   7016086 sept.  4 19:05 wordpress-4.1-fr_FR.zip

Le fichier ‘wordpress-4.1-fr_FR.zip’ est bien présent. Nous pouvons continuer.

Si vous voullez télécharger la dernière version directement, aller sur le site de wordpress france et passer la sourie sur le bouton de téléchargement, cliquer droit et selectionner ‘copier l’adresse du lien‘. Puis télécharger cette dernière version en tapant:

#wget 'adresse du lien collée ici'

Décompression et autorisation de WordPress

Nous décompresserons WordPress dans le répertoire /var/www/ et lui donnerons les bonnes autorisations.

#unzip wordpress-4.1-fr_FR.zip -d /var/www

Changer le groupe des répertoires et fichier dans wordpress.

#chgrp -R www-data /var/www/

Pour pouvoir installer des modules, charger des images, faire des mises à jour, il faut changer les autorisations d’écriture du répertoire ‘wp-content‘ dans le répertoire d’installation de WordPress.

#chmod 2775 -R /var/www/wordpress/wp-content/

Préparation de la base de donnée

WordPress lors de l’installation ne crée pas la base de donnée qu’il va utiliser. Il faut donc la créer manuellement, ainsi que l’utilisateur qui va être autorisé à s’y connecter et faire les modifications nécessaires.

Lancer le client mysql en tant que root (-u = définit l’utilisateur, -p demande le mot de passe):

# mysql -u root -p
Enter password: 
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 43
Server version: 5.5.38-0+wheezy1 (Debian)

Copyright (c) 2000, 2014, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql>

Creation de la base de donnée ‘wordpress

mysql> CREATE DATABASE wordpress  DEFAULT CHARACTER SET utf8   DEFAULT COLLATE utf8_general_ci;
Query OK, 1 row affected (0.00 sec)

Création de l’utilisateur (wpdb) et attribution des droits sur la base de donnée (wordpress)

mysql> grant all privileges on wordpress.* to wpdb identified by 'password';
Query OK, 0 rows affected (0.00 sec)

Normallement, c’est bon. Nous allons tout de même vérifier que la connection à Mysql pour la base de donnée wordpress se fait bien. Quitons le client mysql pour nous reconnecter en tant que wpdb. Nous quitterons de nouveau le client MySQL pour revenir dans le shell.

mysql> exit
Bye
root@machine:/home/user# mysql -u wpdb -p wordpress
Enter password: 
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 44
Server version: 5.5.38-0+wheezy1 (Debian)

Copyright (c) 2000, 2014, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> exit

La base de donnée est prête, les droits sont données, nous allons maintenant réaliser l’installation de WordPress.

Installation de WordPress

wp-config.php

Pour faire au plus rapide, nous allons d’abord copier le fichier wp-config-sample.php vers wp-config.php et donner les droits en écriture.

#cp /var/www/wordpress/wp-config-sample.php /var/www/wordpress/wp-config.php
#chown root:www-data /var/www/wordpress/wp-config.php
#chmod 2755 /var/www/wordpress/wp-config.php

Nous allons maintenant modifier le fichier pour nos besoins.

PS: navigation dans nano => avec les flèches du clavier. Possibilité de coller du texte en placant le curseur au préalable à l’endroit désiré.

#nano /var/www/wordpress/wp-config.php

Chercher les lignes suivante:

// ** Réglages MySQL - Votre hébergeur doit vous fournir ces informations. ** //
/** Nom de la base de données de WordPress. */
define('DB_NAME', 'votre_nom_de_bdd');

/** Utilisateur de la base de données MySQL. */
define('DB_USER', 'votre_utilisateur_de_bdd');

/** Mot de passe de la base de données MySQL. */
define('DB_PASSWORD', 'votre_mdp_de_bdd');

/** Adresse de l'hébergement MySQL. */
define('DB_HOST', 'localhost');

/** Jeu de caractères à utiliser par la base de données lors de la création des tables. */
define('DB_CHARSET', 'utf8');

/** Type de collation de la base de données. 
  * N'y touchez que si vous savez ce que vous faites. 
  */
define('DB_COLLATE', '');

et sles modifier en:

// ** Réglages MySQL - Votre hébergeur doit vous fournir ces informations. ** //
/** Nom de la base de données de WordPress. */
define('DB_NAME', 'wordpress');

/** Utilisateur de la base de données MySQL. */
define('DB_USER', 'wpdb');

/** Mot de passe de la base de données MySQL. */
define('DB_PASSWORD', 'password');

/** Adresse de l'hébergement MySQL. */
define('DB_HOST', 'localhost');

/** Jeu de caractères à utiliser par la base de données lors de la création des tables. */
define('DB_CHARSET', 'utf8');

/** Type de collation de la base de données. 
  * N'y touchez que si vous savez ce que vous faites. 
  */
define('DB_COLLATE', '');

Tout en restant dans nano, il faut aussi modifier les données suivantes dans le même fichier:

Supprimer les lignes suivantes:

define('AUTH_KEY',         'put your unique phrase here'); 
define('SECURE_AUTH_KEY',  'put your unique phrase here'); 
define('LOGGED_IN_KEY',    'put your unique phrase here'); 
define('NONCE_KEY',        'put your unique phrase here'); 
define('AUTH_SALT',        'put your unique phrase here'); 
define('SECURE_AUTH_SALT', 'put your unique phrase here'); 
define('LOGGED_IN_SALT',   'put your unique phrase here'); 
define('NONCE_SALT',       'put your unique phrase here'); 

et les remplacer par les lignes générées dans le lien indiqué dans le commantaire juste au dessus des lignes à modifier (à la date du 11/10/14, https://api.wordpress.org/secret-key/1.1/salt/):

saltEnregistrer le fichier avec la combinaison des touches CTRL + O et quitter nano avec CTRL + x.

Voila, nous sommes prêt à lancer l’installation.

Installation de WordPress

Pour ce faire, allé dans votre navigateur préféré et taper l’adresse suivante: localhost/wordpress/wp-admin/install.php. Vous devriez avoir la page suivante.

WordpressInstallRemplir ce qu’il faut et valider. Vous obtiendrez la page suivante:

Cliquer sur connexion.

SuccesInstallWordpressVoila! c’est fini et installé.