Uživatelské nástroje

Nástroje pro tento web


Rozdíly

Zde můžete vidět rozdíly mezi vybranou verzí a aktuální verzí dané stránky.

Odkaz na výstup diff

cs:public:webserver [2017/04/02 02:53] (aktuální)
meklicz vytvořeno
Řádek 1: Řádek 1:
 +====== 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ů
 +<​code>​
 +opkg update
 +</​code>​
 +a následně nainstalujte balíčky nutné pro samotný běh webserveru a PHP
 +<​code>​
 +opkg install nginx php5-fastcgi
 +</​code>​
 +
 +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.
 +<​code>​
 +server.port = 81
 +$SERVER["​socket"​] == "​[::​]:​81"​ {  }
 +</​code>​
 +Nyní už stačí lighttpd restartovat,​ a Foris a LuCi budou dostupné na portu 81.
 +<​code>​
 +/​etc/​init.d/​lighttpd restart
 +</​code>​
 +Port 80 tak máme uvolněný a můžeme přejít ke konfiguraci nginxu.
 +
 +<WRAP center round tip 60%>
 +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.
 +</​WRAP>​
 +
 +Obsah konfiguračního souboru ''/​etc/​nginx/​nginx.conf''​ upravíme následovně
 +<​code>​
 +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;​
 + }
 + }
 + }
 +}
 +</​code>​
 +Nyní přejdeme k souboru ''/​etc/​php.ini'',​ ve kterém najdeme a upravíme následující řádky
 +<​code>​
 +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"​
 +</​code>​
 +
 +Nyní stačí nginx restartovat a veškerý obsah v námi určené složce by měl být dostupný přes HTTP.
 +<​code>​
 +/​etc/​init.d/​nginx restart
 +</​code>​