Transcript
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 ?


Top Related