Dokonaj XAMPP / Apache służyć plik poza htdocs

głosy
263

Czy jest możliwe aby skonfigurować xampp służyć do pliku spoza htdocskatalogu?

Załóżmy, że mam plik znajdujący się w następujący sposób:

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

i moi XAMPP pliki są zazwyczaj podawane się z:

C:\xampp\htdocs\

(bo to domyślna konfiguracja) Czy istnieje jakiś sposób, aby Apache rozpoznać i służyć do mojego TransitCalculator.phppliku bez przenoszenia go na podstawie htdocs? Korzystnie Chciałbym Apache służyć górę / mieć dostęp do całej zawartości katalogu projektów, a nie chcę, aby przejść do katalogu projektów w ramach htdocs.

edit: Apache edytowane dodać do tytułu zapytania, aby Q / A więcej „przeszukiwania”

Utwórz 04/08/2008 o 17:54
źródło użytkownik
W innych językach...                            


6 odpowiedzi

głosy
14

Można ustawić Apache służyć strony z dowolnego miejsca z wszelkich ograniczeń, ale to zazwyczaj dystrybuowane w bardziej bezpiecznego formularza.

Edycja plików (apache http.conf jest jednym z bardziej popularnych nazwisk) będzie można ustawić dowolny folder, więc wydaje się w swojej webroot.

EDYTOWAĆ:

ps MojaApl c: \ MojaApl \

Mam edytowane moją odpowiedź na to format dla tworzenia aliasu w pliku http.conf która jest coś w rodzaju skrótu w oknach lub miejsce linku pod UN * X gdzie „udaje” Apache folder jest w webroot. Jest to prawdopodobnie będzie bardziej przydatna w dłuższej perspektywie.

Odpowiedział 04/08/2008 o 18:00
źródło użytkownik

głosy
90

Można przeprowadzić go przez edycję DocumentRoot ustawienie w XAMPP \ apache \ conf \ httpd.conf.

Powinien on być obecnie:

C: / xampp / htdocs

Zmień go na adres:

C: / projekty / transitCalculator / trunk

Odpowiedział 04/08/2008 o 18:00
źródło użytkownik

głosy
324

Ok, za pix0r „s, Iskry ” i Dave odpowiedzi „s wygląda na to istnieją trzy sposoby, aby to zrobić:


hostów wirtualnych

  1. Otwórz C: \ xampp \ apache \ conf \ extra \ httpd-vhosts.conf.
  2. Un-komentarz linia 19 ( NameVirtualHost *:80).
  3. Dodaj swoją wirtualnego hosta (~ linia 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. Otwórz plik hosts (C: \ Windows \ system32 \ drivers \ etc \ hosts).

  5. Dodaj

    127.0.0.1 transitcalculator.localhost #transitCalculator
    

    na końcu pliku (przed Spybot - Search & Destroy rzeczy, jeśli trzeba, że ​​jest zainstalowany).

  6. Save (Być może trzeba zapisać go na pulpicie, należy zmienić uprawnienia do pliku starego gospodarze (prawy przycisk myszy> Właściwości), a następnie skopiować na nową w katalogu nad starym (lub zmienić nazwę starego), jeśli używasz Vista i mają kłopoty).
  7. Zrestartować Apache.

Teraz masz dostęp do tego katalogu poprzez przejście do http: //transitcalculator.localhost/ .


Złóż Alias

  1. Począwszy ~ linii 200 swojego http.confpliku, kopiowanie wszystko między <Directory "C:/xampp/htdocs">i </Directory>(~ linia 232) i wklej go natychmiast poniżej C:/xampp/htdocszastąpione żądanego katalogu (w tym przypadku C:/Projects), aby dać swoim serwerze poprawnych uprawnień dla nowego katalogu.

  2. Znajdź <IfModule alias_module></IfModule>sekcję (~ linia 300) i dodać

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

    (lub to, co jest istotne dla swoich pragnień) poniżej Aliasbloku komentarza, wewnątrz znaczników modułu.


Zmień swój korzeń dokumentu

  1. Edit ~ linia 176 w katalogu C: \ xampp \ apache \ conf \ httpd.conf; zmieni DocumentRoot "C:/xampp/htdocs"się #DocumentRoot "C:/Projects"(lub cokolwiek chcesz).

  2. Edit ~ linia 203, aby dopasować swoją nową lokalizację (w tym przypadku C:/Projects).


Uwagi:

  • Musisz użyć ukośniki „/” zamiast z powrotem tnie „\”.
  • Nie obejmują końcowego znaku „/” na końcu.
  • zrestartować serwer .
Odpowiedział 04/08/2008 o 18:05
źródło użytkownik

głosy
49

VirtualHost będzie również pracować na to i może działać lepiej dla Ciebie, jak można obsługiwać kilka projektów bez konieczności podkatalogów. Oto jak to zrobić:

httpd.conf (albo dodatkowo. \ httpd-vhosts.conf stosunku do httpd.conf spływu tnie „\” może spowodować, że nie będzie działać):

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> 

plik HOSTS (c: \ windows \ system32 \ drivers \ etc \ hosts zazwyczaj):

# localhost entries
127.0.0.1 localhost transitcalculator.localhost

Teraz ponownie uruchomić XAMPP i powinieneś być w stanie uzyskać dostęp http: //transitcalculator.localhost/ i będzie map prosto do tego katalogu.

Może to być pomocne, jeśli starasz się replikować środowisko produkcyjne gdzie jesteś rozwijający witrynę, która będzie siedzieć na korzeniu nazwy domeny. Można, na przykład, punkt do plików ze ścieżkami bezwzględnymi, które będą przeniesione do serwera:

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

natomiast w środowisku używając aliasów lub podkatalogów, to trzeba śledzić, gdzie dokładnie katalog „images” był w stosunku do bieżącego pliku.

Odpowiedział 05/08/2008 o 16:30
źródło użytkownik

głosy
4

Żadne z tych rozwiązań nie sprawdziło się łatwo. Oto najprostsze rozwiązanie, aby umożliwić Apache 2 gospodarzem stron poza htdocs:

Pod „DocumentRoot” dyrektywy w httpd.conf, powinieneś zobaczyć blok katalogów. Zastąpić ten blok z katalogów:

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

Pamiętać, aby nie tej konfiguracji w rzeczywistym środowisku

Odpowiedział 26/01/2009 o 16:11
źródło użytkownik

głosy
8

Na marginesie, jeśli starasz się uzyskać XAMPP w użyciu dysk sieciowy jako głównego dokumentu trzeba użyć ścieżki UNC w httpd.conf. XAMPP nie rozpozna swoich zmapowanych dysków sieciowych.

Na przykład następujące nie będzie działać, DocumentRoot „X: / Webroot”

Będzie to jednak, DocumentRoot „//192.168.10.100/webroot” (zwróć uwagę na ukośniki, a nie wstecz ukośniki)

Odpowiedział 28/01/2011 o 04:04
źródło użytkownik

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