Serwer WWW Apache to najpopularniejszy sposób hostowania treści internetowych w Internecie. Korzysta z niego ponad połowa wszystkich aktywnych witryn internetowych na całym świecie, ponieważ Apache to niezwykle wydajne i elastyczne narzędzie do hostingu treści internetowych.

Apache podzielony jest na osobne bloki, z których każdy odpowiada za swoje konkretne zadanie i może być konfigurowany niezależnie od pozostałych bloków. Podstawową jednostką odpowiedzialną za organizację wykorzystania domen na Twoim serwerze jest wirtualny host.

Host wirtualny umożliwia administratorowi hostowanie kilku domen lub witryn na jednym serwerze i jednym adresie IP. Jest to istotne dla tych, którzy chcą hostować kilka stron internetowych na jednym VPS.

Każdej skonfigurowanej domenie zostanie przypisany oddzielny katalog na serwerze, a odwiedzający, którzy dotrą do Twojej witryny za pośrednictwem różnych domen, nigdy nie spotkają się na swojej drodze i nawet nie będą wiedzieć, że pod tym adresem IP znajdują się inne witryny. Schemat ten może obejmować nieograniczoną liczbę domen, subdomen i witryn na nich; możliwości są ograniczone jedynie mocą sprzętu, na którym zainstalowany jest Apache.

W tym artykule dowiesz się, jak skonfigurować wirtualne hosty w systemie Ubuntu 16.04 i udostępniać różne treści różnym użytkownikom w zależności od domeny określonej w pasku adresu.

Przygotowanie

Zanim zaczniesz wykonywać czynności opisane w tym artykule, zdecydowanie zaleca się utworzenie użytkownika z uprawnieniami root, jeśli jeszcze tego nie zrobiłeś. Jak to zrobić, przeczytasz w tym artykule, wykonując kroki nr 1-4.

Dodatkowo musisz mieć zainstalowany serwer WWW Apache2. Jeśli jeszcze tego nie zrobiłeś, zainstaluj go, uruchamiając następujące polecenia:

Sudo apt-get update sudo apt-get install Apache2

Po wykonaniu powyższych kroków możemy zaczynać.

Dla przejrzystości w tym samouczku zostaną utworzone wirtualne hosty dla domen example.com i test.com. W całym artykule domeny te będą używane we wszystkich poleceniach i plikach konfiguracyjnych, a podczas konfigurowania serwera konieczne będzie zastąpienie tych dwóch domen tymi, których chcesz używać.

Jeśli nie masz jeszcze domen lub z jakiegoś powodu nie chcesz łączyć ich ze swoim VPS, krok szósty tego przewodnika zawiera instrukcje, w jaki sposób możesz emulować korzystanie z domen za pomocą pliku hosts.

Krok pierwszy — utwórz drzewo katalogów

Pierwszą rzeczą, którą powinieneś zrobić, to przygotować katalogi dla swoich domen. Katalog główny Apache znajduje się w /var/www i tutaj utworzymy katalogi dla każdej domeny, której chcemy używać. W każdym z tych katalogów utworzymy folder public_html, w którym będziemy umieszczać pliki naszej witryny.

W przypadku przykładowych domen polecenia tworzenia katalogów będą wyglądać następująco:

Sudo mkdir -p /var/www/example.com /public_html sudo mkdir -p /var/www/test.com /public_html

Domeny, które będziesz obsługiwać za pomocą swojego VPS, są podświetlone na czerwono.

Krok drugi – nadanie praw dostępu

Stworzyliśmy strukturę katalogów dla naszych domen, ale na tym etapie dostęp do tych katalogów ma tylko użytkownik root. Jeśli chcemy, aby zwykły użytkownik mógł modyfikować pliki, musimy skonfigurować uprawnienia, uruchamiając następujące polecenia:

Sudo chown -R $USER:$USER /var/www/example.com /public_html sudo chown -R $USER:$USER /var/www/test.com /public_html

Zmienna $USER przyjmuje wartość nazwy użytkownika, na którym jesteś aktualnie zalogowany, gdy tylko naciśniesz Enter. Tym samym po wykonaniu tych poleceń nasz aktualny użytkownik zostaje przypisany jako właściciel katalogów public_html, w których będziesz przechowywać zawartość swoich stron.

Oprócz pełnych praw dostępu dla bieżącego użytkownika, musisz upewnić się, że wszystkie Twoje foldery internetowe są czytelne „dla każdego”, jest to konieczne do prawidłowego przetwarzania żądań i wyświetlania witryn:

Sudo chmod -R 755 /var/www

Teraz nasz serwer ma niezbędne uprawnienia do wyświetlania treści odwiedzającym, a nasz użytkownik może tworzyć i modyfikować tę treść w katalogach.

Krok trzeci — utwórz strony testowe dla każdego hosta wirtualnego

