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 !

Source

Vus : 896
Publié par Maxime CHAILLOU : 11