SlideShare uma empresa Scribd logo
1 de 25
Baixar para ler offline
Introduction à WordPress
sous Nginx
Maxime Jobin
WordCamp Montréal 2014
@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 ?
@maximejobinWordCamp Montréal 2014 - #wcmtl
Maxime Jobin
www.maximejobin.com
m@ximejobin.com
@maximejobin
Utilisateur, Administrateur, Développeur et Formateur
@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
@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.
@maximejobinWordCamp Montréal 2014 - #wcmtl
Nginx vs Apache
Nginx
Event-driven
Empreinte faible
Apache
Process-based
MPM (Multi-processing module)
.htaccess
Nginx & Apache
Fichiers 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.
@maximejobinWordCamp Montréal 2014 - #wcmtl
Benchmark: Apache vs Nginx
La différence est claire au niveau de la performance. ;-)
@maximejobinWordCamp Montréal 2014 - #wcmtl
Utilisateurs de Nginx
@maximejobinWordCamp Montréal 2014 - #wcmtl
Utilisateurs de Nginx
WordPress.com
Mensuellement
14 milliards de pages vues
42 millions de nouveaux articles
51 millions de nouveaux commentaires
Chaque jour, des dizaines de milliers de
nouveaux sites y sont créés.
Source: WordPress.com
@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
@maximejobinWordCamp Montréal 2014 - #wcmtl
Preparation
Achat de « monsite.com » et redirection
vers l’adresse IP du serveur.
> apt-get update
> apt-get upgrade
@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
@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
@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
@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 ev
@maximejobinWordCamp Montréal 2014 - #wcmtl
Tester Nginx pour monsite.com
> /usr/sbin/nginx -t
> service nginx reload
http://www.monsite.com
@maximejobinWordCamp Montréal 2014 - #wcmtl
Installation de PHP et MySQL
> apt-get install php5-cli
> apt-get install mysql-server mysql-
client php5-mysql
@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
@maximejobinWordCamp Montréal 2014 - #wcmtl
Configuration de PHP-FPM
Créer un fichier monsite.conf dans /etc/php5/fpm/pool.d/ :
[monsite]
user = monsite
group = monsite
listen = /var/run/php5-fpm.monsite.sock
listen.owner = www-data
listen.group = www-data
pm = dynamic
pm.max_children = 75
pm.start_servers = 10
pm.min_spare_servers = 5
pm.max_spare_servers = 20
pm.max_requests = 500
@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;
}
@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
@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
@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
@maximejobinWordCamp Montréal 2014 - #wcmtl
Pour plus d’informations
http://www.maximejobin.com/wcmtl-2014
@maximejobinWordCamp Montréal 2014 - #wcmtl
Fin
Des questions ?

Mais conteúdo relacionado

Mais procurados

Réu technodejs
Réu technodejsRéu technodejs
Réu technodejsnaholyr
 
Retour d'expérience Varnish Cache chez Eurosport
Retour d'expérience Varnish Cache chez EurosportRetour d'expérience Varnish Cache chez Eurosport
Retour d'expérience Varnish Cache chez EurosportBenjamin Baumann
 
Node.js et les nouvelles technologies javascript
Node.js et les nouvelles technologies javascriptNode.js et les nouvelles technologies javascript
Node.js et les nouvelles technologies javascriptKhalid Jebbari
 
Meteor: you're going to love full-stack JavaScript. At last.
Meteor: you're going to love full-stack JavaScript. At last.Meteor: you're going to love full-stack JavaScript. At last.
Meteor: you're going to love full-stack JavaScript. At last.Arnaud Weil
 
[FR] C'est quoi une API ?
[FR] C'est quoi une API ?[FR] C'est quoi une API ?
[FR] C'est quoi une API ?OVHcloud
 
Le développement web : tour d'horizon
Le développement web : tour d'horizonLe développement web : tour d'horizon
Le développement web : tour d'horizonMicrosoft
 