Stworzyliśmy strukturę katalogów i skonfigurowaliśmy uprawnienia do nich. Czas opublikować treść.
Na tym etapie będziemy musieli jedynie upewnić się, że wszystko jest poprawnie skonfigurowane i działa, dlatego ograniczymy się do prostych plików Index.html dla każdego hosta.
Zacznijmy od example.com. Możesz utworzyć plik Index.html i otworzyć go w edytorze tekstu, uruchamiając polecenie:

Nano /var/www/example.com /public_html/index.html

Wewnątrz tego pliku umieścimy mały kod HTML, dzięki któremu będziemy mogli zrozumieć, że dotarliśmy do potrzebnej nam strony. Na przykład to:

Witamy na przykład.com!

Pracuje! Host wirtualny example.com jest poprawnie skonfigurowany!

Zapisz i zamknij plik.
Zróbmy kopię nowo utworzonego pliku, aby wykorzystać go jako bazę dla podobnego pliku dla domeny test.com:

Cp /var/www/example.com /public_html/index.html /var/www/test.com /public_html/index.html

Otwórzmy kopię pliku i zmieńmy w nim kilka wartości:

Nano /var/www/test.com/public_html/index.html Witamy na Test.com!

Pracuje! Wirtualny host test.com jest poprawnie skonfigurowany!

Zapisz i zamknij plik. Teraz mamy strony do testowania działania wirtualnych hostów.

Krok czwarty – utworzenie plików konfiguracyjnych hosta wirtualnego

Pliki konfiguracyjne hosta wirtualnego to pliki określające, jak powinien zachowywać się Apache podczas wysyłania żądań do różnych domen.
Domyślnie Apache ma już jeden taki plik - 000-default.conf, możemy go użyć jako przykładu i punktu wyjścia.
Musimy skopiować plik 000-default.conf dla pierwszej domeny, skonfigurować go według naszych potrzeb, następnie skopiować już zmodyfikowany plik i skonfigurować go dla drugiej domeny, dokonując drobnych poprawek. Warto zauważyć, że wszystkie nazwy plików konfiguracyjnych hosta wirtualnego w Ubuntu muszą kończyć się na .conf

Utwórzmy pierwszy plik konfiguracyjny

Zacznijmy od skopiowania pliku 000-default.conf dla naszej pierwszej domeny:

Sudo cp /etc/apache2/sites-available/000-default.conf /etc/apache2/sites-available/example.com .conf

Otwórz nowy plik w edytorze tekstu z uprawnieniami użytkownika root:

Sudo nano /etc/apache2/sites-available/example.com .conf

Powinieneś zobaczyć coś takiego (komentarze zostały usunięte z pliku, aby poprawić przejrzystość):

ServerAdmin webmaster@localhost DocumentRoot /var/www/html Dziennik błędów $(APACHE_LOG_DIR)/error.log Dziennik niestandardowy $(APACHE_LOG_DIR)/access.log łącznie

Jak widać struktura konfiguracji jest dość prosta. Zmienimy kilka parametrów, a także dodamy kilka własnych, aby ten plik opisywał naszą pierwszą domenę. Dzięki temu plikowi wszelkie żądania otrzymane na porcie 80, standardowym porcie dla żądań HTTP, zostaną przetworzone.

Na początek zmieńmy parametr ServerAdmin, umieśćmy tam adres e-mail, na który administrator serwisu będzie otrzymywał wiadomości:

Administrator serwera [e-mail chroniony]

Następnie musisz dodać dwa parametry. Pierwsza, ServerName, definiuje domenę, dla której żądania będą przetwarzane przez ten wirtualny host. Drugi, ServerAlias, definiuje dodatkowe nazwy dla Twojej witryny, które będą traktowane dokładnie tak samo jak domena główna. Przydaje się to np. do dopasowania domeny głównej i www.***.

Nazwa Serwera przykład.com Alias ​​Serwera www.example.com

Ostatnią rzeczą, którą musimy zmienić w podstawowym pliku konfiguracyjnym, jest parametr DocumentRoot, który określa lokalizację katalogu, z którego będzie ładowana nasza witryna. W pierwszym kroku naszego przewodnika utworzyłeś już niezbędne katalogi, więc napiszmy żądany adres do pliku:

DocumentRoot /var/www/example.com /public_html

Po tych manipulacjach nasz plik powinien wyglądać mniej więcej tak:

Administrator serwera [e-mail chroniony] Nazwa_serwera przykład.com Alias ​​serwera www.example.com DocumentRoot /var/www/example.com /public_html ErrorLog $(APACHE_LOG_DIR)/error.log CustomLog $(APACHE_LOG_DIR)/access.log łącznie

Zapiszmy i zamknijmy.

Skopiujmy pierwszego Virtual Hosta i skonfigurujmy go do obsługi drugiej domeny

Teraz, gdy pierwszy plik konfiguracyjny jest gotowy, możemy go skopiować i skonfigurować dla drugiej domeny.

