Gjør XAMPP / Apache tjene fil utenfor htdocs

stemmer
266

Er det mulig å konfigurere xampp å tjene opp en fil utenfor htdocskatalogen?

For eksempel si at jeg har en fil som ligger på følgende måte:

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

og mine XAMPP filene er vanligvis serveres ut fra:

C:\xampp\htdocs\

(fordi det er standardkonfigurasjonen) Er det noen måte å gjøre Apache gjenkjenne og tjene opp min TransitCalculator.phpfil uten å flytte den under htdocs? Helst vil jeg gjerne Apache å tjene opp / ha tilgang til hele innholdet i prosjektene katalog, og jeg ønsker ikke å flytte prosjekter katalogen under htdocs.

Edit: redigert for å legge Apache på spørsmålet tittelen å gjøre Q / A mer søkbar

Publisert på 04/08/2008 klokken 16:54
kilden bruker
På andre språk...                            


6 svar

stemmer
327

Ok, per pix0r 's, Sparks ' og Dave 's svar ser det ut som det er tre måter å gjøre dette:


Virtual Hosts

  1. Åpne C: \ xampp \ apache \ conf \ ekstra \ httpd-vhosts.conf.
  2. Un-comment linje 19 ( NameVirtualHost *:80).
  3. Legg din virtuelle verten (~ linjen 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. Åpne hosts-filen (C: \ Windows \ System32 \ drivers \ etc \ hosts).

  5. Legg til

    127.0.0.1 transitcalculator.localhost #transitCalculator
    

    til slutten av filen (før Spybot - Search & Destroy ting hvis du har det installert).

  6. Lagre (Du må kanskje lagre den på skrivebordet, endre tillatelsene på den gamle hosts-filen (høyreklikk> egenskaper), og kopiere den nye inn i katalogen over den gamle (eller endre navn på den gamle) hvis du bruker Vista og har problemer med).
  7. Start Apache.

Nå kan du få tilgang til den katalogen ved å gå til http: //transitcalculator.localhost/ .


Gjør et alias

  1. Starter ~ linjen 200 av http.conffilen, kopiere alt mellom <Directory "C:/xampp/htdocs">og </Directory>(~ linje 232) og lim den rett under med C:/xampp/htdocserstattes med ønsket katalog (i dette tilfellet C:/Projects) for å gi din server de riktige tillatelsene for den nye katalogen.

  2. Finn den <IfModule alias_module></IfModule>delen (~ linjen 300) og legge

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

    (eller hva er relevant for dine ønsker) under Aliaskommentaren blokken, inne i modulen koder.


Endre dokumentet rot

  1. Rediger ~ linjen 176 i C: \ xampp \ apache \ conf \ httpd.conf; endre DocumentRoot "C:/xampp/htdocs"til #DocumentRoot "C:/Projects"(eller hva du vil).

  2. Rediger ~ linjen 203 for å matche den nye plasseringen (i dette tilfellet C:/Projects).


Merknader:

  • Du må bruke skråstrek "/" i stedet for tilbake skråstreker "\".
  • Ikke ta med etterfølgende "/" på slutten.
  • start serveren på nytt .
Svarte 04/08/2008 kl. 17:05
kilden bruker

stemmer
90

Du kan flytte det ved å redigere Document innstillingen i XAMPP \ apache \ conf \ httpd.conf.

Det bør nå være:

C: / xampp / htdocs

Endre den til:

C: / prosjekter / transitCalculator / trunk

Svarte 04/08/2008 kl. 17:00
kilden bruker

stemmer
49

En virtuellverten vil også arbeide for dette og kan fungere bedre for deg som du kan være vert for flere prosjekter uten behov for underkataloger. Her er hvordan du gjør det:

httpd.conf (. eller ekstra \ httpd-vhosts.conf forhold til httpd.conf etterfølgende skråstrek "\" kan føre til at det ikke skal fungere):

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> 

HOSTS-filen (C: \ Windows \ system32 \ drivers \ etc \ hosts vanligvis):

# localhost entries
127.0.0.1 localhost transitcalculator.localhost

Nå starter XAMPP og du bør være i stand til å få tilgang til http: //transitcalculator.localhost/ og det vil kartlegge rett til den katalogen.

Dette kan være nyttig hvis du prøver å gjenskape et produksjonsmiljø der du utvikler et nettsted som vil sitte på roten av et domenenavn. Du kan for eksempel peker på filer med absolutte stier som vil bære over til serveren:

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

mens i et miljø med aliaser eller underkataloger, ville du trenger å holde styr på hvor de "bildene" katalogen var i forhold til den aktuelle filen.

Svarte 05/08/2008 kl. 15:30
kilden bruker

stemmer
15

Du kan sette Apache å vise sider fra hvor som helst med noen restriksjoner, men det er normalt fordeles på en sikrere form.

Redigering av apache-filer (http.conf er en av de mer vanlige navn) vil tillate deg å sette en hvilken som helst mappe slik det vises i Webroot.

REDIGERE:

alias MinApp c: \ MyApp \

Jeg har redigert mitt svar å inkludere format for å lage et alias i http.conf fil som er liksom som en snarvei i windows eller en symlink henhold un * x der Apache 'later' en mappe er i Webroot. Dette er trolig kommer til å være mer nyttig for deg på lang sikt.

Svarte 04/08/2008 kl. 17:00
kilden bruker

stemmer
8

Som en side note, hvis du prøver å få XAMPP å bruke en nettverksstasjon som dokumentet root må du bruke UNC-baner i httpd.conf. XAMPP vil ikke anerkjenne tilordnede nettverksstasjoner.

For eksempel følgende ikke vil fungere, Document "X: / Webroot"

Men dette vil Document "//192.168.10.100/webroot" (merk skråstreker, ikke omvent skråstrek)

Svarte 28/01/2011 kl. 03:04
kilden bruker

stemmer
4

Ingen av disse løsningene arbeidet lett. Her er den enkleste løsningen å la Apache 2 å være vert for nettsteder utenfor htdocs:

Under "Document" -direktivet i httpd.conf, bør du se en katalog blokk. Erstatt denne katalogen blokk med:

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

HUSK å ikke bruke denne konfigurasjonen i et reelt miljø

Svarte 26/01/2009 kl. 15:11
kilden bruker

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