Debian usage at BlaBlaCar - Debian Paris meetup
Debian usage at BlaBlaCar - Debian Paris meetupDebian usage at BlaBlaCar - Debian Paris meetup
Debian usage at BlaBlaCar - Debian Paris meetupJean Baptiste Favre
 
Etes vous prêts pour le succes ?
Etes vous prêts pour le succes ?Etes vous prêts pour le succes ?
Etes vous prêts pour le succes ?Steven VAN POECK
 
BlaBlaCar - Going Native !
BlaBlaCar - Going Native ! BlaBlaCar - Going Native !
BlaBlaCar - Going Native ! Erwann Robin
 
Meetup du 21 septembre 2017
Meetup du 21 septembre 2017Meetup du 21 septembre 2017
Meetup du 21 septembre 2017AFUP_Limoges
 
Bien qu'en ligne votre site web n'est probablement pas en production
Bien qu'en ligne votre site web n'est probablement pas en productionBien qu'en ligne votre site web n'est probablement pas en production
Bien qu'en ligne votre site web n'est probablement pas en productionMarc Boivin
 
Construire Des Applications Cloud Natives - SymfonyLive Paris 2016
Construire Des Applications Cloud Natives - SymfonyLive Paris 2016Construire Des Applications Cloud Natives - SymfonyLive Paris 2016
Construire Des Applications Cloud Natives - SymfonyLive Paris 2016Ori Pekelman
 
YLT paris js - mars 2015
YLT paris js - mars 2015YLT paris js - mars 2015
YLT paris js - mars 2015gaelmetais
 
NodeJs, une introduction
NodeJs, une introductionNodeJs, une introduction
NodeJs, une introductionToxicode
 
Optimiser WordPress
Optimiser WordPressOptimiser WordPress
Optimiser WordPressChi Nacim
 
Présentation de CakePHP, 22/04/2010
Présentation de CakePHP, 22/04/2010Présentation de CakePHP, 22/04/2010
Présentation de CakePHP, 22/04/2010Guillaume Sautereau
 

Mais procurados (20)

Réu technodejs
Réu technodejsRéu technodejs
Réu technodejs
 
Retour d'expérience Varnish Cache chez Eurosport
Retour d'expérience Varnish Cache chez EurosportRetour d'expérience Varnish Cache chez Eurosport
Retour d'expérience Varnish Cache chez Eurosport
 
Node.js et les nouvelles technologies javascript
Node.js et les nouvelles technologies javascriptNode.js et les nouvelles technologies javascript
Node.js et les nouvelles technologies javascript
 
Presentation Aegir
Presentation AegirPresentation Aegir
Presentation Aegir
 
Meteor: you're going to love full-stack JavaScript. At last.
Meteor: you're going to love full-stack JavaScript. At last.Meteor: you're going to love full-stack JavaScript. At last.
Meteor: you're going to love full-stack JavaScript. At last.
 
Python + ansible = ♥
Python + ansible = ♥Python + ansible = ♥
Python + ansible = ♥
 
Devoxx fr 2015 HAProxy
Devoxx fr 2015 HAProxyDevoxx fr 2015 HAProxy
Devoxx fr 2015 HAProxy
 
[FR] C'est quoi une API ?
[FR] C'est quoi une API ?[FR] C'est quoi une API ?
[FR] C'est quoi une API ?
 
Le développement web : tour d'horizon
Le développement web : tour d'horizonLe développement web : tour d'horizon
Le développement web : tour d'horizon
 
Debian usage at BlaBlaCar - Debian Paris meetup
Debian usage at BlaBlaCar - Debian Paris meetupDebian usage at BlaBlaCar - Debian Paris meetup
Debian usage at BlaBlaCar - Debian Paris meetup
 
Etes vous prêts pour le succes ?
Etes vous prêts pour le succes ?Etes vous prêts pour le succes ?
Etes vous prêts pour le succes ?
 
