WordPress est de loin la plateforme CMS la plus connue et utilisée de nous jours. Elle est installée sur presque un tiers des sites web mondiaux (29% du web l’utilise). Cet outil ne gère pas que des blogs, mais répond également à tous les besoins comme un site e-commerce, un site vitrine ou institutionnel, ou encore une page unique (one page).
Dans ce tutoriel, vous apprendre à installer vous même WordPress sur votre serveur dédié en 3 étapes avec Nginx ou Apache et MariaDB ou Mysql.
Avant de commer l’installation, vous aurez besoin d’un serveur web fonctionnel pour héberger le CMS. Vous pouvez vous référer à cet article pour installer LEMP sur votre debian ou ubuntu.
Vous aure également besoin d’installer curl et de télécharger la dernière version de WordPress :
apt install -y curl
wget https://www.wordpress.org/latest.tar.gz && tar xzvf latest.tar.gz -C /var/www/
Configuration de Nginx ou d’Apache
Selon vos préférences, vous pouvez utiliser Apache ou Nginx comme serveur web. Vous trouverez dans ce tutoriel les configurations pour les 2 outils.
Pour commencer, créez un dossier pour stocker les logs, et donnez les permissions à l’utilisateur www-data d’écrire dans celui ci.
Ensuite, éditer un nouveau vhost :
Pour Nginx :
mkdir /var/log/nginx/website/
chown -R www-data /var/log/nginx/website/
vi /etc/nginx/sites-availables/wordpress
server { server_name www.website.com; listen 80; port_in_redirect off; access_log /var/log/nginx/website/access.log; error_log /var/log/nginx/website/error.log warn; root /var/www/website/; index index.php; location / { try_files $uri $uri/ /index.php?$args; } # Cache static files for as long as possible location ~*.(ogg|ogv|svg|svgz|eot|otf|woff|mp4|ttf|css|rss|atom|js|jpg|jpeg|gif|png|ico|zip|tgz|gz|rar|bz2|doc|xls|exe|ppt|tar|mid|midi|wav|bmp|rtf|cur)$ { expires max; log_not_found off; access_log off; } # Deny public access to wp-config.php location ~* wp-config.php { deny all; } location ~ \.php$ { try_files $uri =404; include fastcgi_params; fastcgi_pass unix:/run/php/php7.0-fpm.sock; fastcgi_split_path_info ^(.+\.php)(.*)$; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; } }
Vous pouvez maintenant activer le vhost et relancer le service :
ln -s /etc/nginx/sites-available/wordpress /etc/nginx/sites-enabled/wordpress
service nginx restart
Pour Apache
mkdir /var/log/apache2/website/
chown -R www-data /var/log/apache2/website/
vi /etc/apache2/sites-available/wordpress.conf
<VirtualHost *:80> ServerName www.website.com DocumentRoot /var/www/wordpress/ <Directory /> Require all granted </Directory> CustomLog /var/log/apache2/website/access.log combined ErrorLog /var/log/apache2/website/error.log </VirtualHost>
Activez maintenant le module rewrite et votre nouveau vhost :
a2enmod rewrite && a2ensite wordpress
service apache2 reload
Configuration de MariaDB ou Mysql
Il vous faut créer une nouvelle base de données, et lui attribuer un nouveau utilisateur :
mysql -u root -p
create DATABASE website; GRANT ALL ON website.* TO 'user'@'localhost' IDENTIFIED BY 'password' WITH MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0; quit;
Configuration de WordPress
Le fichier de configuration principal est wp-config.php. Commencez par sécuriser celui ci et renseigner la configuration nécessaire pour votre base de données et les options principales :
echo '<?php' > /var/www/website/wp-config.php && curl https://api.wordpress.org/secret-key/1.1/salt/ >> /var/www/website/wp-config.php
vi /var/www/website/wp-config.php
define('DB_NAME', 'website'); define('DB_USER', 'user'); define('DB_PASSWORD', 'password'); define('DB_HOST', 'localhost'); define('DB_CHARSET', 'utf8'); define('DB_COLLATE', ''); $table_prefix = 'wp_'; define('WPLANG', 'fr_FR'); define('WP_DEBUG', false); if ( !defined('ABSPATH') ) define('ABSPATH', dirname(__FILE__) . '/'); require_once(ABSPATH . 'wp-settings.php');
Vous avez maintenant une nouvelle version par défaut de WordPress, disponible sur votre URL. Accédez y depuis votre navigateur internet préféré, et renseignez les quelques champs nécessaire pour finaliser votre installation. Il vous sera demandé le titre du blog, you accès administrateur et votre email.