2009-08-25 12 views
7

Próbuję uruchomić więcej niż jeden wirtualnyhost (?), Na przykład: http:/localhost wskaże jeden projekt, http:/newsite to drugi i http:/myfavourite ponownie inny projekt inny katalog główny.Prowadzenie wielu stron internetowych lokalnie Apache PHP Ubuntu

(każdy http: // http:/tu z powodu ograniczeń hiperłącze księgowania)

nie miałem powodzenia szuka gdzie edytować Apache pliki w/etc/apache2. Czy szukam pliku vhosts?

Każda rada byłaby niesamowita, dziękuję.

Odpowiedz

1

localhost nie ma nic wspólnego z Apache, ale jest aliasem do twojej maszyny (ip 127.x.x.x).

Musisz edytować /etc/hosts, aby osiągnąć to, co chcesz.

dlaczego chcesz to zrobić? nie jest wystarczająco dobry?

+1

Ustawienie właściwego hosta wirtualnego na twoim serwerze dev zapewnia bardziej realistyczne środowisko deweloperskie niż użycie katalogu w/var/www /. – Luke

4

Można edytować swoje/etc/hosts i dodawać wiele nazw wskazujących 127.0.0.1, a następnie dodawać wpisy VirtualHost dla każdej z tych nazw. W zależności od serwera konfiguracja może znajdować się w pliku /etc/apache2/conf/httpd.conf lub w/etc/apache2/sites-available. Jeśli jest to drugie, to here jest pierwszym hitem google, który dostałem dla konfiguracji.

9

Oto rozdział e-książki, która wyjaśnia, jak tworzyć wirtualne hosty dokładnie to, co chcesz zrobić - i przykłady używania Ubuntu: Creating A Local Domain Using Apache Virtual Hosts

W kilku słowach:

  • Najpierw musisz utworzyć VirtualHost
  • Następnie musisz edytować plik hosts (pod Linuksem, to jest /etc/hosts), więc nowa "pseudo-domena" wskazuje na twój komputer.

Dla VirtualHost, z Ubuntu, możesz stworzyć nowy plik w /etc/apache2/sites-available/; na przykład o nazwie your-site.com; będzie zawierać coś takiego:

<VirtualHost *:80> 
    ServerName your-site.com 
    DocumentRoot /.../www/... 

    <Directory /.../www/...> 
     Options Indexes FollowSymLinks Includes 
     AllowOverride All 
     Order allow,deny 
     Allow from all 
    </Directory> 
</VirtualHost> 

I zarejestrować ten plik, więc jest ładowany przez Apache, z tym poleceniem:

sudo a2ensite your-site.com 

A, a następnie załaduj Apache:

sudo /etc/init.d/apache2 reload 


Następnie należy edytować/etc/hosts, aby dodać linię w następujący sposób:

127.0.0.1  your-site.com 

Tak więc "twoja_witryna.com" faktycznie wskazuje na twój własny komputer.


Ważne jest to, że nazwa używana do uzyskania dostępu do witryny w przeglądarce jest tą, która jest zadeklarowana w pliku hosts; musi być również taki sam, jak używany w DirectSerr ServerName w konfiguracji Apache.


Po wykonaniu tej czynności dla jednego VirtualHost ... Tak samo dla każdego innego: zmienia się tylko nazwa strony i jej DocumentRoot.


Mam nadzieję, że to pomoże!

+0

Czy wartość 'NazwaSerwera' musi mieć rozszerzenie? Zauważyłem, że użyłeś 'your-site.com', ale czy mógłbyś zamiast tego użyć czegoś takiego' 'mysite'? – henrywright