Sudo cp /etc/apache2/sites-available/example.com .conf /etc/apache2/sites-available/test.com .conf

Otwórzmy nowy plik z uprawnieniami roota:

Sudo nano /etc/apache2/sites-available/test.com.conf

Teraz musimy zmienić wszystkie parametry, konfigurując je dla drugiej domeny. Powinno to wyglądać mniej więcej tak:

Administrator serwera [e-mail chroniony] NazwaSerwera test.com ServerAlias ​​​​www.test.com DocumentRoot /var/www/test.com /public_html ErrorLog $(APACHE_LOG_DIR)/error.log CustomLog $(APACHE_LOG_DIR)/access.log łącznie

Po zakończeniu zapisz i zamknij plik.

Krok piąty – aktywacja wirtualnych hostów

Teraz, gdy utworzyliśmy pliki konfiguracyjne hosta, musimy je aktywować. Apache ma kilka narzędzi, które pozwalają wykonywać operacje aktywacji i dezaktywacji hosta.

Użyj narzędzia a2ensite, aby aktywować swoje hosty. Przykład użycia:

Sudo a2ensite przykład.com .conf sudo a2ensite test.com .conf

Po wykonaniu tych poleceń musisz wyłączyć standardowy host:

Sudo a2dissite 000-default.conf

Aby zmiany zaczęły obowiązywać, musisz ponownie uruchomić Apache:

Sudo systemctl uruchom ponownie Apache2

Aby ponownie uruchomić, możesz także użyć innego polecenia:

Uruchom ponownie usługę Sudo Apache2

To polecenie również zadziała, ale możesz nie uzyskać wyniku, jeśli spróbujesz go w innych dystrybucjach niż systemctl.

Krok szósty – konfiguracja pliku hosts (opcjonalnie)

Jeśli skonfigurowałeś wirtualne hosty dla rzeczywistych domen i skonfigurowałeś DNS tak, aby żądania dotyczące domen były przekazywane do Twojego serwera, wszystko jest w porządku. Jeśli nie masz jeszcze domen lub z jakiegoś powodu nie chcesz jeszcze przyłączać ich do swojego serwera, możesz skorzystać z pliku hosts swojego komputera lokalnego, aby zasymulować przejście przez żądaną domenę i przetestować działanie hosta wirtualnego .
Podczas wykonywania opisanych poniżej kroków żądania określonych domen z Twojego komputera lokalnego zostaną przechwycone i siłą przekierowane na adres IP Twojego VPS, z pominięciem serwerów DNS. W takim przypadku dane o przekierowaniu będą przetwarzane wyłącznie dla Twojego komputera lokalnego, co jest bardzo wygodne do testowania różnych systemów na etapie tworzenia strony internetowej, w tym do testowania wirtualnego hosta.

Upewnij się, że konfigurujesz komputer lokalny, a nie VPS. Aby dokonać zmian w pliku hosts, musisz mieć uprawnienia administratora lub znać hasło do konta administratora. Jeśli używasz systemu operacyjnego Linux lub Mac, uruchom następujące polecenie:

Sudo nano /etc/hosts

Jeśli używasz systemu operacyjnego Windows, plik hosts znajdziesz pod adresem:

C:\Windows\System32\drivers\etc\hosts

W systemie Windows ten plik jest ukryty i jest plikiem systemowym; może być konieczne włączenie wyświetlania plików ukrytych i systemowych w ustawieniach folderu.

Musisz dodać do pliku domeny, których użyłeś w tym przewodniku oraz publiczny adres IP swojego VPS. W przypadku domen, z których korzystałem, zakładając, że mój adres IP VPS to 111.111.111.111, wpisy, które należy dodać, będą wyglądać następująco:

127.0.0.1 host lokalny 111.111.111.111 przykład.com 111.111.111.111 test.com

Zapisz i zamknij plik. Teraz wszystkie żądania dotyczące domen example.com i test.com będą automatycznie przekierowywane do naszego VPS 111.111.111.111 i przetwarzane przez wirtualne hosty tak, jakbyśmy korzystali z prawdziwych domen.

Krok siódmy – kontrola wydajności

Teraz wszystko jest skonfigurowane i możesz sprawdzić działanie wirtualnych hostów, wpisując example.com w pasku adresu przeglądarki. Jeśli wszystko jest w porządku, zobaczysz następującą stronę:

Podobnie, gdy zapytasz domenę test.com, zobaczysz odpowiednią stronę:

Jeśli obie strony otwierają się normalnie, możemy założyć, że dwa wirtualne hosty są skonfigurowane i działają poprawnie na Twoim serwerze. Jeśli dokonałeś zmian w pliku hosts, możesz je usunąć, aby nie zaśmiecać ustawień systemowych niepotrzebnymi informacjami.

Wniosek