BlaBlaCar - Going Native !
BlaBlaCar - Going Native ! BlaBlaCar - Going Native !
BlaBlaCar - Going Native !
 
Meetup du 21 septembre 2017
Meetup du 21 septembre 2017Meetup du 21 septembre 2017
Meetup du 21 septembre 2017
 
Bien qu'en ligne votre site web n'est probablement pas en production
Bien qu'en ligne votre site web n'est probablement pas en productionBien qu'en ligne votre site web n'est probablement pas en production
Bien qu'en ligne votre site web n'est probablement pas en production
 
Construire Des Applications Cloud Natives - SymfonyLive Paris 2016
Construire Des Applications Cloud Natives - SymfonyLive Paris 2016Construire Des Applications Cloud Natives - SymfonyLive Paris 2016
Construire Des Applications Cloud Natives - SymfonyLive Paris 2016
 
YLT paris js - mars 2015
YLT paris js - mars 2015YLT paris js - mars 2015
YLT paris js - mars 2015
 
NodeJs, une introduction
NodeJs, une introductionNodeJs, une introduction
NodeJs, une introduction
 
Optimiser WordPress
Optimiser WordPressOptimiser WordPress
Optimiser WordPress
 
Optimiser wordpress
Optimiser wordpressOptimiser wordpress
Optimiser wordpress
 
Présentation de CakePHP, 22/04/2010
Présentation de CakePHP, 22/04/2010Présentation de CakePHP, 22/04/2010
Présentation de CakePHP, 22/04/2010
 

Semelhante a Introduction à WordPress sous Nginx

Integrons en mode continu
Integrons en mode continuIntegrons en mode continu
Integrons en mode continuneuros
 
WordCamp Lille 2018 : Comprendre et utiliser l'API REST de WooCommerce
WordCamp Lille 2018 : Comprendre et utiliser l'API REST de WooCommerceWordCamp Lille 2018 : Comprendre et utiliser l'API REST de WooCommerce
WordCamp Lille 2018 : Comprendre et utiliser l'API REST de WooCommerceVaisonet
 
Kiwiparty 2011 - Optimisation des sites internet
Kiwiparty 2011 - Optimisation des sites internetKiwiparty 2011 - Optimisation des sites internet
Kiwiparty 2011 - Optimisation des sites internetDevclic
 
Power shell saturday Paris 2017 Omiossec
Power shell saturday  Paris 2017 OmiossecPower shell saturday  Paris 2017 Omiossec
Power shell saturday Paris 2017 OmiossecOlivier Miossec
 
Alphorm.com Formation Apache - Le Guide Complet de l'administrateur
Alphorm.com Formation Apache - Le Guide Complet de l'administrateurAlphorm.com Formation Apache - Le Guide Complet de l'administrateur
Alphorm.com Formation Apache - Le Guide Complet de l'administrateurAlphorm
 
POC Notes de frais
POC Notes de fraisPOC Notes de frais
POC Notes de fraispprem
 
Intégration continue des projets PHP avec Jenkins
Intégration continue des projets PHP avec JenkinsIntégration continue des projets PHP avec Jenkins
Intégration continue des projets PHP avec JenkinsHugo Hamon
 
ASP.NET MVC 6
ASP.NET MVC 6ASP.NET MVC 6
ASP.NET MVC 6Microsoft
 
Core Web Vitals, les indicateurs de vitesse qui réconcilient UX et SEO
Core Web Vitals, les indicateurs de vitesse qui réconcilient UX et SEOCore Web Vitals, les indicateurs de vitesse qui réconcilient UX et SEO
Core Web Vitals, les indicateurs de vitesse qui réconcilient UX et SEOWeLoveSEO
 
Core web vitals pour unifier UX et SEO - Stephane Rios - SEO Camp'us paris 2020
Core web vitals pour unifier UX et SEO - Stephane Rios - SEO Camp'us paris 2020Core web vitals pour unifier UX et SEO - Stephane Rios - SEO Camp'us paris 2020
Core web vitals pour unifier UX et SEO - Stephane Rios - SEO Camp'us paris 2020SEO CAMP
 
