Veröffentlicht: 24.06.2011

Symfony2: nginx Konfiguration

Seit heute Nachmittag kann man den ersten Release Candidate des Symfony2 Frameworks testen. Die API sollte ab jetzt keinen allzu großen Änderungen mehr unterworfen sein, so dass man langsam anfangen kann, die ersten Applikationen damit zu entwickeln (ohne nach jedem Update Angst haben zu müssen das nichts mehr funktioniert :-)).

Da ich ein Freund von eher schlanken Systemen bin, nutze ich als Webserver nginx. Da dieser keine .htaccess Dateien verarbeitet, ist ein wenig Konfigurationsaufwand nötig, um alle Funktionen von Symfony2 optimal nutzen zu können.

Im Folgenden meine Konfiguration von nginx. Diese teilt sich in zwei Dateien auf. Die erste enthält Konfigurationsanweisungen, die für alle vHosts gleich sind. Die zweite ist vHost spezifisch.

default-symfony2 /etc/nginx/default-symfony2

location = /favicon.ico {
	log_not_found off;
	access_log off;
}

location ~* .(js|css|png|jpg|jpeg|gif|ico)$ {
	expires max;
	log_not_found off;
}

location ~ /.ht {
	deny all;
}

location ~ .php($|/) {
	include fastcgi_params;

	set $script $uri;
	set $path_info "";

	if ($uri ~ "^(.+.php)(/.+)") {
	set $script $1;
	set $path_info $2;
}

fastcgi_param SCRIPT_NAME $script;
fastcgi_param PATH_INFO $path_info;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_intercept_errors on;
fastcgi_pass unix:/tmp/php-fpm.sock;

domain.conf /etc/nginx/sites-enabled/domain.conf

server {
	server_name example.org *.example.org;
	root /home/www/example.org/web;

	index app.php;

	location / {
		try_files $uri /app.php?$args;
	}

	include defaults-symfony2;
}

Passt die Domains entsprechend an, und schon habt ihr eine lauffähige Symfony2 Konfiguration. Tauscht ihr app.php durch app_dev.php, landet ihr direkt im Entwicklermodus.