Installer WordPress avec Nginx sous Debian 8 (Jessie)

Vérifier les pré-requis pour WordPress 4.8

Configuration recommendée :

  • PHP version 7 ou plus : 7.1.7
  • MySQL version 5.6 ou plus OU MariaDB version 10.0 ou plus : 10.1.25
  • Le module mod_rewrite pour Apache : Non (Nginx)
  • HTTPS support : oui

Vérifier la version de PHP

:$ php --version
PHP 7.1.7-1+0~20170711133844.5+jessie~1.gbp5284f4 (cli) (built: Jul 11 2017 14:13:18) ( NTS )
Copyright (c) 1997-2017 The PHP Group
Zend Engine v3.1.0, Copyright (c) 1998-2017 Zend Technologies
with Zend OPcache v7.1.7-1+0~20170711133844.5+jessie~1.gbp5284f4, Copyright (c) 1999-2017, by Zend Technologies

Vérifier la version de MySQL

:$ mysql --version
mysql  Ver 15.1 Distrib 10.1.25-MariaDB, for debian-linux-gnu (x86_64) using readline 5.2

Créer la base de donnée de WordPress dans MariaDB

Créer une base de donnée ‘wordpress’ avec l’utilisateur ‘wordpress’ comme administrateur. PASSWORD doit être remplacé avec le véritable mot de passe de l’utilisateur.

:$ mysql -u root -p
MariaDB [(none)]> CREATE USER 'wordpress'@'localhost' IDENTIFIED BY 'PASSWORD';
CREATE DATABASE IF NOT EXISTS wordpress;
GRANT ALL PRIVILEGES ON wordpress.* TO 'wordpress'@'localhost' IDENTIFIED BY 'PASSWORD';
MariaDB [(none)]> quit

Télécharger et installer les fichiers WordPress

Télécharger la version française de WordPress (2) dans le répertoire racine du site web. Remplacer /mon_site_web/www avec le chemming du répertoire devant contenir wordpress.

:$ cd /mon_site_web/www
:$ wget https://fr.wordpress.org/wordpress-4.8-fr_FR.zip

Décompresser l’archive

:$ unzip wordpress-4.8-fr_FR.zip
:$ rm wordpress-4.8-fr_FR.zip

Configurer WordPress

Renomer le fichier de configuration d’example pour l’utiliser comme fichier de configuration

:$ mv wordpress/wp-config-sample.php wordpress/wp-config.php

Editer le fichier wp-config.php. PASSWORD doit être remplacé avec le mot de passe de l’utilisateur ‘wordpress’. KEY_1 à KEY_8 doivent être remplacées avec des phrases aléatoires. Le service https://api.wordpress.org/secret-key/1.1/salt/ peut être utilisé pour générer les phrases.

:$ nano wordpress/wp-config.php
define('DB_NAME', 'wordpress');
define('DB_USER', 'wordpress');
define('DB_PASSWORD', 'PASSWORD');
define('DB_HOST', 'localhost');
define('DB_CHARSET', 'utf8');
define('DB_COLLATE', '');
define('AUTH_KEY',         'KEY_1');
define('SECURE_AUTH_KEY',  'KEY_2');
define('LOGGED_IN_KEY',    'KEY_3');
define('NONCE_KEY',        'KEY_4');
define('AUTH_SALT',        'KEY_5');
define('SECURE_AUTH_SALT', 'KEY_6');
define('LOGGED_IN_SALT',   'KEY_7');
define('NONCE_SALT',       'KEY_8');
$table_prefix  = 'wp_';
define('WP_DEBUG', false);

Configurer PHP et Nginx pour augmenter la taille des fichiers téléversés

Pour augmenter la taille de fichier qu’il est possible de téléverser dans WordPress, il faut modifier le fichier php.ini pour changer les limites (par défaut 2M).

  • memory_limit > 64M
  • upload_max_filesize > 16M
  • post_max_size > 16M
  • max_execution_time > 200

Editer la configuration de PHP. Pour connaitre le fichier php.ini à modifier il faut créer une page php en ajoutant la commande <?php phpinfo(); ?>.

:$ nano /etc/php/7.1/fpm/php.ini
memory_limit = 128M
upload_max_filesize = 16M
post_max_size = 16M
max_execution_time = 200

Redémarrer PHP-FPM pour prendre en compte les modifications

:$ /etc/init.d/php7.1-fpm restart

Modifier la configureation de Nginx pour augmenter la taille d’upload. Le fichier upload_max_filesize.conf est automatiquement inclus par le fichier de configuration nginx /etc/nginx/nginx.conf