Intellicore Tech Talk 10 - Apache Web Server Internals
Intellicore Tech Talk 10 - Apache Web Server InternalsIntellicore Tech Talk 10 - Apache Web Server Internals
Intellicore Tech Talk 10 - Apache Web Server InternalsNeil Armstrong
 
08 01 mise en place d'un serveur web
08 01 mise en place d'un serveur web08 01 mise en place d'un serveur web
08 01 mise en place d'un serveur webNoël
 
Meetup angular rshop
Meetup angular rshopMeetup angular rshop
Meetup angular rshopCyril Balit
 
Deployer PHP et MariaDB dans Azure - TechDays
Deployer PHP et MariaDB dans Azure - TechDaysDeployer PHP et MariaDB dans Azure - TechDays
Deployer PHP et MariaDB dans Azure - TechDaysChristophe Villeneuve
 
Déployez votre site PHP / MariaDB, simplement et rapidement dans Azure
Déployez votre site PHP / MariaDB, simplement et rapidement dans AzureDéployez votre site PHP / MariaDB, simplement et rapidement dans Azure
Déployez votre site PHP / MariaDB, simplement et rapidement dans AzureMicrosoft
 
Le meilleur pour votre site WordPress
Le meilleur pour votre site WordPressLe meilleur pour votre site WordPress
Le meilleur pour votre site WordPressAurélien Denis
 

Semelhante a Introduction à WordPress sous Nginx (20)

Nginx
NginxNginx
Nginx
 
Integrons en mode continu
Integrons en mode continuIntegrons en mode continu
Integrons en mode continu
 
WordCamp Lille 2018 : Comprendre et utiliser l'API REST de WooCommerce
WordCamp Lille 2018 : Comprendre et utiliser l'API REST de WooCommerceWordCamp Lille 2018 : Comprendre et utiliser l'API REST de WooCommerce
WordCamp Lille 2018 : Comprendre et utiliser l'API REST de WooCommerce
 
REX : la webperf chez RueDuCommerce
REX : la webperf chez RueDuCommerceREX : la webperf chez RueDuCommerce
REX : la webperf chez RueDuCommerce
 
Kiwiparty 2011 - Optimisation des sites internet
Kiwiparty 2011 - Optimisation des sites internetKiwiparty 2011 - Optimisation des sites internet
Kiwiparty 2011 - Optimisation des sites internet
 
Power shell saturday Paris 2017 Omiossec
Power shell saturday  Paris 2017 OmiossecPower shell saturday  Paris 2017 Omiossec
Power shell saturday Paris 2017 Omiossec
 
Alphorm.com Formation Apache - Le Guide Complet de l'administrateur
Alphorm.com Formation Apache - Le Guide Complet de l'administrateurAlphorm.com Formation Apache - Le Guide Complet de l'administrateur
Alphorm.com Formation Apache - Le Guide Complet de l'administrateur
 
POC Notes de frais
POC Notes de fraisPOC Notes de frais
POC Notes de frais
 
Intégration continue des projets PHP avec Jenkins
Intégration continue des projets PHP avec JenkinsIntégration continue des projets PHP avec Jenkins
Intégration continue des projets PHP avec Jenkins
 
ASP.NET MVC 6
ASP.NET MVC 6ASP.NET MVC 6
ASP.NET MVC 6
 
Core Web Vitals, les indicateurs de vitesse qui réconcilient UX et SEO
Core Web Vitals, les indicateurs de vitesse qui réconcilient UX et SEOCore Web Vitals, les indicateurs de vitesse qui réconcilient UX et SEO
Core Web Vitals, les indicateurs de vitesse qui réconcilient UX et SEO
 