Jeśli dokładnie wykonałeś wszystkie punkty tego przewodnika, Twój serwer został pomyślnie skonfigurowany do obsługi dwóch wirtualnych hostów. Możesz kontynuować i powtarzając wszystkie punkty, dodać tyle domen, ile uznasz za konieczne. Nie wstydź się, Apache nie ma ograniczeń programowych co do liczby wirtualnych hostów, liczba domen i witryn, które serwer może przetworzyć, jest ograniczona jedynie możliwościami technicznymi sprzętu, na którym zainstalowany jest Apache.

W tym artykule wyjaśniono, jak utworzyć wiele hostów wirtualnych na komputerze lokalnym. Ta czynność jest konieczna, aby webmasterzy mogli ją wykonać, gdy tworzą kilka witryn.

Najpierw małe wyjaśnienie.

Co to jest host wirtualny? Jest to konfiguracja lokalnego serwera WWW, która powoduje, że serwer WWW odpowiada na podaną nazwę, a nie tylko adres IP 127.0.0.1 lub alias hosta lokalnego. Oznacza to, że po skonfigurowaniu hosta wirtualnego o nazwie site.ru lokalny serwer internetowy zacznie odpowiadać na ten adres URL w przeglądarce.

Serwer WWW można skonfigurować z wieloma nazwami witryn. Następnie serwer WWW zacznie udostępniać strony odpowiadające katalogowi, w którym znajdują się dane o podanej nazwie. Na przykład istnieją dwa wirtualne hosty - site.ru i money.com. Katalog roboczy /var/www/site.ru jest skonfigurowany dla site.ru, a katalog roboczy /var/www/money.com jest skonfigurowany dla money.com. Jeśli teraz uzyskasz dostęp do site.ru w przeglądarce, serwer WWW wygeneruje strony z katalogu /var/www/site.ru, a jeśli uzyskasz dostęp do money.com, serwer WWW wygeneruje strony z katalogu /var/www/ katalog money.com. Jak dokonać takiego ustawienia opisano w tym artykule.

W Debian 5.xx, serwer Apache-2 jest gotowy do pracy z wirtualnymi hostami od razu po instalacji. Ale jest skonfigurowany tylko na jednym (domyślnym) hoście, który jest dostępny jako localhost . Aby dodać kolejny wirtualny host, wykonaj następujące czynności:

1. Należy dodać pusty plik o dowolnej nazwie do katalogu /etc/apache2/sites-available. Dla wygody lepiej podać nazwę pliku zawierającą nazwę wirtualnego hosta. Na przykład, jeśli planujesz dodać hosta wirtualnego o nazwie studio.ru, musisz ustawić nazwę pliku na studio.ru.conf.

2. W tym pliku musisz wpisać (w przybliżeniu) następujące dane:

Nazwa serwera studio.ru
Alias ​​serwera www.studio.ru

Katalog główny dokumentu „/var/www/studio”


pozwolić wszystkim
Opcje +Indeksy

  • ServerName, ServerAlias ​​to adres URL wpisany w przeglądarkę, na który ten wirtualny host powinien odpowiedzieć;
  • DocumentRoot jest katalogiem głównym tego wirtualnego hosta;
  • Sekcja katalogów - ustawienie praw dostępu do określonego katalogu. W tym przypadku konfigurowane są prawa dostępu do katalogu głównego hosta wirtualnego.

Należy zwrócić uwagę na parametr sekcji VirtualHost. Tutaj jest to zapisane jako „*:80”. Ale zdecydowanie musisz zajrzeć do pliku /etc/apache2/sites-available/default i zobacz, jaki parametr jest tam zapisany w tej samej sekcji VirtualHost. Jeśli zapisane jest „*”, to w naszym pliku musimy również wpisać „*”.

Innymi słowy, musisz zajrzeć do pliku /etc/apache2/ports.conf. Tam musisz znaleźć dyrektywę:

NazwaWirtualny Host *:80

Jakakolwiek wartość znajduje się w tej dyrektywie (tutaj - „*:80”), wartość ta musi być określona jako parametr sekcji VirtualHost we wszystkich plikach w katalogu /etc/apache2/sites-available, w przeciwnym razie hosty nie będą widoczne .

Częstym błędem jest zapisanie „*.80” w pliku /etc/apache2/ports.conf, ale „*” w pliku hosta w sekcji VirtualHost. Mimo że maska ​​„*” zakrywa maskę „*.80”, serwer Apache nie rozumie takiego rekordu. Przy tej konfiguracji serwer Apache nie znajdzie wymaganego hosta!

3. Musimy udać się do katalogu /etc/apache2/sites-enabled i utworzyć dowiązanie symboliczne do pliku, który tam utworzyliśmy:

# cd /etc/apache2/sites-enabled
# ln -s /etc/apache2/sites-available/studio.ru.conf studio.ru.conf

4. Musisz zrestartować Apache za pomocą poleceń:

