Subdomény na localhost
Při práci s apache lokálně je běžný způsob použití přes adresu URL "http://localhost". Při vývoji webu nebo nějakém druhu testování možná budete muset vytvořit subdomény na localhost, stejně jako na online serverech.
Tento příspěvek ukazuje, jak vytvořit subdomény uvnitř Apache na localhost. Je to snadné a trvá to jen několik minut.
1. Vytvořte hostitele subdomény
Soubor hosts na linuxovém systému se používá k mapování IP adres na konkrétní názvy hostitelů. Můžeme zde snadno vytvořit více subdomén a nasměrovat je na ip adresu localhost.
Nejprve upravte soubor /etc/hosts přidejte subdomény, které chcete vytvořit.
$ cat /etc/hosts 127.0.0.1 localhost 127.0.1.1 enlightened 127.0.0.1 a.localhost 127.0.0.1 b.localhost 127.0.0.1 c.localhost
Ve výše uvedeném příkladu jsem přidal 3 subdomény, konkrétně a.localhost b.localhost a c.localhost
Nyní otestujte subdomény pomocí příkazu ping, abyste se ujistili, že jsou přístupné
$ ping a.localhost PING a.localhost (127.0.0.1) 56(84) bytes of data. 64 bytes from localhost (127.0.0.1): icmp_req=1 ttl=64 time=0.029 ms 64 bytes from localhost (127.0.0.1): icmp_req=2 ttl=64 time=0.029 ms 64 bytes from localhost (127.0.0.1): icmp_req=3 ttl=64 time=0.028 ms ^C
Jak vidíme výše, subdomény odpovídají na naše pingové dotazy až poté, co jsme je přidali do souboru hosts.
2. Vytvořte kořenové adresáře dokumentů subdomény
Další věcí, kterou musíte udělat, je rozhodnout, kde uložit soubory subdomény. Může to být libovolný adresář podle vašeho výběru, ale v tomto příkladu používáme adresář /var/www/, který používá apache.
/var/www/subdomains/a/
3. Nyní vytvořte virtuální hostitele v konfiguračním souboru Apache
Poslední věcí, kterou musíte udělat, je vytvořit potřebné virtuální hostitele Apache pro každou subdoménu. V podstatě říkáme Apache o subdoméně, kterou potřebuje obsluhovat, spolu s různými detaily, jako je kořen dokumentu pro každou z nich.
V tomto příkladu upravujeme hlavní konfigurační soubor 000-default. Alternativně můžete vytvořit samostatné konfigurační soubory v adresáři sites-available a poté je symbolicky propojit s adresářem sites-enabled nebo pomocí příkazu a2ensite.
$ sudo nano /etc/apache2/sites-enabled/000-default
Přidejte sekci virtuálního hostitele dole takto
# Sub domain a.localhost <VirtualHost *:80> DocumentRoot /var/www/subdomains/a/ ServerName a.localhost <Directory /var/www/subdomains/a/> Options Indexes FollowSymLinks MultiViews +Includes AllowOverride FileInfo Options Order allow,deny allow from all </Directory> </VirtualHost>
Nyní restartujte apache
$ sudo service apache2 restart
4. Otestujte to
Nyní otevřete adresy URL pro subdomény v prohlížeči, http://a.localhost/ nebo podobně, a podívejte se, zda se indexové soubory zobrazují nebo ne.
Příkaz apachectl lze také použít ke kontrole podrobností o subdoménách. Použijte volbu "-S" a zkontrolujte výstup.
$ sudo apachectl -S [sudo] password for enlightened: apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1 for ServerName VirtualHost configuration: wildcard NameVirtualHosts and _default_ servers: *:80 is a NameVirtualHost default server 127.0.1.1 (/etc/apache2/sites-enabled/000-default:1) port 80 namevhost 127.0.1.1 (/etc/apache2/sites-enabled/000-default:1) port 80 namevhost a.localhost (/etc/apache2/sites-enabled/000-default:42) Syntax OK ...
Odkazy
Následující stránka z wiki Ubuntu obsahuje další informace o nastavení subdomén localhost v Apache.
https://help.ubuntu.com/community/LocalhostSubdomain