Zend Framework und nginx - beide sind wirklich starke Tools was Webentwicklung angeht. Allerdings ist die benötigte Rewrite Konfiguration für das Zend Framework nur für den Apache2 in Form einer .htaccess-Datei "beigelegt". Wer nginx kennt, weiß, das es hier etwas anders funktioniert, die Rewrite-Regeln werden direkt in die Konfiguration des nginx-Servers beziehungsweise des nginx-VHosts geschrieben. Um nun das Framework sicher zum laufen zu bekommen brauchen wir eigentlich nur eine Konfiguration wie diese:
server {
listen 80;
server_name example.com;
root /var/www/yourzendapp/public;
location / {
index index.php;
}
# Zugriff auf sensible Dateien verwehren
location ~ (\.inc\.php|\.tpl|\.sql|\.tpl\.php|\.db)$ {
deny all;
}
# Die htaccess brauchen wir nicht mehr - und wenn sie noch da is
# sollte sie nicht angezeigt werden
location ~ \.htaccess {
deny all;
}
# Die eigentliche RewriteRule für das Zend Framework
if (!-e $request_filename) {
rewrite ^.*$ /index.php last;
}
# Hier werden die PHP-Dateien zum FastCGI weitergeleitet
# Die Config/Der Port sollte mit euerer Konfiguration übereinstimmen
location ~ \.php$ {
include /etc/nginx/fastcgi_params;
fastcgi_pass 127.0.0.1:9000;
# Hier kommt das Environment rein was ihr benutzt, also z.B.
# development oder wie hier staging
fastcgi_param APPLICATION_ENV staging;
fastcgi_index index.php;
}
}
Wie man sieht ist die eigentliche Rewrite-Regel garnicht so schwer, einfacher als beim Apache möchte ich fast behaupten :)