Upload
maxime-jobin
View
1.402
Download
3
Tags:
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
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
@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
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.
@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
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
@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 evil
@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 = 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
@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 ?