Nette a konfigurace „virtualhostu“ pro nginx

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
Panda
Člen | 569
+
0
-

V posledních dnech trochu koketuji s webovým serverem nginx. Konfigurační soubory mají trochu jinou strukturu i logiku oproti Apache, nepodporuje .htaccess (ani nic podobného) a navíc samotné PHP musí běžet jako FastCGI. Po chvilce hraní jsem sestavil konfiguraci, na které by měla Nette aplikace celkem pohodlně běžet. Možná se bude někomu hodit…

V php.ini je nutno nevyplňovat direktivu doc_root. Zatím si hraji na Windows, na civilizovanějších systémech pro FastCGI samozřejmě použijte unix socket.

Konfigurace server z conf/nginx.conf:

server {
	listen 80;
	listen [::]:80;
	server_name example.com *.example.com;

	root D:/htdocs/myapp/document_root/;

	include common;
	include php;
	include nette;
}

conf/php:

index index.php index.html index.htm;

location ~ \.php$ {
	fastcgi_pass   127.0.0.1:9000;
	fastcgi_index  index.php;
	fastcgi_param  SCRIPT_FILENAME $document_root$fastcgi_script_name;
	include        fastcgi_params;
}

conf/nette:
Doplnění: našel jsem ještě elegantnější řešení – prostě to rovnou směrovat na /index.php.

try_files $uri $uri/ /index.php?$args;

A pro úplnost i conf/common:

index index.html index.htm;

location ~ /\.ht {
	deny all;
}

error_page   500 502 503 504  /50x.html;
location = /50x.html {
	root   html;
}

Zatím jsem žádné problémy s Nette pod nginx neobjevil, pokud nějaké najdu, tak dám samozřejmě vědět (a ideálně pošlu i opravu).

Editoval Panda (23. 8. 2010 15:07)