# /etc/init.d/apache2 zatrzymaj
Zatrzymywanie serwera WWW: Apache2 ... czekam .

# Uruchom plik /etc/init.d/apache2
Uruchamianie serwera WWW: Apache2.

Podczas ponownego uruchamiania należy sprawdzić, czy w konsoli nie pojawiają się jakieś komunikaty o błędach lub ostrzeżenia. W normalnie skonfigurowanym Apache nie powinny pojawiać się żadne komunikaty o błędach (ani nawet ostrzeżenia!).

5. Ostatnim krokiem jest otwarcie pliku /etc/hosts i wpisanie w nim nowej linii o następującej treści:

127.0.0.1 studio.ru

umożliwi to przeglądarce dostęp do Apache lokalnie, zamiast szukać tej witryny w Internecie.

To wszystko, konfiguracja została zakończona. Nie wymaga ponownego uruchomienia.

Możesz wpisać adres URL w przeglądarce http://studio.ru/index.html, a plik powinien się otworzyć /var/www/studio/index.html(jeśli jest). Dzięki temu od razu wiadomo, że wirtualny host został utworzony i jest wyświetlany w przeglądarce. Inne wirtualne hosty dodawane są w podobny sposób.

Witam wszystkich czytelników bloga, w tym artykule opiszę proces konfiguracji wirtualnych hostów w Apache na systemie Ubuntu 14. Myślę, że opisane kroki można zastosować także we wcześniejszej/późniejszej wersji Ubuntu.

Wstęp

Następnie przyjrzymy się tworzeniu wirtualnego hosta dla nazwy domeny przykład.com. W przypadku domen cyrylicowych musisz przetłumaczyć nazwę domeny na punycode, na przykład korzystając z tej usługi:

Krok 1. Utwórz strukturę katalogów

Na tym etapie musisz utworzyć strukturę katalogów zawierającą dane witryny, które będą wyświetlane użytkownikom.

Nasz katalog główny (lub katalog główny dokumentu) zostanie skonfigurowany tak, aby korzystał z katalogów w katalogu /var/www. Tutaj utworzymy katalog dla wirtualnego hosta przykład.com, który planujemy skonfigurować. Utwórzmy także podkatalog publiczny_html, który będzie zawierał pliki witryny.

Utwórzmy niezbędne katalogi za pomocą następującego polecenia:

Sudo mkdir -p /var/www/ przykład.com/public_html

Krok 2. Przypisz prawa dostępu

Mamy teraz strukturę katalogów dla plików witryny, ale właścicielem tych katalogów jest użytkownik root. Jeśli chcemy, aby zwykli użytkownicy mogli zmieniać pliki w katalogu internetowym, możemy zmienić ich właściciela za pomocą następującego polecenia:

Sudo chown -R $USER:$USER /var/www/ przykład.com/public_html

Zmienna $USER zawiera nazwę użytkownika, pod którą jesteś aktualnie zalogowany. Teraz bieżący użytkownik jest właścicielem katalogu public_html, w którym będziemy przechowywać pliki witryny.

Będziesz także musiał edytować uprawnienia, aby zapewnić dostęp do odczytu udostępnionego katalogu internetowego oraz wszystkich zawartych w nim plików i folderów. Jest to konieczne, aby strony serwisu wyświetlały się poprawnie:

Sudo chmod -R 755 /var/www

Twój serwer internetowy powinien teraz mieć uprawnienia potrzebne do wyświetlenia zawartości. Ponadto Twój użytkownik ma teraz możliwość tworzenia treści w wymaganych katalogach.

Krok 3. Utwórz stronę demonstracyjną dla hosta

Teraz, gdy struktura katalogów jest już gotowa, możemy stworzyć treść, która będzie wyświetlana osobom odwiedzającym witrynę przykład.com.

Robimy to wyłącznie w celach testowych, więc strona testowa będzie bardzo prosta.

W folderze publiczny_html domena przykład.com utwórzmy plik indeks.php:

Nano /var/www/ przykład.com/public_html/index.php

W tym pliku utworzymy prosty skrypt PHP, aby upewnić się, że wszystko działa:

Po zakończeniu zapisz i zamknij plik. Mamy teraz stronę potrzebną do sprawdzenia konfiguracji hosta wirtualnego.

Krok 4. Utwórz plik hosta wirtualnego

Pliki hosta wirtualnego definiują ich konfigurację i określają, w jaki sposób serwer WWW Apache będzie odpowiadać na żądania kierowane do różnych domen.

Domyślna konfiguracja Ubuntu wymaga, aby każdy plik hosta wirtualnego kończył się rozszerzeniem .conf. Domyślnie Apache ma plik hosta wirtualnego 000-default.conf, który możemy wykorzystać jako punkt wyjścia. Skopiujmy ten plik, aby na jego podstawie utworzyć plik wirtualnego hosta dla naszej domeny przykład.com.

