Download - Introduction à WordPress sous Nginx
![Page 1: Introduction à WordPress sous Nginx](https://reader033.vdocuments.site/reader033/viewer/2022052900/555ec658d8b42af67f8b4e79/html5/thumbnails/1.jpg)
Introduction à WordPress
sous Nginx
Maxime Jobin
WordCamp Montréal 2014
![Page 2: Introduction à WordPress sous Nginx](https://reader033.vdocuments.site/reader033/viewer/2022052900/555ec658d8b42af67f8b4e79/html5/thumbnails/2.jpg)
@maximejobinWordCamp Montréal 2014 - #wcmtl
Votre situation actuelle
• Votre site plante à cause du nombre de requêtes ?
• Votre site accueille plus de 5000 visiteurs par jour ?
• Vous souhaitez augmenter l’efficacité de votre site ?
• Vous souhaitez quitter le combo cPanel / Apache ?
• Vous êtes curieux par rapport à Nginx ?
• Vous vous êtes trompés de salle ?
![Page 3: Introduction à WordPress sous Nginx](https://reader033.vdocuments.site/reader033/viewer/2022052900/555ec658d8b42af67f8b4e79/html5/thumbnails/3.jpg)
@maximejobinWordCamp Montréal 2014 - #wcmtl
Maxime Jobin
www.maximejobin.com
@maximejobin
Utilisateur, Administrateur, Développeur et Formateur
![Page 4: Introduction à WordPress sous Nginx](https://reader033.vdocuments.site/reader033/viewer/2022052900/555ec658d8b42af67f8b4e79/html5/thumbnails/4.jpg)
@maximejobinWordCamp Montréal 2014 - #wcmtl
Nginx (Engine X)
Nginx est un serveur web servant à la gestion de sites
web à haut trafic.
nginx.org vs nginx.com
![Page 5: Introduction à WordPress sous Nginx](https://reader033.vdocuments.site/reader033/viewer/2022052900/555ec658d8b42af67f8b4e79/html5/thumbnails/5.jpg)
@maximejobinWordCamp Montréal 2014 - #wcmtl
Origine
C10k: Gestion simultanée de 10 000 connexions
Créé en 2002 par Igor Sysoev, la première
version a été lancée en 2004.
![Page 6: Introduction à WordPress sous Nginx](https://reader033.vdocuments.site/reader033/viewer/2022052900/555ec658d8b42af67f8b4e79/html5/thumbnails/6.jpg)
@maximejobinWordCamp Montréal 2014 - #wcmtl
Nginx vs Apache
NginxEvent-drivenEmpreinte faible
ApacheProcess-basedMPM (Multi-processing module).htaccess
Nginx & ApacheFichiers statiques, supporte SSL/TLS, Virtual hosts, Reverse proxying, Load balancing, Compression, Contrôles d’accès, URL rewriting, Custom logging, scripts Server-side, FLV streaming, FastCGI, etc.
![Page 7: Introduction à WordPress sous Nginx](https://reader033.vdocuments.site/reader033/viewer/2022052900/555ec658d8b42af67f8b4e79/html5/thumbnails/7.jpg)
@maximejobinWordCamp Montréal 2014 - #wcmtl
Benchmark: Apache vs Nginx
La différence est claire au niveau de la performance. ;-)
![Page 8: Introduction à WordPress sous Nginx](https://reader033.vdocuments.site/reader033/viewer/2022052900/555ec658d8b42af67f8b4e79/html5/thumbnails/8.jpg)
@maximejobinWordCamp Montréal 2014 - #wcmtl
Utilisateurs de Nginx
![Page 9: Introduction à WordPress sous Nginx](https://reader033.vdocuments.site/reader033/viewer/2022052900/555ec658d8b42af67f8b4e79/html5/thumbnails/9.jpg)
@maximejobinWordCamp Montréal 2014 - #wcmtl
Utilisateurs de Nginx
WordPress.com
Mensuellement14 milliards de pages vues42 millions de nouveaux articles51 millions de nouveaux commentaires
Chaque jour, des dizaines de milliers de nouveaux sites y sont créés.
Source: WordPress.com
![Page 10: Introduction à WordPress sous Nginx](https://reader033.vdocuments.site/reader033/viewer/2022052900/555ec658d8b42af67f8b4e79/html5/thumbnails/10.jpg)
@maximejobinWordCamp Montréal 2014 - #wcmtl
Objectifs
• Installation Nginx
• Installation de PHP
• Installation de PHP-FPM
• Installation de MySQL
• Installation de WordPress
Environnement utilisé: Ubuntu 14.04 via DigitalOcean.com
![Page 11: Introduction à WordPress sous Nginx](https://reader033.vdocuments.site/reader033/viewer/2022052900/555ec658d8b42af67f8b4e79/html5/thumbnails/11.jpg)
@maximejobinWordCamp Montréal 2014 - #wcmtl
Preparation
Achat de « monsite.com » et redirection vers l’adresse IP du serveur.
> apt-get update
> apt-get upgrade
![Page 12: Introduction à WordPress sous Nginx](https://reader033.vdocuments.site/reader033/viewer/2022052900/555ec658d8b42af67f8b4e79/html5/thumbnails/12.jpg)
@maximejobinWordCamp Montréal 2014 - #wcmtl
Installation de Nginx
> apt-get install nginx
Répertoires pour Nginx/etc/nginx
nginx.conf/etc/nginx/sites-available/etc/nginx/sites-enabled
Validation via adresse IP: http://66.77.88.99
![Page 13: Introduction à WordPress sous Nginx](https://reader033.vdocuments.site/reader033/viewer/2022052900/555ec658d8b42af67f8b4e79/html5/thumbnails/13.jpg)
@maximejobinWordCamp Montréal 2014 - #wcmtl
Commandes pour Nginx
> service nginx start Démarre Nginx
> service nginx stop Arrête Nginx
> service nginx restart Relance Nginx
> service nginx reload Recharge config
> /usr/sbin/nginx -t Test config
![Page 14: Introduction à WordPress sous Nginx](https://reader033.vdocuments.site/reader033/viewer/2022052900/555ec658d8b42af67f8b4e79/html5/thumbnails/14.jpg)
@maximejobinWordCamp Montréal 2014 - #wcmtl
Creation MonSite.com
> useradd -d /home/monsite -m monsite
> su monsite
> mkdir –p ~/www
> echo "Mon site!" > ~/www/index.html
> exit
![Page 15: Introduction à WordPress sous Nginx](https://reader033.vdocuments.site/reader033/viewer/2022052900/555ec658d8b42af67f8b4e79/html5/thumbnails/15.jpg)
@maximejobinWordCamp Montréal 2014 - #wcmtl
Configuration pour Nginx
À placer dans /etc/nginx/sites-available/monsite.com
server {
listen 80;
server_name www.monsite.com;
root /home/monsite/www;
index index.html index.php;
}
ifs are evil
![Page 16: Introduction à WordPress sous Nginx](https://reader033.vdocuments.site/reader033/viewer/2022052900/555ec658d8b42af67f8b4e79/html5/thumbnails/16.jpg)
@maximejobinWordCamp Montréal 2014 - #wcmtl
Tester Nginx pour monsite.com
> /usr/sbin/nginx -t
> service nginx reload
http://www.monsite.com
![Page 17: Introduction à WordPress sous Nginx](https://reader033.vdocuments.site/reader033/viewer/2022052900/555ec658d8b42af67f8b4e79/html5/thumbnails/17.jpg)
@maximejobinWordCamp Montréal 2014 - #wcmtl
Installation de PHP et MySQL
> apt-get install php5-cli
> apt-get install mysql-server mysql-client php5-mysql
![Page 18: Introduction à WordPress sous Nginx](https://reader033.vdocuments.site/reader033/viewer/2022052900/555ec658d8b42af67f8b4e79/html5/thumbnails/18.jpg)
@maximejobinWordCamp Montréal 2014 - #wcmtl
PHP-FPM
PHP-FPM sert d’intermédiaire pour que la requête reçue par Nginx soit interprétée par PHP.
> apt-get install php5-fpm
/etc/php5/fpm/php.ini
![Page 19: Introduction à WordPress sous Nginx](https://reader033.vdocuments.site/reader033/viewer/2022052900/555ec658d8b42af67f8b4e79/html5/thumbnails/19.jpg)
@maximejobinWordCamp Montréal 2014 - #wcmtl
Configuration de PHP-FPM
Créer un fichier monsite.conf dans /etc/php5/fpm/pool.d/ :[monsite]
user = monsitegroup = monsite
listen = /var/run/php5-fpm.monsite.socklisten.owner = www-datalisten.group = www-data
pm = dynamicpm.max_children = 75pm.start_servers = 10pm.min_spare_servers = 5pm.max_spare_servers = 20pm.max_requests = 500
![Page 20: Introduction à WordPress sous Nginx](https://reader033.vdocuments.site/reader033/viewer/2022052900/555ec658d8b42af67f8b4e79/html5/thumbnails/20.jpg)
@maximejobinWordCamp Montréal 2014 - #wcmtl
Configuration pour Nginx (suite!)
À placer dans /etc/nginx/sites-available/monsite.com à l’intérieur de server { … }
# Gestion des fichiers PHP (envoi vers PHP-FPM)
location ~ \.php$ {
try_files $uri =404;
fastcgi_pass unix:/var/run/php5-fpm.monsite.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
![Page 21: Introduction à WordPress sous Nginx](https://reader033.vdocuments.site/reader033/viewer/2022052900/555ec658d8b42af67f8b4e79/html5/thumbnails/21.jpg)
@maximejobinWordCamp Montréal 2014 - #wcmtl
On repart le tout…
> service php-fpm restart
> service nginx restart
Ajout d’un fichier pi.php dans /home/monsite/www<?php phpinfo(); ?>
Test: http://www.monsite.com/pi.php
![Page 22: Introduction à WordPress sous Nginx](https://reader033.vdocuments.site/reader033/viewer/2022052900/555ec658d8b42af67f8b4e79/html5/thumbnails/22.jpg)
@maximejobinWordCamp Montréal 2014 - #wcmtl
Base de données MySQL
> mysql -u root -p
> CREATE DATABASE monsite;
> CREATE USER 'umonsite'@'localhost' IDENTIFIED BY 'abcd';
> GRANT ALL PRIVILEGES ON monsite.* TO 'umonsite'@'localhost';
> FLUSH PRIVILEGES;
> quit
![Page 23: Introduction à WordPress sous Nginx](https://reader033.vdocuments.site/reader033/viewer/2022052900/555ec658d8b42af67f8b4e79/html5/thumbnails/23.jpg)
@maximejobinWordCamp Montréal 2014 - #wcmtl
Installons WordPress !!
> su monsite> cd ~/www> wget http://wordpress.org/latest.zip> unzip latest.zip> cd wordpress> mv * ../> cd ..> rm –Rf wordpress latest.zip
http://www.monsite.com
![Page 24: Introduction à WordPress sous Nginx](https://reader033.vdocuments.site/reader033/viewer/2022052900/555ec658d8b42af67f8b4e79/html5/thumbnails/24.jpg)
@maximejobinWordCamp Montréal 2014 - #wcmtl
Pour plus d’informations
http://www.maximejobin.com/wcmtl-2014
![Page 25: Introduction à WordPress sous Nginx](https://reader033.vdocuments.site/reader033/viewer/2022052900/555ec658d8b42af67f8b4e79/html5/thumbnails/25.jpg)
@maximejobinWordCamp Montréal 2014 - #wcmtl
Fin
Des questions ?