Jean-Philippe Monette

Comment faire cohabiter Laravel et NGINX?

samedi 8 décembre 2012

·

2 minutes de lecture

L'utilisation du framework PHP Laravel avec le serveur HTTP NGINX fonctionne vraiment bien. Du moins, très bien lorsqu'on a trouvé les bons paramètres pour la réécriture des adresses. Considérant que l'information était introuvable sur le Web, je vais vous partager les lignes magiques à inscrire dans vos fichiers de configuration.

Pour un serveur Web Apache, voici le .htaccess nécessaire pour rediriger automatiquement les requêtes envoyées au fichier index.php:

<IfModule mod_rewrite.c> RewriteEngine on RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.\*)$ index.php/$1 [L] </IfModule>

Dans le cas de NGINX, le fonctionnement de l'URL Rewriting n'est pas le même. Voici donc les paramètres à insérer dans votre Server Block pour que le module HttpRewriteModule supporte adéquatement le routage avec Laravel:

if (!-e $request_filename) { rewrite ^/(.*)$ /index.php?/$1 last; break; }

En bref, la consigne vérifie si le nom du fichier inséré après la racine du nom de domaine existe. S'il n'existe pas, la requête est automatiquement juxtaposée après /index.php?/.

Également, n'oubliez pas de configurer adéquatement votre fichier de configuration application.php situé dans le répertoire application/config/application.php.

Remplacez la ligne suivante:

'index' => 'index.php',

... par celle-ci:

'index' => '',

Simple, non? Pour en apprendre davantage sur NGINX, utilisé sur 12,18% des serveurs dans le monde, je vous invite à jeter un oeil à leur site Web. Sinon, allez lire mon précédent article Laravel comme framework PHP plutôt que CodeIgniter?!

© jpmonette.net

TwitterGithubTelegram