[+] Apache - wirtualne hosty (vhosts)

Konfiguracja serwerów, usług, itp.
sigo
Junior Member
Posty: 501
Rejestracja: 21 marca 2009, 19:12

[+] Apache - wirtualne hosty (vhosts)

Post autor: sigo »

Mam zainstalowany serwer apache2 oraz podpiętą domenę.

Próbuję rozdzielić ruch przychodzący (www) po adresie ip oraz po domenie - w praktyce chciałbym wyświetlać inne strony po wpisaniu adresu ip i domeny.

Starałem się rozwiązać to poprzez utworzenie wirtualnych hostów:

Kod: Zaznacz cały

<VirtualHost *:80>
	DocumentRoot /var/www/default/public/
	ErrorLog /var/www/default/logs/error.log
	LogLevel warn
	CustomLog /var/www/default/logs/access.log combined
</VirtualHost>

Kod: Zaznacz cały

<VirtualHost domena.pl>
	DocumentRoot /var/www/domena.pl/public/
	ErrorLog /var/www/domena.pl/logs/error.log
	LogLevel warn
	CustomLog /var/www/domena.pl/logs/access.log combined
</VirtualHost>
niestety ten sposób nie działa.

Wyobrażałem sobie, iż ruch przychodzący na domenę będę przekierowywał do katalogu z odpowiednią stroną (drugi kod), a wszelkie inne zapytania (czyli np. wejście poprzez adres ip) wyłapywał i przekierowywał także do odpowiedniego katalogu (pierwszy kod).

Czy ktoś jest w stanie podsunąć mi jakąś podpowiedź, dzięki której mógłbym rozwiązać powyższy problem (o ile jest to oczywiście wykonalne)?
Awatar użytkownika
Yampress
Administrator
Posty: 6424
Rejestracja: 09 sierpnia 2007, 21:41
Lokalizacja: PL

Post autor: Yampress »

Awatar użytkownika
lessmian2
Member
Posty: 1088
Rejestracja: 30 kwietnia 2008, 19:38
Lokalizacja: Kraków

Post autor: lessmian2 »

Zmień lepiej drugi config na:

Kod: Zaznacz cały

<VirtualHost *:80> 
    ServerName domena.pl
    DocumentRoot /var/www/domena.pl/public/ 
    ErrorLog /var/www/domena.pl/logs/error.log 
    LogLevel warn 
    CustomLog /var/www/domena.pl/logs/access.log combined 
</VirtualHost>
Druga sprawa, podlinkowałeś pliki zawierające tą konfigurację do katalogu /etc/apache2/sites-enabled/? Przeładowałeś Apache2? Napisz może coś więcej jak to zrobiłeś, bo być może błąd jest w jeszcze innym miejscu.

EDIT. Kurde, znowu mnie ktoś ubiegł. Ech, starość widać ;-)
sigo
Junior Member
Posty: 501
Rejestracja: 21 marca 2009, 19:12

Post autor: sigo »

Przeglądałem podręcznik wielokrotnie. W nocy miałem jakiś problem z myśleniem - wydawało mi się iż ServerName nie jest wymagany.

Całość rozwiązałem poprzez:

Kod: Zaznacz cały

<VirtualHost *:80>
	DocumentRoot /var/www/default/public/
	<Directory /var/www/default/public/>
		Options -Indexes
		AllowOverride All
	</Directory>
	ErrorLog /var/www/default/logs/error.log
	LogLevel warn
	CustomLog /var/www/default/logs/access.log combined
</VirtualHost>

Kod: Zaznacz cały

<VirtualHost *:80>
	ServerName domena.pl
	DocumentRoot /var/www/domena.pl/public/
	<Directory /var/www/domena.pl/public/>
		Options -Indexes
		AllowOverride All
	</Directory>
	ErrorLog /var/www/domena.pl/logs/error.log
	LogLevel warn
	CustomLog /var/www/domena.pl/logs/access.log combined
</VirtualHost>
Wszystko jest podlinkowane do sites-enabled. W ten sposób mogę łatwo zarządzać kolejnymi domenami, dodawać aliasy do aktualnych itd - wystarczy utworzyć nowy plik i utworzyć dowiązanie.

Dziękuję za odpowiedzi.

Poprawka: w pierwszym kodzie, nie jest potrzebne określenie ServerName, gdyż serwer wyłapuje wszystkie nieokreślone adresy, domeny itp. na jedną stronę (określoną w pierwszym kodzie) - przepraszam za powtórzenie, nie potrafiłem tego inaczej ująć.
ODPOWIEDZ