Udělat XAMPP / Apache sloužit soubor mimo htdocs

hlasů
263

Je možné nakonfigurovat XAMPP sloužit vytvořit soubor mimo htdocsadresáře?

Například řekněme, že mám soubor uložený takto:

C:\projects\transitCalculator\trunk\TransitCalculator.php

a moji XAMPP Soubory jsou obvykle podávány z:

C:\xampp\htdocs\

(protože to je výchozí nastavení) Existuje nějaký způsob, jak Apache rozpoznat a servírovat svůj TransitCalculator.phpsoubor bez pohybu pod htdocs? Přednostně bych rád Apache sloužit up / mít přístup k celý obsah adresáře projektů, a já nechci, aby přesunout adresář projektů pod htdocs.

edit: upravit tak, aby přidat Apache názvu otázky, aby Q / A další „prohledávat“

Položena 04/08/2008 v 17:54
zdroj uživatelem
V jiných jazycích...                            


6 odpovědí

hlasů
324

Ok, za pix0r ‚s, Sparks ‘ a Dave odpovědí lidovou vypadá to, že existují tři způsoby, jak toho dosáhnout:


Virtuální hostitelé

  1. Otevřeno C: \ XAMPP \ apache \ conf \ navíc \ httpd-vhosts.conf.
  2. Un-comment řádku 19 ( NameVirtualHost *:80).
  3. Přidejte svůj virtuální hostitele (~ řádek 36):

    <VirtualHost *:80>
        DocumentRoot C:\Projects\transitCalculator\trunk
        ServerName transitcalculator.localhost
        <Directory C:\Projects\transitCalculator\trunk>
            Order allow,deny
            Allow from all
        </Directory>
    </VirtualHost>
    
  4. Otevřete si soubor hosts (C: \ Windows \ System32 \ drivers \ etc \ hosts).

  5. Přidat

    127.0.0.1 transitcalculator.localhost #transitCalculator
    

    na konec souboru (před Spybot - Search & Destroy věci, pokud jste si, že je instalován).

  6. Save (Možná budete muset uložit na plochu, změnit oprávnění u starého souboru hosts (klikněte pravým tlačítkem myši> Vlastnosti) a zkopírujte nový do adresáře přes starý (nebo přejmenujte staré), pokud používáte Vista a mají potíže).
  7. Restart Apache.

Nyní můžete přistupovat k tomuto adresáři procházením http: //transitcalculator.localhost/ .


Udělat alias

  1. Počínaje ~ linku 200 vašeho http.confsouboru, kopírování všechno mezi <Directory "C:/xampp/htdocs">a </Directory>(~ linka 232) a vložte jej bezprostředně níže C:/xampp/htdocsnahrazeny požadovanou adresář (v tomto případě C:/Projects), čímž váš server správná oprávnění pro nový adresář.

  2. Najděte <IfModule alias_module></IfModule>část (~ linka 300) a přidejte

    Alias /transitCalculator "C:/Projects/transitCalculator/trunk"
    

    (nebo to, co je důležité, aby vaše přání) pod Aliaskomentář bloku uvnitř značek modulu.


Změňte svůj kořen dokumentů

  1. Úprava ~ linie 176 v C: \ XAMPP \ apache \ conf \ httpd.conf; změnit DocumentRoot "C:/xampp/htdocs"na #DocumentRoot "C:/Projects"(nebo co chcete).

  2. Edit ~ linky 203, aby odpovídala nové umístění (v tomto případě C:/Projects).


Poznámky:

  • Budete muset použít lomítka „/“ namísto zpět lomítka „\“.
  • Nezahrnují čárkou „/“ na konci.
  • restartování serveru .
Odpovězeno 04/08/2008 v 18:05
zdroj uživatelem

hlasů
90

Můžete přemístit jej úpravou DocumentRoot nastavení v XAMPP \ apache \ conf \ httpd.conf.

To by mělo být v současné době:

C: / XAMPP / htdocs

Změňte jej na:

C: / Projekty / transitCalculator / trunk

Odpovězeno 04/08/2008 v 18:00
zdroj uživatelem

hlasů
49

VirtualHost by také pracovat pro tento a může fungovat lépe pro vás, jak si může hostit několik projektů bez nutnosti podadresáře. Zde je návod, jak to udělat:

httpd.conf (nebo navíc. \ httpd-vhosts.conf vzhledem k httpd.conf koncová lomítka „\“ může způsobit, že nebude fungovat):

NameVirtualHost *:80
# ...
<VirtualHost *:80>  
    DocumentRoot C:\projects\transitCalculator\trunk\
    ServerName transitcalculator.localhost
    <Directory C:\projects\transitCalculator\trunk\>  
        Order allow,deny  
        Allow from all  
    </Directory>
</VirtualHost> 

soubor hosts (C: \ WINDOWS \ system32 \ drivers \ etc \ hosts obvykle):

# localhost entries
127.0.0.1 localhost transitcalculator.localhost

Nyní restartujte XAMPP a vy byste měli mít přístup k http: //transitcalculator.localhost/ a bude mapovat rovnou do tohoto adresáře.

To může být užitečné, pokud se snažíte napodobit výrobní prostředí, kam se rozvíjející web, který bude sedět v kořenovém adresáři doménové jméno. Můžete, například, přejděte na soubory s absolutní cesty, která se přenáší na server:

<img src="/images/logo.png" alt="My Logo" />

zatímco v prostředí s použitím přezdívky nebo podadresáře, že je třeba sledovat, kde přesně se „obrazy“ adresáři bylo vzhledem k aktuálním souboru.

Odpovězeno 05/08/2008 v 16:30
zdroj uživatelem

hlasů
14

Můžete nastavit Apache sloužit stránek odkudkoliv s případnými omezeními, ale to normálně distribuovaný ve více zabezpečené podobě.

Úprava apache soubory (http.conf je jedním z nejčastějších jmen) vám umožní nastavit libovolnou složku, takže se objeví v webroot.

UPRAVIT:

alias myapp c: \ MyApp \

Jsem upravil svou odpověď zahrnout formát pro vytvoření aliasu v souboru http.conf což je něco jako zástupce v oknech nebo symbolický odkaz pod UN * X, kde Apache ‚předstírá, že‘ je složka v webroot. To je pravděpodobně bude více užitečné pro vás v dlouhodobém horizontu.

Odpovězeno 04/08/2008 v 18:00
zdroj uživatelem

hlasů
8

Jako vedlejší poznámku, pokud se snažíte dostat XAMPP použít síťovou jednotku jako kořen dokumentu musíte použít UNC cesty v httpd.conf. XAMPP nepozná své namapované síťové jednotky.

Například následující nebude fungovat, DocumentRoot „X: / webroot“

Ale to bude, DocumentRoot „//192.168.10.100/webroot“ (všimněte si lomítka, ne zpět lomítka)

Odpovězeno 28/01/2011 v 04:04
zdroj uživatelem

hlasů
4

Žádné z těchto řešení snadno pracovalo. Zde je nejjednodušší řešení, aby Apache 2 hostit webové stránky mimo htdocs:

Pod „DocumentRoot“ směrnice v httpd.conf, měli byste vidět bloku adresáře. Nahraďte tento adresář blok:

<Directory />
    Options FollowSymLinks
    AllowOverride All
    Allow from all
</Directory> 

Poznamenejme, že není použití této konfigurace v reálném prostředí

Odpovězeno 26/01/2009 v 16:11
zdroj uživatelem

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more