CodeIgniter avec Nginx
Depuis un moment je voulais essayer Nginx, puisqu’il est apparemment, bien plus performant qu’Apache. Donc je me suis décidé à passer le pas, et je vais expliquer ici ma démarche.
D’abord je vous conseille de lire cet article (en anglais) qui explique les différences importantes entre Apache et Nginx. Ca permet de savoir où on met les pieds.
Pour cette installation je travaille sur Ubuntu 12.04.2 LTS.
Installation
Dans un premier, il faut arrêter tous les services qui pourrait écouter sur le port 80 (http). Dans mon cas, j’ai besoin de stopper Apache
sudo /etc/init.d/apache2 stop
Ensuite on installe les paquets nécessaires.
sudo aptitude install nginx php5-fpm
Configuration de PHP-FPM
Une petite modification au fichier /etc/php5/fpm/php.ini est nécessaire afin d’empêcher un potentiel risque de sécurité.
cgi.fix_pathinfo=0
Et redémarrer le service
sudo /etc/init.d/php5-fpm restart
Configuration de Nginx
Créer un fichier « nom_de_votre_domaine » dans /etc/nginx/sites-available et y ajouter ceci
server { listen 80; server_name domain.tld; access_log /var/log/nginx/domain.tld.access.log; error_log /var/log/nginx/domain.tld.error.log; root /var/www/codeigniter; index index.html index.php; # set expiration of assets to MAX for caching location ~* \\.(ico|css|js|gif|jpe?g|png)(\\?[0-9]+)?$ { expires max; log_not_found off; } location / { # Check if a file exists, or route it to index.php. try_files $uri $uri/ /index.php; } location ~* \\.php$ { fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_split_path_info ^(.+\\.php)(.*)$; include fastcgi_params; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; } }
Modifier les valeurs de server_name (votre nom de domaine) et de root (le répertoire où se situe votre site CodeIgniter) afin qu’ils correspondent à votre configuration.
Ajouter le lien symbolique afin d’activer le nouveau site
sudo ln -s /etc/nginx/sites-available/<nom_de_domaine> /etc/nginx/sites-enabled/
Recharger Nginx
sudo /etc/init.d/nginx reload
Et voila, vous devez avoir accès à votre site via Nginx !