Když tvořím webové projekty, vždy si vytvořím na cloudu složku, kam nahraju svůj systém. Poté si „vytvořím“ doménu prvního řádku a tu nasměruji do oné složky. Takto mám projekty rozdělené a přistupuji k nim přes různé adresy. Na localhost mám pak stromovou strukturu testovacích souborů a adresářů, které jsou ve zvláštní složce, pouze pro testování nových fcí PHP atp.
Instalace XAMPP – můj článek zde
Tento program vám pomůže přidat záznam do hosts (pro nasměrování
domény) a do apache VirtualHosts configu pro přesměrování domény na
určitý adresář. To můžete samozřejmě udělat i s nějakou doménou
druhého řádu. Pokud chcete mít na svém PC testovací server, pak si
koupíte doménu, nasměrujete ji na svoji IP a pak pomocí tohoto programu
vytvoříte subdomény pro různé projekty a můžete na nich pracovat týmově
Doporučuji napojit na cloudové
úložiště nebo nějaký verzovací systém. Poté kdokoliv bude něco psát
tak mu to IDE automaticky uloží a nemusí řešit nějaké uploadování
někam ![]()
Pozor: Program edituje systémový soubor „hosts“ a je tak vysoká pravděpodobnost, pokud máte antivirový program, že bude vyhodnocen jako virus nebo že při snaze k tomuto souboru přistoupit napíše chybu. Je třeba jej označit za důvěryhodný a povolit mu tuto operaci. Nebo soubor hosts upravovat manuálně.
Nastavení musí obsahovat:
- Cestu k vhosts: C:\xampp\apache\conf\extra\httpd-vhosts.conf
- Cestu k hosts: C:\Windows\System32\drivers\etc\hosts
Uvedené cesty jsou ilustrativní, ve vašem počítači se mohou lišit.
Doporučení bezpečnosti:
Doporučuji nastavit v php.ini open_basedir
open_basedir =
"C:\Users\David\Dropbox\Programming\PHP;C:\xampp\tmp" tmp adresář je
důležitý kvůli uploadu souborů.
Protože jinak je možné libovolně editovat soubory kdekoliv ve vašem
počítači
Pro více možností
se podívejte sem: http://stackoverflow.com/…ot-directory
Nastavení httpd.conf
Nasměrování na výchozí složku
DocumentRoot "C:\Users\David\Dropbox\Programming\PHP"
<Directory "C:\Users\David\Dropbox\Programming\PHP">
Pro nastavení nějaké domény 2 řádu, aby fungovala i se subdoménami:
# aliases
# POZOR! pokud máte povolený port 80 ve vašem routeru, pak toto umožní vzdálený přístup! - viz níže
<VirtualHost *:80>
ServerName http://example.com
ServerAlias *.example.com
DocumentRoot "..." # cesta pro výchozí doménu example.com a její neplatné subdomény
</VirtualHost>
# omezit pouze na lokální pc
# pozn. je třeba povolit: LoadModule authz_host_module modules/mod_authz_host.so v souboru httpd.conf
<VirtualHost *:80>
<Location />
Order deny,allow
Deny from all
Allow from 127.0.0.1
</Location>
ServerName http://example2.com
ServerAlias *.example2.com
DocumentRoot "..."
</VirtualHost>
# pro zbytek neplatných subdomén libovolných domén nasměrovaných na server
<VirtualHost *:80>
ServerName http://something.tld
ServerAlias *
DocumentRoot "..." # sem budou odkazovat všechny domény a subdomény které nejsou nastavené v apache
</VirtualHost>
Vypnutí informací o serveru a zamezení výpisu souborů
ServerSignature Off
ServerTokens Prod
Options -Indexes
Pokud narazíte na nějakou chybu nebo si uděláte nějaké vylepšení,
prosím napište mi to do komentářů. Program jsem dělal pro své využití a
popisuji tady, jakým způsobem tuto problematiku řeším, abych to mohl
v budoucnu použít nebo na to někoho odkázat. Děkuji ![]()
Zdrojové kódy jsem nepřidával, jelikož nejsou okomentované a psal jsem
to narychlo, neboť jsem byl líný při vytváření jednoho projektu dělat to
manuálně, tak jsem narychlo zbalastil prográmek, co to pošéfí za mě
Ale pokud zdvořile požádáte a
nebudou následovat žádné dotazy a ponuky, že to je hrozný, tak rád
zašlu ![]()
Ad. Bezpečnostní poznámka: Pokud budete mít povolený
port 80 ve vašem routeru, pak stačí, aby si kdokoliv napsal do souboru hosts
žádek „vaše_ip localhost“ a dostane se k vám. Pozor na to!!! Buďto
použijte uvedenou ochranu nebo neforwardujte porty ![]()
Galerie
Ke stažení
VirtualHosts.exe 805x (458.5 kB)



cau, diky za super clanek. vse mam nastavene, virtual hosti funguji. jen mam malicky problem – DocumentRoot nastavim na /var/www/ ale v php skriptu se pres ./../../ dostanu az do rootu serveru. Je mozne to konfiguraci apache nejak omezit? nebo je nutne to resit opravnenim uzivatele? dik
Ahoj,
ano, je to v článku uvedeno část „Doporučení bezpečnosti“. V PHP pomocí
open_basedirdirektivy. V Apache (.htaccess)php_admin_value open_basedir. Více info + ukázky viz. výše v článku.Směj se.
David
Čím více času dostaneš, tím méně ho máš.
ahoj, díky moc za odpověď, ale – to neřeší problém virtuál hostů, ne?