Core web vitals pour unifier UX et SEO - Stephane Rios - SEO Camp'us paris 2020
Core web vitals pour unifier UX et SEO - Stephane Rios - SEO Camp'us paris 2020Core web vitals pour unifier UX et SEO - Stephane Rios - SEO Camp'us paris 2020
Core web vitals pour unifier UX et SEO - Stephane Rios - SEO Camp'us paris 2020
 
Intellicore Tech Talk 10 - Apache Web Server Internals
Intellicore Tech Talk 10 - Apache Web Server InternalsIntellicore Tech Talk 10 - Apache Web Server Internals
Intellicore Tech Talk 10 - Apache Web Server Internals
 
08 01 mise en place d'un serveur web
08 01 mise en place d'un serveur web08 01 mise en place d'un serveur web
08 01 mise en place d'un serveur web
 
Meetup angular rshop
Meetup angular rshopMeetup angular rshop
Meetup angular rshop
 
Symfony à la télé
Symfony à la téléSymfony à la télé
Symfony à la télé
 
Présentation de PHP
Présentation de PHPPrésentation de PHP
Présentation de PHP
 
Deployer PHP et MariaDB dans Azure - TechDays
Deployer PHP et MariaDB dans Azure - TechDaysDeployer PHP et MariaDB dans Azure - TechDays
Deployer PHP et MariaDB dans Azure - TechDays
 
Déployez votre site PHP / MariaDB, simplement et rapidement dans Azure
Déployez votre site PHP / MariaDB, simplement et rapidement dans AzureDéployez votre site PHP / MariaDB, simplement et rapidement dans Azure
Déployez votre site PHP / MariaDB, simplement et rapidement dans Azure
 
Le meilleur pour votre site WordPress
Le meilleur pour votre site WordPressLe meilleur pour votre site WordPress
Le meilleur pour votre site WordPress
 

Mais de Maxime Jobin

Être bénévole, c’est payant !
Être bénévole, c’est payant !Être bénévole, c’est payant !
Être bénévole, c’est payant !Maxime Jobin
 
L'ABC d'un déploiement réussi - WordCamp Montréal 2018
L'ABC d'un déploiement réussi - WordCamp Montréal 2018L'ABC d'un déploiement réussi - WordCamp Montréal 2018
L'ABC d'un déploiement réussi - WordCamp Montréal 2018Maxime Jobin
 
Comment Vendre Vos Compétences WordPress Plus Cher Que Vos Compétiteurs ?
Comment Vendre Vos Compétences WordPress Plus Cher Que Vos Compétiteurs ?Comment Vendre Vos Compétences WordPress Plus Cher Que Vos Compétiteurs ?
Comment Vendre Vos Compétences WordPress Plus Cher Que Vos Compétiteurs ?Maxime Jobin
 
How to Leverage Your WordPress Skills for Big Money
How to Leverage Your WordPress Skills for Big MoneyHow to Leverage Your WordPress Skills for Big Money
How to Leverage Your WordPress Skills for Big MoneyMaxime Jobin
 
S2B Solution - Présentation
S2B Solution - PrésentationS2B Solution - Présentation
S2B Solution - PrésentationMaxime Jobin
 
Sécurité: Ne soyez pas à risque
Sécurité: Ne soyez pas à risqueSécurité: Ne soyez pas à risque
Sécurité: Ne soyez pas à risqueMaxime Jobin
 
Visites technos au secondaire - Maxime Jobin
Visites technos au secondaire - Maxime JobinVisites technos au secondaire - Maxime Jobin
Visites technos au secondaire - Maxime JobinMaxime Jobin
 

Mais de Maxime Jobin (7)

Être bénévole, c’est payant !
Être bénévole, c’est payant !Être bénévole, c’est payant !
Être bénévole, c’est payant !
 
L'ABC d'un déploiement réussi - WordCamp Montréal 2018
L'ABC d'un déploiement réussi - WordCamp Montréal 2018L'ABC d'un déploiement réussi - WordCamp Montréal 2018
L'ABC d'un déploiement réussi - WordCamp Montréal 2018
 