Sudo cp /etc/apache2/sites-available/000-default.conf /etc/apache2/sites-available/ przykład.com.conf

Otwórzmy ten nowy plik w edytorze z uprawnieniami roota:

Sudo nano /etc/apache2/sites-available/ przykład.com.conf

Plik będzie miał coś takiego:

ServerAdmin webmaster@localhost DocumentRoot /var/www/html Dziennik błędów $(APACHE_LOG_DIR)/error.log Dziennik niestandardowy $(APACHE_LOG_DIR)/access.log łącznie

Przede wszystkim musimy zmienić dyrektywę ServerAdmin na adres e-mail, na który administrator witryny będzie otrzymywać e-maile.

Administrator serwera Administrator@ przykład.com

Następnie musimy dodać dwie nowe dyrektywy. Pierwszy, Nazwa serwera, ustawia domenę podstawową, która musi odpowiadać nazwie hosta wirtualnego. To musi być nazwa Twojej domeny. Drugi, Alias ​​serwera, definiuje inne nazwy, które należy interpretować tak, jakby były domeną podstawową. Jest to wygodne w przypadku korzystania z dodatkowych nazw domen, na przykład za pomocą www:

Nazwa serwera przykład.com Alias ​​serwera www.przykład.com

Jedyne, co pozostało do zmiany w podstawowym pliku hosta wirtualnego, to lokalizacja katalogu głównego tej domeny. Stworzyliśmy już żądany katalog, więc musimy tylko zmienić dyrektywę DokumentRoot tak, aby odnosił się do katalogu, który utworzyliśmy:

DokumentRoot /var/www/ przykład.com/public_html

Nasz plik hosta wirtualnego powinien teraz wyglądać następująco:

Administrator serwera [e-mail chroniony] Nazwa serwera przykład.com Alias ​​serwera www.przykład.com DokumentRoot /var/www/ przykład.com/public_html Dziennik błędów $(APACHE_LOG_DIR)/error.log Dziennik niestandardowy $(APACHE_LOG_DIR)/access.log łącznie

Zapisz i zamknij plik.

Krok 5. Włącz nowego hosta wirtualnego

Teraz, gdy utworzyliśmy plik hosta wirtualnego przykład.com, musisz aktywować witrynę za pomocą narzędzia a2ensite:

Sudo a2ensite przykład.com.conf

Po zakończeniu musisz ponownie uruchomić Apache, aby zmiany zaczęły obowiązywać:

Uruchom ponownie usługę Sudo Apache2

Krok 6. Testowanie wyniku

Teraz, gdy host wirtualny jest skonfigurowany, możesz łatwo przetestować jego funkcjonalność, przechodząc pod wcześniej skonfigurowany adres w swojej przeglądarce:

http://przyklad.com

Powinieneś zobaczyć stronę podobną do tej:

Jeśli witryna działa, oznacza to, że pomyślnie skonfigurowałeś hosta wirtualnego na serwerze WWW Apache w systemie Ubuntu! Apache może obsłużyć dowolną liczbę nazw domen, więc możesz dodawać wirtualne hosty do Apache, o ile Twój serwer jest w stanie obsłużyć obciążenie.

Po skonfigurowaniu pliku httpd-vhosty.konf Sprawdźmy poprawność jego konfiguracji. W katalogu D:\serwer\Apache\kosz\ utwórz plik httpd-S.cmd z treścią:
„D:\serwer\Apache\bin\httpd.exe” –S
pauza

Po uruchomieniu tego pliku pojawi się okno z raportem weryfikacji, składnia OK na końcu wskazuje, że wszystkie ustawienia są w porządku.

Teraz musisz zarejestrować utworzone hosty w pliku C:\Okna\system32\sterowniki\itp\zastępy niebieskie. Aby to zrobić, otwórz go za pomocą edytora tekstu i wprowadź następujące wpisy:

127.0.0.1 www.host1.ru host1.ru #Aby uniknąć wpisywania www przed nazwą witryny, utwórz serwer lustrzany
127.0.0.1 www.host2 host2 #Możesz tworzyć hosty bez.ru
127.0.0.1 host3 #Najpopularniejsza opcja dla lokalnego
127.0.0.1 localhost # Zwykle już określony, upewnij się, że nie został przypadkowo usunięty lub skomentowany.

Zapisz plik i uruchom ponownie Apache. Spróbuj umieścić pliki testowe (na przykład indeks.html) w katalogach utworzonych hostów wirtualnych i otwórz hosty w przeglądarce pod adresami określonymi w katalogu ServerName każdego hosta.

Jeśli często musisz tworzyć wirtualne hosty i tak naprawdę nie chcesz edytować wszystkich tych plików i za każdym razem ręcznie uruchamiać Apache, utwórz ( D:\serwer\) utwórz plikVH.cmd o następującej zawartości:

