25
Introduction à WordPress sous Nginx Maxime Jobin WordCamp Montréal 2014

Introduction à WordPress sous Nginx

Embed Size (px)

DESCRIPTION

Nginx est un serveur web puissant utilisé notamment par WordPress.com. Mieux adapté aux sites à haut trafic qu’Apache, Nginx peut non seulement augmenter la vitesse de votre site, mais également supporter un nombre plus élevé de visiteurs simultanément sans équipement additionnel. Apprenez-en davantage sur l’installation et la configuration d’un serveur Nginx pour rendre votre site avec WordPress encore plus efficace. Pour un tutoriel complet afin de créer une installation de WordPress sous Nginx: http://www.maximejobin.com/wordpress/introduction-nginx-wordpress/

Citation preview

Page 1: Introduction à WordPress sous Nginx

Introduction à WordPress

sous Nginx

Maxime Jobin

WordCamp Montréal 2014

Page 2: Introduction à WordPress sous Nginx

@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

@maximejobinWordCamp Montréal 2014 - #wcmtl

Maxime Jobin

www.maximejobin.com

[email protected]

@maximejobin

Utilisateur, Administrateur, Développeur et Formateur

Page 4: Introduction à WordPress sous Nginx

@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

@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

@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

@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

@maximejobinWordCamp Montréal 2014 - #wcmtl

Utilisateurs de Nginx

Page 9: Introduction à WordPress sous Nginx

@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

@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

@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

@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

@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

@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

@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

@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

@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

@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

@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

@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

@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

@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

@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

@maximejobinWordCamp Montréal 2014 - #wcmtl

Pour plus d’informations

http://www.maximejobin.com/wcmtl-2014

Page 25: Introduction à WordPress sous Nginx

@maximejobinWordCamp Montréal 2014 - #wcmtl

Fin

Des questions ?