ďťż
 
 
   [+] Apache2, vhost i dynamiczne subdomeny
 
 

Tematy

 
    
 

 

 

 

[+] Apache2, vhost i dynamiczne subdomeny





LordRuthwen - 13-04-2010 17:52
Witam.
Zainstalowałem MUWordpress tworzący blogi jako prefixy domeny na jakiej siedzi i wszystko niby działa, ale prefixy przekierowane są na domenę domyślną dla tej maszyny, czyli:l Otwierając: jakaśdomena.pl otwiera się to co powinno czyli strona główna Wordpressa.l lZakładając blog: xyz.jakasdomena.pl rejestruję użytkownika, wysyła maila itd., ale użytkownik się już nie aktywuje bo odnośnik z maila zawiera: xyz.jakasdomena.pl/... i nie zostaje znaleziony gdyż xyz.jakasdomena.pl szuka plików całkiem gdzie indziej (plik /etc/apache2/sites-available/default).
W jaki sposób skonfigurować vhosta aby ,,łapał'' wszystkie odwołania do tej domeny niezależnie od tego co jest prefixem? <VirtualHost *:80>
    ServerName jakasdomena.pl
    ServerAdmin webmaster@localhost
    ServerAlias www.jakasdomena.pl
   
    DocumentRoot /home/jakasdomena/www/
    DirectoryIndex index.html index.htm index.php
    AccessFileName .htaccess
    <Files ~ "^\.ht">
        Order allow,deny
        Deny from all
    </Files>
    <Directory />
        Options FollowSymLinks
        AllowOverride All
    </Directory>
    <Directory /home/jakasdomena/www/>
        Options Indexes FollowSymLinks MultiViews
        AllowOverride All
        Order allow,deny
        allow from all
    </Directory>
    ErrorLog /home/jakasdomena/log/error.log
    LogLevel warn
    CustomLog /home/jakasdomena/log/access.log combined
    ServerSignature On
</VirtualHost> l




lessmian2 - 13-04-2010 18:30
Widzę dwie możliwości. Możesz pokombinować z mod_rewrite - sprawdzać główną domenę i odpowiednio przekierowywać żądanie. Możesz też zainteresować się mod_vhost_alias - tym też powinno się udać zrobić to, czego potrzebujesz.



LordRuthwen - 13-04-2010 19:07
Tak sobie myślę, jakbym usunął domyślne ustawienia z konfiguracji apache i ustawił przekierowanie dla błędu 404.
Miałoby to chyba szansę powodzenia, bo jak na razie wszystko czego nie znajdzie w ustawieniach trafia na ustawienia z /etc/apache2/sites-available/default.
Dobrze myślę?



lessmian2 - 13-04-2010 19:41

jakbym usunął domyślne ustawienia z konfiguracji apache Tzn?



LordRuthwen - 13-04-2010 19:52
Chodzi mi o wyłączenie pliku /etc/apache2/sites-available/default z konfiguracji apache - vhosty są trzymane w osobnych plikach, które są odpowiedzialne tylko za nie.
W pliku ,,default'' jest w tym momencie to:
<VirtualHost *:80>
    ServerAdmin webmaster@localhost
   
    DocumentRoot /home/apache/www/
    # use .htaccess files for overriding,
        AccessFileName .htaccess
        # and never show them
        <Files ~ "^\.ht">
            Order allow,deny
            Deny from all
        </Files>
    <Directory />
        Options FollowSymLinks
        AllowOverride None
    </Directory>
    <Directory /home/apache/www/>
        Options Indexes FollowSymLinks MultiViews
        AllowOverride None
        Order allow,deny
        allow from all
    </Directory>

    ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
    <Directory "/usr/lib/cgi-bin">
        AllowOverride None
        Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
        Order allow,deny
        Allow from all
    </Directory>

    ErrorLog /var/log/apache2/error.log

    # Possible values include: debug, info, notice, warn, error, crit,
    # alert, emerg.
    LogLevel warn

    CustomLog /var/log/apache2/access.log combined

    Alias /doc/ "/usr/share/doc/"
    <Directory "/usr/share/doc/">
        Options Indexes MultiViews FollowSymLinks
        AllowOverride None
        Order deny,allow
        Deny from all
        Allow from 127.0.0.0/255.0.0.0 ::1/128
    </Directory>

</VirtualHost> I do tego właśnie odnosi się apache w momencie gdy czegoś nie może znaleźć.



lessmian2 - 13-04-2010 20:03
Jeśli usuniesz plik default (domyślnie link 000-default w sites-enabled), to na jego miejsce wskoczy kolejny plik (kolejność alfabetyczna według nazw plików) i będziesz miał właściwie to samo, tylko z innym VHostem. Nie wiem czy jasno to wytłumaczyłem. W każdym bądź razie defaultowego VHosta zawsze będziesz miał, a czy będzie w pliku default czy bryndza.conf to sprawa wtórna. Z resztą sprawdz: apache2ctl -S Dostaniesz spis wszystkich VHostów i zawsze jeden będzie oznaczony jako domyślny.



LordRuthwen - 13-04-2010 20:39
Oj, czyli jednak źle myślałem, a już się cieszyłem... ;)
Jeszcze jakieś sugestie?



lessmian2 - 13-04-2010 20:52
A może tak po prostu: ServerAlias *.jakasdomena.pl Edit:
Lub zamień miejscami pliki default i ten z konfiguracją VHosta jakasdomena.pl (pokombinuj z cyferkami).



LordRuthwen - 13-04-2010 21:05

A może tak po prostu: ServerAlias *.jakasdomena.pl Edit:
Lub zamień miejscami pliki default i ten z konfiguracją VHosta jakasdomena.pl (pokombinuj z cyferkami). O matko, a takie proste to było.
To rozwiązanie z gwiazdką działa tak jak chciałem :)
Próbowałem to wcześniej wepchnąć tu:
<VirtualHost *:80> ale efekt był odwrotny od zamierzonego.
Dziękuję serdecznie :)
  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • minister.pev.pl

  •  

     


     

     
    Copyright 2003. MĂłj serwis