@cls
@rem Pobierz bieżący folder. Jeśli masz strukturę folderów serwera podobną do mojej, ale jest ona zainstalowana na przykład na innym dysku, podaj tutaj zamiast %~dp0 ścieżkę z nią (na przykład D:\serwer\) wymagany jest ukośnik na końcu .
@set ścieżka_serwera=%~dp0
:katalog_istnieje
@set /P new_dir="Wprowadź nową nazwę VHosta:"
@set /P ip_add="Wpisz swój adres IP:"
@ jeśli istnieje %server_path%%new_dir% echo "VHost %new_dir% już istnieje. Proszę ponownie wprowadzić nazwę Vhost."
@ jeśli istnieje %server_path%%new_dir% przejdź do dir_exist
@md %server_path%%new_dir%

@rem Oto ścieżka do pliku konfiguracyjnego hostów wirtualnych, jeśli masz inny, zmień go
@set plik wyjściowy=%ścieżka_serwera%Apache\conf\extra\httpd-vhosts.conf
@Echo. >>%plik wyjściowy%
@echo^ >>%plik wyjściowy%
@echo nazwa_serwera %nowy_katalog% >> %plik wyjściowy%
@echo DocumentRoot "%server_path%%new_dir%" >>%outputfile%
@echo ErrorLog "%server_path%logs\%new_dir%.error.log" >>%outputfile%
@echo CustomLog "%server_path%logs\%new_dir%.access.log" common >>%outputfile%
@echo^>>%plik wyjściowy%
@if %ip_add%==* ustaw ip_host=127.0.0.1
@if not %ip_add%==* ustaw ip_host=%ip_add%
@set hostfile=%windir%\system32\drivers\etc\hosts
@Echo. >>%plik hosta%
@echo %ip_host% %new_dir% >> %hostfile%
@set htmlfile=%ścieżka_serwera%%nowy_katalog%\index.html
@echo^ >>%htmlplik%
@echo^ >>%htmlplik%
@echo^ %nowy_katalog%^>>%htmlplik%
@echo^
>>%htmlplik%
@echo^ >>%htmlplik%
@echo %new_dir% >> %htmlfile%
@echo^
>>%htmlplik%
@echo^
>>%htmlplik%
@rem Oto ścieżka do samego serwera, jeśli masz inny, zmień go
@start %ścieżka_serwera%Apache\bin\httpd.exe -k uruchom ponownie

Teraz, aby utworzyć hosta, wystarczy uruchomić ten plik, w odpowiedzi wpisać nazwę nowego hosta i adres IP, który zostanie wskazany w sekcji Wirtualny Host plik httpd-vhosts.conf. Po zakończeniu program sam się zamknie. Wystarczy, że sprawdzisz utworzony host wpisując w pasku adresu przeglądarki nazwę, którą wpisałeś w programie. Jeśli wszystko poszło dobrze, zobaczysz stronę z nazwą nowego hosta.

Notatka, program ma na celu zapewnienie, że struktura katalogów serwera odpowiada tej, którą wskazałem w pierwszym artykule. Jeżeli masz serwer zainstalowany na innych ścieżkach popraw plik zgodnie z nimi.

Tagi: Apache, konfiguracja serwera, początkujący

Problem hostów wirtualnych staje się dość poważny, gdy trzeba utworzyć 2 lub więcej hostów. Aby zarządzać nimi normalnie” Lokalny Gospodarz" nie jest możliwe. Za pomocą wirtualnych hostów i serwera Apache problem ten można rozwiązać.

Tworzenie wirtualnych hostów Apache jest bardzo prostą i szybką pracą.

Zatem zainstalowałeś i skonfigurowałeś Apache, jak napisano w artykule „Konfigurowanie Apache i PHP” i w ten sposób otrzymałeś katalog „ C:\serwer_web\Apache\htdocs\" do przechowywania dokumentów. Jednak w Internecie obsługujesz (lub najprawdopodobniej będziesz obsługiwać) wiele serwerów i Apacz stworzył tylko jeden. Oczywiście można przechowywać strukturę tych kilku serwerów na jednym serwerze, jednak prościej i wygodniej byłoby utworzyć kilka wirtualnych hostów.

Utworzymy wirtualne hosty przy użyciu jednego publicznego adresu IP. Radzę nazwać nazwy hostów wirtualnych takimi samymi, jak na bieżącym serwerze internetowym, ale bez przyrostka „ .internet" Lub " .com" - może to znacznie uprościć programowanie skryptów. Na przykład utwórzmy wirtualnego hosta " profphp".

Aby zainstalować wirtualne hosty, musisz wprowadzić pewne zmiany w pliku konfiguracyjnym Apache” ", a także w niektórych plikach Okna.

Utwórz folder " Lokalny Gospodarz" w katalogu głównym dysku ( C:\localhost\). Następnie utwórz w nim katalog hosta wirtualnego - „ profphp" (C:\localhost\profiphp\). To w tym folderze będą przechowywane pliki wirtualnego hosta.

