Czy można skonfigurować xampp, aby wyświetlał plik poza htdocs
katalogiem?
Powiedzmy na przykład, że mam plik zlokalizowany w następujący sposób:
C:\projects\transitCalculator\trunk\TransitCalculator.php
a moje pliki xampp są zwykle dostarczane z:
C:\xampp\htdocs\
(ponieważ taka jest konfiguracja domyślna) Czy istnieje sposób, aby Apache rozpoznał i podał mój TransitCalculator.php
plik bez przenoszenia go htdocs
? Wolałbym, żeby Apache obsługiwał / miał dostęp do całej zawartości katalogu projektów i nie chcę przenosić katalogu projektów htdocs
.
edit: edytowane w celu dodania Apache do tytułu pytania, aby Q / A była bardziej „przeszukiwalna”
php
apache
xampp
server-configuration
cmcculloh
źródło
źródło
php -S <host>:<port>
. Na przykładphp -S localhost:80
.Odpowiedzi:
Ok, na odpowiedzi pix0r , Sparks i Dave'a wygląda na to, że są na to trzy sposoby:
Wirtualne hosty
NameVirtualHost *:80
).Dodaj swojego wirtualnego hosta (~ linia 36):
Otwórz plik hosts (C: \ Windows \ System32 \ drivers \ etc \ hosts).
Dodaj
na końcu pliku (przed Spybot - Search & Destroy rzeczy, jeśli masz zainstalowany).
Teraz możesz uzyskać dostęp do tego katalogu, przechodząc do http: //transitcalculator.localhost/ .
Utwórz alias
Począwszy od ~ 200 wiersza
http.conf
pliku, skopiuj wszystko pomiędzy<Directory "C:/xampp/htdocs">
i</Directory>
(~ wiersz 232) i wklej go bezpośrednio poniżej,C:/xampp/htdocs
zastępując go wybranym katalogiem (w tym przypadkuC:/Projects
), aby dać serwerowi odpowiednie uprawnienia do nowego katalogu.Znajdź
<IfModule alias_module></IfModule>
sekcję (~ linia 300) i dodaj(lub cokolwiek, co odpowiada Twoim pragnieniom) poniżej
Alias
bloku komentarza, wewnątrz tagów modułu.Zmień katalog główny dokumentu
Edytuj ~ wiersz 176 w C: \ xampp \ apache \ conf \ httpd.conf; zmień
DocumentRoot "C:/xampp/htdocs"
na#DocumentRoot "C:/Projects"
(lub cokolwiek chcesz).Edytuj ~ wiersz 203, aby dopasować nową lokalizację (w tym przypadku
C:/Projects
).Uwagi:
źródło
Order allow,deny Allow from all
nie działało dla mnie, aleRequire all granted
działało.Możesz go przenieść, edytując ustawienie DocumentRoot w XAMPP \ apache \ conf \ httpd.conf.
Obecnie powinno to być:
Zmień na:
źródło
VirtualHost również by na to działał i może działać lepiej dla ciebie, ponieważ możesz obsługiwać kilka projektów bez potrzeby podkatalogów. Oto jak to zrobić:
httpd.conf (lub dodatkowy \ httpd-vhosts.conf w stosunku do httpd.conf. Końcowe ukośniki „\” mogą spowodować, że nie będzie działać):
Plik HOSTS (zwykle c: \ windows \ system32 \ drivers \ etc \ hosts):
Teraz zrestartuj XAMPP i powinieneś być w stanie uzyskać dostęp do http: //transitcalculator.localhost/, a zostanie on zmapowany bezpośrednio do tego katalogu.
Może to być pomocne, jeśli próbujesz replikować środowisko produkcyjne, w którym tworzysz witrynę, która będzie znajdować się w katalogu głównym nazwy domeny. Możesz na przykład wskazać pliki z bezwzględnymi ścieżkami, które zostaną przeniesione na serwer:
podczas gdy w środowisku używającym aliasów lub podkatalogów musisz dokładnie śledzić, gdzie katalog „images” był względny w stosunku do bieżącego pliku.
źródło
X:\myfolder
.). Kiedy korzystam z tej metody, pojawia się ostrzeżenie „Dostęp zabroniony”. Czy to oznacza, że użytkownik Apache nie ma dostępu do odczytu dysku?Directory
zastąpOrder allow,deny
iAllow from all
zRequire all granted
. Zobacz stackoverflow.com/questions/9110179/…Możesz ustawić Apache do wyświetlania stron z dowolnego miejsca z dowolnymi ograniczeniami, ale zwykle jest on dystrybuowany w bezpieczniejszej formie.
Edycja plików apache (http.conf jest jedną z bardziej popularnych nazw) pozwoli ci ustawić dowolny folder tak, aby pojawił się w twoim katalogu głównym.
EDYTOWAĆ:
alias myapp c: \ myapp \
Zredagowałem swoją odpowiedź, aby uwzględnić format tworzenia aliasu w pliku http.conf, który jest jak skrót w systemie Windows lub dowiązanie symboliczne pod un * x, gdzie Apache „udaje”, że folder znajduje się w katalogu głównym. Będzie to prawdopodobnie bardziej przydatne dla ciebie w dłuższej perspektywie.
źródło
Jeśli próbujesz przekonać XAMPP do używania dysku sieciowego jako katalogu głównego dokumentu, musisz użyć ścieżek UNC w httpd.conf. XAMPP nie rozpozna mapowanych dysków sieciowych.
Na przykład następujące nie będzie działać, DocumentRoot „X: / webroot”
Ale tak się stanie, DocumentRoot „//192.168.10.100/webroot” (zwróć uwagę na ukośniki do przodu, a nie do tyłu)
źródło
Rozwiązanie pozwalające Apache 2 na hostowanie stron internetowych poza htdocs:
Pod dyrektywą „DocumentRoot” w httpd.conf powinieneś zobaczyć blok katalogu. Zamień ten blok katalogu na:
PAMIĘTAJ, ABY NIE UŻYWAĆ TEJ KONFIGURACJI W PRAWDZIWYM ŚRODOWISKU
źródło