Nginx : configuration pour le CMS ezPublish
- Mardi 20 octobre 2009
- Par Boris HUISGEN
- Ecrire
J’ai réussi à faire fonctionner le CMS ezPublish sous Nginx. Rien de particulier au niveau des règles de réécriture, hormis la distinction de Nginx entre break et last, qui dans le premier cas empêche l’exécution de l’interpréteur PHP-CGI. Ma configuration permet d’exécuter tous les scripts PHP existants à la racine. Dans le cas d’un fichier inexistant, la page d’erreur 404 ezPublish est affichée.
N’oubliez pas de fixer l’option ForceVirtualHost à true dans votre fichier site.ini pour bénéficier de la réécriture simplifiée des URL.
server {
listen 80;
server_name ezpublish.bhuisgen.my.domain;
root /Users/bhuisgen/Sites/ezpublish/www/html;
index index.php;
if (!-f $request_filename) {
rewrite ^(.*)$ /404;
}
location ~ "^/[^/]*\.php$" {
set $script "index.php";
if ( $uri ~ "^/(.*\.php)" ) {
set $script $1;
}
fastcgi_pass unix:/opt/local/var/run/nginx/fcgi-php.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /Users/bhuisgen/Sites/ezpublish/www/html/$script;
include fastcgi_params;
}
location / {
rewrite "^/var/storage/(.*)$" "/var/storage/$1" break;
rewrite "^/var/([^/]+)/storage/(.*)$" "/var/$1/storage/$2" break;
rewrite "^/var/cache/texttoimage/(.*)$" "/var/cache/texttoimage/$1" break;
rewrite "^/var/([^/]+)/cache/texttoimage/(.*)$" "/var/$1/cache/texttoimage/$2" break;
rewrite "^/design/([^/]+)/(stylesheets|images|javascript)/(.*)$" "/design/$1/$2/$3" break;
rewrite "^/share/icons/(.*)$" "/share/icons/$1" break;
rewrite "^/extension/([^/]+)/design/([^/]+)/(stylesheets|images|javascripts|javascript|flash?)/(.*)$" "/extension/$1/design/$2/$3/$4" break;
rewrite "^/packages/styles/(.+)/(stylesheets|images|javascript)/([^/]+)/(.*)$" "/packages/styles/$1/$2/$3/$4" break;
rewrite "^/packages/styles/(.+)/thumbnail/(.*)$" "/packages/styles/$1/thumbnail/$2" break;
rewrite "^/favicon\.ico$" "/favicon.ico" break;
rewrite "^/robots\.txt$" "/robots.txt" break;
rewrite "^/var/cache/debug.html(.*)$" "/var/cache/debug.html$1" break;
rewrite "^/var/([^/]+)/cache/public/(.*)$" "/var/$1/cache/public/$2" break;
rewrite "^/var/([^/]+)/cache/debug\.html(.*)$" "/var/$1/cache/debug.html$2" break;
rewrite "^/crossdomain\.xml$" "/crossdomain.xml" break;
rewrite "^/content/treemenu/?$" "/index_treemenu.php" last;
rewrite "^(.*)$" "/index.php?$1" last;
}
}