Uživatelské nástroje

Nástroje pro tento web

Tato dokumentace již není udržována týmem projektu Turris (přestože ji lze i nadále používat pro sdílení komunitního obsahu). Aktuální oficiální dokumentace se nachází na docs.turris.cz.

Turris jako webserver

Na Turrisu je možné jednoduše spustit webserver nginx s PHP 5 i podporou MySQL. V tomto návodu zjistíte, jak vše jednoduše nastavit.

Nginx a PHP

Nejdříve si aktualizujte seznam balíčků

opkg update

a následně nainstalujte balíčky nutné pro samotný běh webserveru a PHP

opkg install nginx php5-fastcgi

Jelikož na routeru pravděpodobně běží ještě webserver lighttpd, přes který jsou přístupná rozhraní Foris a LuCi, porty 80 a 443 běžně používané pro weby jsou pravděpodobně obsazené. Je tak nutné pozměnit soubor /etc/lighttpd/lighttpd.conf tak, aby byla tato rozhraní přístupná na jiném portu. Stačí pozměnit následující dva řádky tak, aby jejich obsah odpovídal kódu níže.

server.port = 81
$SERVER["socket"] == "[::]:81" {  }

Nyní už stačí lighttpd restartovat, a Foris a LuCi budou dostupné na portu 81.

/etc/init.d/lighttpd restart

Port 80 tak máme uvolněný a můžeme přejít ke konfiguraci nginxu.

Výchozí adresář pro web je /www, který je už použitý serverem lighttpd pro webová rozhraní routeru. Pokud vám nezáleží na tom, kde budete web ukládat, vytvořte si složku /usr/share/htdocs, která je použita i v ukázkové konfiguraci níže. Pokud chcete mít web uložen například na externím disku, nezapomeňte cestu změnit v konfiguračním souboru.

Obsah konfiguračního souboru /etc/nginx/nginx.conf upravíme následovně

user nobody nogroup;
worker_processes 1;

error_log logs/error.log;

events {
    worker_connections 1024;
}


http {
	include mime.types;
	index index.php index.html index.htm;
	default_type text/html;

	sendfile on;
	keepalive_timeout 65;
	gzip on;

	gzip_min_length 1k;
	gzip_buffers 4 16k;
	gzip_http_version 1.0;
	gzip_comp_level 2;
	gzip_types text/plain application/x-javascript text/css application/xml;
	gzip_vary on;
	server {
	        listen 80;
		fastcgi_connect_timeout 300;
		fastcgi_send_timeout 300;
		fastcgi_read_timeout 300;
		fastcgi_buffer_size 32k;
		fastcgi_buffers 4 32k;
		fastcgi_busy_buffers_size 32k;
		fastcgi_temp_file_write_size 32k;
		client_body_timeout 10;
		client_header_timeout 10;
		send_timeout 60;
		output_buffers 1 32k;
		postpone_output 1460;

		root /usr/share/htdocs; # Složka, ve které se nachází web

		location ~ \.php$ {
			fastcgi_index  index.php;
			include        fastcgi_params;
			fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;

			if (-f $request_filename) {
				fastcgi_pass 127.0.0.1:1026;
			}
		}
	}
}

Nyní přejdeme k souboru /etc/php.ini, ve kterém najdeme a upravíme následující řádky

doc_root = "/usr/share/htdocs" ; Cestu případně nahraďte cestou, ve které máte uložen web 
cgi.force_redirect = 1
cgi.redirect_status_env = "yes"

Nyní stačí nginx restartovat a veškerý obsah v námi určené složce by měl být dostupný přes HTTP.

/etc/init.d/nginx restart