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 709x (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_basedir
direktivy. 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?