:$ cat << EOF >  /etc/nginx/conf.d/upload_max_filesize.conf
    # set client body size to 2M (needed for WordPress upload)
    client_max_body_size 16M;
EOF

Vérifier la configuration

:$ nginx -t

Redémarré le serveur pour prendre en compte les changement

:$ /etc/init.d/nginx restart

Configurer Nginx

La configuration par défaut de mon serveur Nginx avec PHP permet de faire fonctionner WordPress de façons générale. Si votre installation comporte plusieurs site WordPress ou que vous souhaitez changer l’installation par défaut, il sera necessaire de changer la configuration de Nginx WordPress : Nginx.

Sinon, Vous pouvez vous rapporter aux tutoriels:

  • Installer Nginx 1.9.10 avec PHP7-fpm sur Debian 8 (Jesie)
  • Créer automatiquement des certificats SSL Let’s Encrypt

Finaliser l’instalation de WordPress

Ouvrir WordPress dans le navigateur web : https://binaryworld.fr.eu.org/wordpress/

Remplir le formulaire :

WordPress Wizard

Renforcer la sécurité

Renforcer les permissions des fichiers et des répertoire de WordPress. Remplacer mon_site_web/www/wordpress avec le chemmin du répertoire contenant les fichiers wordpress et websites avec le répertoire racine du site. Je force l’utilisation d’un répertoire racine websites dans le scripte pour éviter qu’une mauvaise configuration de la variable wppath impacte les fichiers du système.

:$ cat << EOF > wordpress_set_strong_permissions.sh
wppath='mon_site_web/www/wordpress'
htuser='www-data'
htgroup='www-data'
rootuser='root'

printf "Creating possible missing Directoriesn"
mkdir -p /websites/$wppath/wp-content/uploads
mkdir -p /websites/$wppath/wp-content/plugins

printf "chmod Files and Directoriesn"
find /websites/${wppath}/ -type f -print0 | xargs -0 chmod 0640
find /websites/${wppath}/ -type d -print0 | xargs -0 chmod 0750

printf "chown Directoriesn"
chown ${rootuser}:${htgroup} /websites/${wppath}
chown -R ${rootuser}:${htgroup} $(ls -1 /websites/${wppath} | awk -vnpath=/websites/${wppath}/ '{if($1 != "uploads"){print npath$1}}')
chown -R ${htuser}:${htgroup} /websites/${wppath}/wp-content/uploads/

EOF

Executer le script pour changer les permissions des fichier et des répertoire de WordPress

:$ ./wordpress_set_strong_permissions.sh

Pour pouvoir mettre à jour les plugins ou WordPress, sans utiliser SFTP, il faut changer les permissions des fichiers

:$ chown -R  www-data:www-data /websites/zebulon.freeboxos.fr/www/wordpress/

Configurer WordPress pour pouvoir envoyer des mails

Par défaut, WordPress permet de configurer l’interface pour envoyer des mails aux auteurs des articles lorsqu’un commentaire est posté.

Il existe plusieurs solutions pour permettre à WordPress d’envoyer des mails.
L’utilisation du plugin WP Mail SMTP par WPForms avec le gestionaire de mail Other SMTP me semble la plus facile pour peu que la configuration de votre nom d’utilisateur et mot de passe de votre compte email de votre fournisseur d’accès ne soit pas un problème pour vous.

Installer le plugin WordPress WP Mail SMTP via le menu Extensions de la console d’administration de WordPress cliquer sur le bouton Ajouter.

Rechercher le plugin WP Mail SMTP et l’installer puis l’activer.

Configurer le plugin depuis le menu Réglages -> WP Mail SMTP. Sélectioner Other SMTP et configurer les options spécifique à votre fournisseur de courrier électronique.

Pour laposte.net:

From email: mon_compte@laposte.net
From name: Mon nom
Mailer: Other SMTP
SMTP Host: smtp.laposte.net
Encryption: SSL
SMTP Port: 465
Auto TLS: On
Authentication: On
SMTP Username: mon_compte@laposte.net
SMTP Password: ********

Puis cliquer sauvegarder la configuration en cliquant sur le boutton Save settings

Il est possible de faire un test depuis l’onglet Email Test en haut de la page.

ATTENTION: Avec cette solution, si votre serveur se trouve derrière un boitier ADSL / routeur, ou équivalent, il faut configurer le boitier pour qu’il laisse sortir les messages SMTP sortant.


Liens

WordPress : Installing WordPress

WordPress : Version Française

WordPress : Nginx

EasyEngine : WordPress et Nginx

Laisser un commentaire