Uživatelské nástroje

Nástroje pro tento web


navody:server:apache

Toto je starší verze dokumentu!


Instalace Apache a PHP

Pokud chcete na svém VPS provozovat webový server, doporučuji Apache s PHP rozšířením, jejich instalace je velice jednoduchá.

Apache

Pro základní instalaci Apache stačí nainstalovat balíček Apache2 aptitude install apache2

Základní příkazy Apache

Start: /etc/init.d/apache2 start Stop: /etc/init.d/apache2 stop Bezpečný stop: /etc/init.d/apache2 gracefulstop Restart: /etc/init.d/apache2 restart Stav: /etc/init.d/apache2 status

PHP rozšíření apache

Pro správnou funkci různých redakčních systémů apod. budete potřebovat také PHP. Nainstalujte ho příkazem: aptitude install libapache2-mod-php5 php5

Teď restartujte apache a přikazem cd /var/www/ se přepněte do kořenové webové složky. Příkazem touch index.php vytvořte soubor index.php a upravte ho. index.php: <?php phpinfo(); ?>

Nakonec jděte z webového prohlížeče na ipserveru/index.php, pokud se zobrazí modrá tabulka s informacemi o instalaci Apache a PHP, je vše v pořádku!

Toť vše, doufám, že návod pomohl.

Základní nastavení VH u Apache2:

  • Automatické směrování subdomén do podsložky
  • Automatické doplňování www. před doménu (pokud uživatel nezadá) - užitečné pro SEO
<VirtualHost *:80>
	ServerName www.domena.tld 
 	ServerAlias domena.tld *.domena.tld
	
	DocumentRoot /var/www/domain-tld

    <Directory />
		Options FollowSymLinks
		AllowOverride None
   </Directory>

   <Directory /var/www/domain-tld>
		Options FollowSymLinks MultiViews
		AllowOverride All
		Order allow,deny
		allow from all
   </Directory>

	
	RewriteEngine on
	RewriteCond %{HTTP_HOST} ^([^\.]+)\.domain\.tld
	RewriteCond /var/www/domain-tld/%1 -d
	RewriteRule ^(.*) /%1/$1 [L]

	RewriteCond %{HTTP_HOST}        !^www\.domain\.tld [NC]
	RewriteCond %{HTTP_HOST}        !^$
	RewriteRule ^/(.*)              http://www.domain.tld/$1 [L,R]


</VirtualHost>

Pokud uživatel zadá sub22.domena.tld, bude se načítat automaticky složka /var/www/sub22/ Pokud uživatel zadá www.domena.tld, nebo domena.tld, bude se načítat automaticky /var/www/www/

!! Je třeba mít nainstalovaný modul mod_rewrite!

SNI a podpora viacerých SSL certifikátov

Popis problému

Vzhľadom na fakt, že verejných IPv4 adries je nedostatok (čerpá sa už len s rezerv), boli aj v našom združení prijaté opatrenia na ich šetrenie. Teda 1 IPv4 adresa pre 1 VPS. Pokiaľ však máme na jednom VPS viac domén, resp. zdieľaný hosting, problém nastáva, keď chceme viac overených SSL certifikátov (pre viacero domén). Niektoré prehliadače (hlavne Firefox) svojho používateľa z dôvodu bezpečnosti doslova odradia, resp. znemožnia prístup (3 či 4 potvrdenia, že naozaj chcem prijať nebezpečný certifikát).

Ak potrebujeme SSL, máme v súčanosti dve možnosti:

  • Umiestniť každú doménu s certifikátom na iný port.
  • Použiť SNI (Server Name Indication).

Ako funguje SNI?

  1. Apache najprv porovnáva zhodu podľa IP+port, podľa toho, kde počúva a aké vhosty má definované.
  2. Pokiaľ apache používa aj NameVirtualHost, porovná vhost či sa zhoduje.
  3. Klient s podporou SNI posiela spolu s TLS handshake aj cieľovú doménu.
  4. Apache porovná poslanú doménu so zoznamom ServerName/ServerAlias vo svojej konfigurácii.
  5. V prípade, že ho nájde, zoberie certifikát definovaný pre daný vhost a používa ho pri spojení.
  6. Pokiaľ ho nenájde alebo klient nepodporuje SNI (neposlal cieľovú doménu), apache používa predvolený (prvý v poradí) certifikát.

Výhody, nevýhody a podpora SNI

Prvý prípad (používanie rôznych portov) je z hľadiska podpory najlepší, avšak má dva zásadné problémy. Rôzne exotické porty v URL nevzbudzujú takú dôveru. Pre zdieľaný hosting je toto v podstate neprijateľné (väčšina klientov by zrejme chcela SSL na porte 443). Druhým problémom sú podnikové či školské firewally. Stále existuje mnoho organizácií, ktoré chránia svoju sieť blokovaním portov a obmedzením len povolených (napríklad len webové porty, ako 80 a 443).

V súčasnosti je už druhá metóda (SNI) pomerne dobre podporovaná, a preto sa odporúča použiť.

Podpora prehliadačov a OS:

  • Windows Vista (a vyššie)
  • Windows XP (len s iným prehliadačom, než IE - testované s OP 11.60, FF 9.0.1, Chrome 16 = OK)
  • OS X 10.5.6 (a vyššie)
  • Firefox 2.0+
  • Opera 8.0+
  • Internet Explorer 7+ (NIE pod Windows XP alebo staršími)
  • Google Chrome (všetky verzie)
  • Safari 3.2.1+

Inštalácia a konfigurácia

Prerekvizity

1. Apache 2.2.12+ 2. OpenSSL 0.9.8f+ (s podporou TLS extensions)

Konfigurácia

1. Nastavíme apache konfiguračnú premennú:

SSLStrictSNIVHostCheck off

Tá zabezpečí, aby apache prijímal aj klientov bez podpory SNI.

Konfigurácia je ďalej veľmi jednoduchá - ako pri jednom SSL certifikáte:

2. Nastavíme predvolený SSL certifikát (TLSv1) pre server (musí byť v poradí ako prvý!):

<VirtualHost *:443> ServerName <hostname.tld> … # SSL cert SSLEngine On SSLCertificateFile <cesta_k_certifikátu>.crt SSLCertificateKeyFile <cesta_ku_klucu>.key SSLCertificateChainFile <cesta_k_certifikatu_certifikacnej_autority>.crt </VirtualHost>

3. Ďalšie certifikáty inštalujeme obdobne - pre každý vhost zvlášť.

Zdroje

navody/server/apache.1414524672.txt.gz · Poslední úprava: 2014/10/28 19:31 autor: psjb

Nástroje pro stránku