Następnie musisz włączyć obsługę hostów wirtualnych. Otwórz plik " C:\serwer_web\apache\conf\httpd.conf" i po wszystkich komentarzach dodaj następujące wiersze na samym końcu pliku:
# Lokalny Gospodarz
NazwaVirtualHost 127.0.0.1
# Kontener konfiguracji hosta wirtualnego

# Domena, za pomocą której można uzyskać dostęp do wirtualnego hosta.
Nazwa serwera localhost: 80
# Folder, w którym będzie znajdował się katalog główny hosta.

# Plik, w którym będą zapisywane błędy.

# Plik dziennika dostępu do hosta.


#profiphp

Nazwa serwera profiphp:80



Dyrektywa” NazwaWirtualny Host" informuje serwer, że określony adres IP może być używany przez wiele wirtualnych hostów, dlatego do przetwarzania żądań przychodzących na ten adres należy używać protokołu HTTP 1.1.

W razie potrzeby możesz dodać inne parametry do bloków ” " (Na przykład, Indeks katalogu itp.). Parametry, które nie zostaną nadpisane, są dziedziczone przez host wirtualny z urządzenia głównego. Nie radzę jednak nadużywać ustawień w tych sekcjach - lepiej wprowadzić je w pliku „ .htaccess” w katalogu żądanego hosta, ponieważ jest mało prawdopodobne, aby firma udostępniająca prawdziwe wirtualne hosty w Internecie pozwoliła na zmianę tych bloków.

Należy również zauważyć, że istnieje inna opcja włączenia obsługi hostów wirtualnych. Aby to zrobić, potrzebujesz w pliku „ C:\serwer_web\apache\conf\httpd.conf"odkomentuj linię:
Dołącz conf/extra/httpd-vhosts.conf i edytuj plik „ C:\serwer_web\apache\conf\extra\httpd-vhosts.conf", w którym zarejestrowane są wszystkie wirtualne hosty. Ta opcja jest bardziej zrozumiała, ponieważ mamy osobny plik z ustawieniami wirtualnych hostów. Ale jeśli jest kilka wirtualnych hostów, łatwiej jest dodać ustawienia do konfiguracji Apache bezpośrednio, niż dołączać osobny plik.

Jeśli jest wiele hostów wirtualnych, to praca nad ich konfiguracją w jednym pliku ” httpd.conf" może się skomplikować. Rozwiązaniem tego problemu jest utworzenie specjalnego pliku konfiguracyjnego dla każdego węzła wirtualnego i dołączenie tych plików za pomocą dyrektywy " włączać„. W plikach konfiguracyjnych umieszczany jest tylko kontener” " i zawarte w nim dyrektywy.

Następnym krokiem w tworzeniu wirtualnego hosta jest modyfikacja pliku „ C:\WINDOWS\system32\drivers\etc\hosts" system operacyjny. Otwórz ten plik i dodaj do niego następujące wiersze:
127.0.0.1 host lokalny
127.0.0.1 profiphp Jeśli masz już wpis " Lokalny Gospodarz", to nie ma potrzeby dodawania drugiego.

Teraz uruchom serwer Apache, otwórz przeglądarkę, wpisz w pasku adresu „ http://profiphp/" i będziesz na swoim wirtualnym hoście.

Jeśli z jakiegoś powodu Twoje wirtualne hosty nie działają, musisz sprawdzić plik dziennika, który znajduje się pod adresem: „ /apache/logs/error.log„. Zawiadomienie może na przykład zawierać:
AH00548: NameVirtualHost nie ma żadnego efektu i zostanie usunięty w następnym wydaniu /apache/conf/httpd.conf:553 Faktem jest, że przed wersją Apache 2.3.11 dyrektywa NazwaWirtualny Host musiał poinstruować serwer o określonej kombinacji adresu IP i portów, której można użyć jako wirtualnego hosta opartego na nazwie. W wersji 2.3.11 i nowszych, gdy na wielu hostach wirtualnych używana jest kombinacja adresu IP i portu, dla tego adresu automatycznie włączany jest host wirtualny oparty na nazwie. Dlatego też dyrektywa ta obecnie nie obowiązuje. Jedynym rozwiązaniem tego problemu jest usunięcie dyrektywy NazwaWirtualny Host. Musisz także zastąpić wszystkie wartości Wirtualny Host:
Zmieniony kod:

Nazwa serwera localhost: 80
DocumentRoot „C:/web_server/apache/htdocs”
Dziennik błędów „c:/serwer_web/apache/htdocs/error.log”
CustomLog „c:/web_server/apache/htdocs/access.log” wspólny

#profiphp

Nazwa serwera profiphp
Katalog główny dokumentów „C:/localhost/profiphp”
Dziennik błędów „c:/localhost/profiphp/error.log”
CustomLog „c:/localhost/profiphp/access.log” wspólny