Comment Vendre Vos Compétences WordPress Plus Cher Que Vos Compétiteurs ?
Comment Vendre Vos Compétences WordPress Plus Cher Que Vos Compétiteurs ?Comment Vendre Vos Compétences WordPress Plus Cher Que Vos Compétiteurs ?
Comment Vendre Vos Compétences WordPress Plus Cher Que Vos Compétiteurs ?
 
How to Leverage Your WordPress Skills for Big Money
How to Leverage Your WordPress Skills for Big MoneyHow to Leverage Your WordPress Skills for Big Money
How to Leverage Your WordPress Skills for Big Money
 
S2B Solution - Présentation
S2B Solution - PrésentationS2B Solution - Présentation
S2B Solution - Présentation
 
Sécurité: Ne soyez pas à risque
Sécurité: Ne soyez pas à risqueSécurité: Ne soyez pas à risque
Sécurité: Ne soyez pas à risque
 
Visites technos au secondaire - Maxime Jobin
Visites technos au secondaire - Maxime JobinVisites technos au secondaire - Maxime Jobin
Visites technos au secondaire - Maxime Jobin
 

Introduction à WordPress sous Nginx

  • 1. Introduction à WordPress sous Nginx Maxime Jobin WordCamp Montréal 2014
  • 2. @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 ?
  • 3. @maximejobinWordCamp Montréal 2014 - #wcmtl Maxime Jobin www.maximejobin.com m@ximejobin.com @maximejobin Utilisateur, Administrateur, Développeur et Formateur
  • 4. @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
  • 5. @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.
  • 6. @maximejobinWordCamp Montréal 2014 - #wcmtl Nginx vs Apache Nginx Event-driven Empreinte faible Apache Process-based MPM (Multi-processing module) .htaccess Nginx & Apache Fichiers 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.
  • 7. @maximejobinWordCamp Montréal 2014 - #wcmtl Benchmark: Apache vs Nginx La différence est claire au niveau de la performance. ;-)
  • 8. @maximejobinWordCamp Montréal 2014 - #wcmtl Utilisateurs de Nginx
  • 9. @maximejobinWordCamp Montréal 2014 - #wcmtl Utilisateurs de Nginx WordPress.com Mensuellement 14 milliards de pages vues 42 millions de nouveaux articles 51 millions de nouveaux commentaires Chaque jour, des dizaines de milliers de nouveaux sites y sont créés. Source: WordPress.com
  • 10. @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
  • 11. @maximejobinWordCamp Montréal 2014 - #wcmtl Preparation Achat de « monsite.com » et redirection vers l’adresse IP du serveur. > apt-get update > apt-get upgrade
  • 12. @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
  • 13. @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
  • 14. @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
  • 15. @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 ev
  • 16. @maximejobinWordCamp Montréal 2014 - #wcmtl Tester Nginx pour monsite.com > /usr/sbin/nginx -t > service nginx reload http://www.monsite.com
  • 17. @maximejobinWordCamp Montréal 2014 - #wcmtl Installation de PHP et MySQL > apt-get install php5-cli > apt-get install mysql-server mysql- client php5-mysql
  • 18. @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
  • 19. @maximejobinWordCamp Montréal 2014 - #wcmtl Configuration de PHP-FPM Créer un fichier monsite.conf dans /etc/php5/fpm/pool.d/ : [monsite] user = monsite group = monsite listen = /var/run/php5-fpm.monsite.sock listen.owner = www-data listen.group = www-data pm = dynamic pm.max_children = 75 pm.start_servers = 10 pm.min_spare_servers = 5 pm.max_spare_servers = 20 pm.max_requests = 500
  • 20. @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; }
  • 21. @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
  • 22. @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
  • 23. @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
  • 24. @maximejobinWordCamp Montréal 2014 - #wcmtl Pour plus d’informations http://www.maximejobin.com/wcmtl-2014
  • 25. @maximejobinWordCamp Montréal 2014 - #wcmtl Fin Des questions ?