Apache VirtualHost i localhost

Pracuję z XAMPP na Mac OS X. Próbuję poprawnie uruchomić stronę symfony dla klienta, naprawdę Nie wiem (jeszcze) symfony, po prostu chcę ją zainstalować i uruchomić.

Zmieniłem swoje etc / hosty w ten sposób:

127.0.0.1 www.mysite.local       

I httpd.conf w ten sposób:

<VirtualHost *:80>
  ServerName www.mysite.local
  DocumentRoot /Applications/MAMP/htdocs/mysite/web
  DirectoryIndex index.php
  <Directory /Applications/MAMP/htdocs/mysite/web>
    AllowOverride All
    Allow from All
  </Directory>
  Alias /sf /Applications/MAMP/htdocs/mysite/lib/vendor/symfony/data/web/sf
  <Directory "/Applications/MAMP/htdocs/mysite/lib/vendor/symfony/data/web/sf">
    AllowOverride All
    Allow from All
  </Directory>
</VirtualHost>

Teraz strona działa (yay!nie mogę już uzyskać dostępu do żadnej z moich innych lokalnych stron, ponieważ localhost jest renderowany jako www.mysite.local . Gdzie się mylę?

Dziękuję!
Author: Jean-Rémy Revy, 2012-06-11

11 answers

To normalne, jeśli to widzisz. Ponieważ jest to pierwszy wpis wirtualnego hosta, pokaże host lokalny.

Powiedzmy na przykład, że nie chcesz, aby ta strona się wyświetlała. Wszystko, co chcesz pokazać, to strona Apache it works, więc możesz zrobić wpis vhost przed mysite.lokalny jako lokalny host i wskaż go na stronę it works.

Ale to normalne. Miałem ten problem wcześniej, więc nie martw się!

 20
Author: The Computer Hugger,
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
2012-06-12 11:59:29

To zadziałało na mnie!

Do prowadzenia projektów typu http://localhost/projectName

<VirtualHost localhost:80>
   ServerAdmin localhost
    DocumentRoot path/to/htdocs/
    ServerName localhost
</VirtualHost>

Do uruchamiania projektów typu http://somewebsite.com lokalnie

<VirtualHost somewebsite.com:80>
     ServerAdmin [email protected]
     DocumentRoot /path/to/htdocs/somewebsiteFolder
     ServerName www.somewebsite.com
     ServerAlias somewebsite.com
</VirtualHost>

To samo dla innych stron internetowych

<VirtualHost anothersite.local:80>
     ServerAdmin [email protected]
     DocumentRoot /path/to/htdocs/anotherSiteFolder
     ServerName www.anothersite.local
     ServerAlias anothersite.com
</VirtualHost>
 81
Author: Ganatra,
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
2014-11-19 10:54:37

localhost zawsze przekieruje do 127.0.0.1. Możesz to oszukać, nazywając swój drugi VirtualHost na inny adres pętli lokalnej, na przykład 127.0.0.2. Upewnij się, że zmienisz również odpowiedni plik hosts, aby to zaimplementować.

Na przykład mój httpd-vhosts.conf wygląda tak:

<VirtualHost 127.0.0.2:80>
    DocumentRoot "D:/6. App Data/XAMPP Shared/htdocs/intranet"
    ServerName intranet.dev
    ServerAlias www.intranet.dev
    ErrorLog "logs/intranet.dev-error.log"
    CustomLog "logs/intranet.dec-access.log" combined

    <Directory "D:/6. App Data/XAMPP Shared/htdocs/intranet">
        Options Indexes FollowSymLinks ExecCGI Includes
        Order allow,deny
        Allow from all
        AllowOverride All
        Require all granted
    </Directory>
</VirtualHost>

(zauważ, że w <VirtualHost> sekcji i wpisałem 127.0.0.2:80. Oznacza to, że ten blok VirtualHost będzie wpływał tylko na żądania adresu IP 127.0.0.2 port 80 , który jest domyślnym portem dla HTTP.

Aby nazwa intranet.dev właściwie, Moja hosts Linia wejścia jest taka:

127.0.0.2 intranet.dev

W ten sposób uniemożliwi ci utworzenie kolejnego bloku VirtualHost dla localhost, co jest niepotrzebne.

 25
Author: Saiful,
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
2014-11-19 10:54:05

Możesz użyć tego:

<VirtualHost *:80>
    DocumentRoot "somepath\Apache2.2\htdocs"
    ServerName localhost 
</VirtualHost>
<VirtualHost *:80>

Jako pierwszy wirtualny host (umieść go przed innym vhostem)

 11
Author: John Smith,
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
2014-11-19 10:54:16

Miałem ten sam problem z dostępem do localhost podczas pracy z virtualHost. Postanowiłem dodać nazwę w virtualHost listen code jak poniżej -

W moim pliku hosts dodałem poniższy kod ( C:\Windows\System32\drivers\etc\hosts) -

127.0.0.1       main_live

I w moim httpd.conf dodałem poniżej kod -

<VirtualHost main_live:80>
    DocumentRoot H:/wamp/www/raj/main_live/
    ServerName main_live
</VirtualHost>
To wszystko. Działa, mogę używać zarówno localhost, phpmyadmin , a także main_live (mój wirtualny projekt) jednocześnie.
 8
Author: Raj,
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
2016-10-27 16:23:20

Dla kogoś, kto robi wszystko opisane tutaj i nadal nie ma dostępu:
Xampp z apache 2.4:

Na httpd-vhost.conf

<VirtualHost *>
    DocumentRoot "D:/xampp/htdocs/dir"
    ServerName something.dev
   <Directory "D:/xampp/htdocs/dir">
    Require all granted #apache v 2.4.4 uses just this
   </Directory>
</VirtualHost>


Nie potrzeba portu, ani ip tutaj, apache konfiguruje go na własnych plikach. Nie ma potrzeby NameVirtualHost *: 80, jest przestarzały, możesz go używać, ale nie rób różnicy.

Następnie, aby edytować hosty, musisz uruchomić notatnik jako ADMINISTRATOR( opisany poniżej), jeśli edytujesz plik bez tego, edytujesz pseudo plik, nie oryginalny (tak, zapisuje i gówno, ale nie prawdziwy plik)
W windows:

znajdź ikonę notatnika, kliknij prawym przyciskiem myszy, Uruchom jako administrator, otwórz plik, przejdź do c:/windows/system32/driver/etc/hosts, zaznacz "Zobacz wszystkie pliki", otwórz hosty.

Jeśli edytujesz go wcześniej, prawdopodobnie zobaczysz, że nie jest to plik, który wcześniej edytowałeś, gdy nie jesteś uruchomiony jako administrator.

Następnie do sprawdź, czy Apache odczytuje Twój httpd-vhost.conf , przejdź do xampFolder / apache / bin, shift + kliknięcie prawym przyciskiem myszy, otwórz polecenie terminal tutaj, otwórz xampp (jak zwykle), Uruchom apache, następnie w linii poleceń wpisz httpd -s, zobaczysz listę wirtualnych hostów, po prostu sprawdź, czy coś.dev tam jest.

 5
Author: sagits,
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
2014-03-28 17:55:32

Dodatkowy opis Dla odpowiedzi Johna Smitha z oficjalnej dokumentacji . Żeby zrozumieć, dlaczego tak jest.

Główny gospodarz odchodzi

Jeśli dodajesz wirtualne hosty do istniejącego serwera www, musisz również Utwórz blok dla istniejącego hosta . Na Nazwa serwera i DocumentRoot zawarte w tym wirtualnym hoście powinny być tak samo jak globalna Nazwa serwera i DocumentRoot. Wymień ten wirtualny host najpierw w pliku konfiguracyjnym tak, że będzie działać jako domyślny host.

Na przykład, aby poprawnie pracować z XAMPP, aby zapobiec nadpisywaniu głównego hosta przez VirtualHost, dodaj następujące linie do httpd-vhosts.conf

# Main host
<VirtualHost *:80>
    ServerName localhost
    DocumentRoot "/xampp/htdocs"
</VirtualHost>

# Additional host
<VirtualHost *:80>
    # over directives there
</VirtualHost>
 4
Author: SiZE,
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
2017-03-12 06:20:01

Zgodnie z tą dokumentacją: Obsługa wirtualnych hostów opartych na nazwach

Być może brakuje Ci następującej dyrektywy:

NameVirtualHost *:80
 2
Author: Bjarni Rúnar,
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
2012-06-11 22:31:46

Wystarczy zmienić <VirtualHost *:80> na <VirtualHost 127.0.0.1:80>.

Wtedy domyślne DocumentRoot będzie służyć dla wszystkich domen lub adresów IP, które wskazują na twój serwer i określone VirtualHost będzie działać.

 1
Author: SaEEd,
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
2017-03-25 15:26:39

Może to być spowodowane tym, że Twój Katalog WWW (jak wspomniano "/Applications/MAMP/htdocs/mysite/web") jest pusty.

Moja sugestia polega najpierw na zrobieniu projektu, a następnie pracy nad stworzeniem wirtualnego hosta. Byłem w podobnej sytuacji. Używałem pustego folderu w DocumentRoot w httpd-vhosts.confiz and I cant access my shahg101.com Strona

 0
Author: Shahmir,
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
2016-04-27 07:48:33

Używam Ubuntu 16.04, to mi się udało:

  1. Otwórz terminal i płytę cd do /etc/apache2/sites-available. Tam znajdziesz plik o nazwie 000-default.conf.
  2. skopiuj ten plik: cp 000-default.conf example.local.conf
  3. otwórz ten nowy plik(używam Nano; używaj tego, co Ci odpowiada).
  4. zobaczysz wiele skomentowanych linii, które możesz usunąć.
  5. Zmień <VirtualHost *:80> na <VirtualHost example.local:80>
  6. Zmień główny dokument, aby odzwierciedlał lokalizację plików.
  7. Dodaj następujący wiersz: ServerName example.local i jeśli potrzebujesz, dodaj ten wiersz: ServerAlias www.example.local
  8. Zapisz plik i uruchom ponownie Apache: service Apache2 restart

Otwórz przeglądarkę i przejdź do example.local. Powinieneś zobaczyć swoją stronę.

 0
Author: Kenneth Odle,
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
2016-10-09 21:51:31