Utwórz plik xampp / Apache serve poza folderem htdocs [zamknięty]

Zamknięte. to pytanie nie spełnia wytycznych dotyczących przepełnienia stosu . Obecnie nie przyjmuje odpowiedzi.


chcesz poprawić to pytanie? Update pytanie więc jest on-topic {[9] } dla Stack Overflow.

Zamknięte 7 lat temu .

Popraw to pytanie

Czy jest możliwe skonfigurowanie xampp tak, aby obsługiwał plik spoza katalogu htdocs?

Na przykład, powiedzmy, że mam plik zlokalizowany jako następuje:

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

I moje XAMPP pliki są zwykle serwowane z:

C:\xampp\htdocs\

(bo to domyślna konfiguracja) Czy Jest jakiś sposób, aby Apache rozpoznał i podał mój plik TransitCalculator.php bez przenoszenia go pod htdocs? Najlepiej, żeby Apache miał / miał dostęp do całej zawartości katalogu projects i nie chcę przenosić katalogu projects pod htdocs.

Edit: edited to add Apache to the question tytuł, aby Q/A było bardziej "przeszukiwalne"

Author: Community, 2008-08-04

6 answers

Ok, na pix0r ' S, Sparks' i Dave'S odpowiedzi wygląda na to, że są na to trzy sposoby:


Wirtualne Hosty

  1. Otwórz C:\xampp\apache\conf\extra\httpd-vhosts.conf.
  2. Un-comment ~line 19 (NameVirtualHost *:80).
  3. Dodaj swój wirtualny host (~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
    

    Do koniec pliku (przed Spybot-Search & Destroy rzeczy, jeśli masz to zainstalowane).

  6. Zapisz (być może będziesz musiał zapisać go na pulpicie, zmienić uprawnienia do starego pliku hosts (kliknij prawym przyciskiem myszy > właściwości) i skopiować nowy do katalogu nad starym (lub zmienić nazwę starego), jeśli używasz Visty i masz problemy).
  7. Uruchom Ponownie Apache.

Teraz możesz uzyskać dostęp do tego katalogu, przeglądając http://transitcalculator.localhost / .


Stwórz Alias

  1. Zaczynając od linii ~200 pliku http.conf, skopiuj wszystko pomiędzy <Directory "C:/xampp/htdocs"> i </Directory> (~linia 232) i wklej bezpośrednio poniżej z C:/xampp/htdocs zastąpionym żądanym katalogiem (w tym przypadku C:/Projects), aby nadać serwerowi poprawne uprawnienia do nowego katalogu.

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

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

    (lub cokolwiek jest istotne dla twoje pragnienia) pod blokiem komentarzy Alias, wewnątrz znaczników modułu.


Zmień główny katalog dokumentu

  1. Edit ~ line 176 in C:\xampp\apache\conf\httpd.conf; Zmień DocumentRoot "C:/xampp/htdocs" na #DocumentRoot "C:/Projects" (lub cokolwiek chcesz).

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


Uwagi:

  • musisz użyć ukośników do przodu " / " zamiast ukośników do tyłu "\".
  • nie włączaj końcówki " / " na końcu.
  • uruchom ponownie serwer .
 370
Author: cmcculloh,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2019-02-28 14:24:54

Możesz go przenieść, edytując DocumentRoot ustawienie w XAMPP\apache\conf\httpd.conf.

Powinno być obecnie:

C:/xampp/htdocs

Zmień na:

C:/projects/transitCalculator/trunk

 98
Author: Dave Ward,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2008-08-04 17:00:27

VirtualHost działa również w tym celu i może działać lepiej dla Ciebie, ponieważ możesz hostować kilka projektów bez potrzeby podkatalogów. Oto jak to zrobić:

Httpd.conf (lub extra\httpd-vhosts.conf względem httpd.conf. Końcowe ukośniki " \ " mogą spowodować, że nie zadział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> 

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

# localhost entries
127.0.0.1 localhost transitcalculator.localhost

Teraz uruchom ponownie XAMPP i powinieneś mieć dostęp http://transitcalculator.localhost / i będzie Mapuj prosto do tego katalogu.

Może to być pomocne, jeśli próbujesz odtworzyć środowisko produkcyjne, w którym tworzysz witrynę, która będzie znajdować się w katalogu głównym nazwy domeny. Można na przykład wskazać pliki ze ścieżkami bezwzględnymi, które zostaną przeniesione na Serwer:

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

Podczas gdy w środowisku używającym aliasów lub podkatalogów, musisz dokładnie śledzić, gdzie katalog "images" był względem bieżącego pliku.

 50
Author: pix0r,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2008-08-05 18:06:20

Możesz ustawić Apache do serwowania stron z dowolnego miejsca z dowolnymi ograniczeniami, ale jest on normalnie dystrybuowany w bezpieczniejszej formie.

Edycja plików apache (http.conf jest jedną z bardziej popularnych nazw) pozwoli Ci ustawić dowolny folder tak, aby pojawiał się w Twoim webroocie.

EDIT:

Alias myapp c:\myapp\

Edytowałem swoją odpowiedź, aby uwzględnić format tworzenia aliasu w http.plik conf, który jest jakby skrótem w windows lub dowiązaniem symbolicznym pod un * X, gdzie Apache "udaje", że folder znajduje się w katalogu webroot. To prawdopodobnie będzie bardziej przydatne dla Ciebie w dłuższej perspektywie.

 17
Author: sparkes,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2008-08-04 17:06:58

Jeśli próbujesz zmusić XAMPP do używania dysku sieciowego jako głównego katalogu dokumentu, musisz użyć ścieżek UNC w httpd.conf. XAMPP nie rozpozna zmapowanych dysków sieciowych.

Na przykład poniższe nie będą działać, DocumentRoot "X:/webroot"

Ale to będzie, DocumentRoot "/ / 192.168.10.100 / webroot " (zwróć uwagę na ukośniki do przodu, nie ukośniki do tyłu)

 11
Author: Jason,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2019-03-01 00:09:03

Rozwiązanie pozwalające Apache 2 na hostowanie stron poza htdocs:

Pod dyrektywą "DocumentRoot" w httpd.conf, powinieneś zobaczyć blok katalogów. Zamień ten blok katalogów na:

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

PAMIĘTAJ, ABY NIE UŻYWAĆ TEJ KONFIGURACJI W RZECZYWISTYM ŚRODOWISKU

 8
Author: Leandro,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2019-02-28 14:45:38