Nastavení Apache v Ubuntu Gutsy 7.10 pro vývoj PHP aplikací aneb jeden virtualhost jednou provždy

Na Linux jsem na svém notebooku kompletně přešel asi před rokem a půl. Za tu dobu jsem přišel na několik vychytávek, které mi zpříjemňují práci. Jednou z nich je řešení potřeby neřešit neustále konfiguraci virtualhostů pro každý projekt zvlášť.

Jednotlivé projekty mám ve složce ~/www. Uvažoval jsem, jak zařídit, aby projekt umístěný ve složce ~/www/sample_project byl z prohlížeče snadno dosažitelný jako http://sample_project.apache.

Předpokládám, že na počítači již běží běžná instalace Apache.

Instalace DNS serveru – BIND

Nejdříve si nainstalujeme DNS server – použijeme BIND.

$ sudo aptitude install bind9

Nyní nastavíme naši zónu. Reverzní záznam nepotřebujeme. Do souboru /etc/bind/named.conf.local přidáme:

zone "apache" {
        type master;
        file "/etc/bind/zones/apache.db";
};

Vytvoříme si soubor /etc/bind/zones/apache.db, který bude obsahovat zónový soubor naší nově vytvořené domény apache.

;
; domain.tld
;
apache.  IN SOA localhost. root.localhost. (
                        2006091901 ; Serial no., based on date
                        21600 ; Refresh after 6 hours
                        3600 ; Retry after 1 hour
                        604800 ; Expire after 7 days
                        3600 ; Minimum TTL of 1 hour
)

apache  IN      A       127.0.0.1
*       IN      A       127.0.0.1
@       IN      A       127.0.0.1
@       IN      NS      localhost.

Do souboru /etc/bind/named.conf.options přidáme na konec sekce options:

options {
        .
        .
        .
        .
        forward first;
        forwarders {
                192.168.2.1; # adresa DNS serveru, který používáte pro připojení k internetu
                192.168.1.1; # adresa DNS serveru, který používáte pro připojení k internetu
        };
}

Do souboru /etc/resolv.conf přidáme adresu našeho DNS serveru, aby vyhledávání probíhalo přes něj:

search apache
nameserver 127.0.0.1

Nyní restartujeme BIND:

$ sudo /etc/init.d/bind9 restart

Tím jsme dokončili konfiguraci DNS serveru a nakonfigurujeme ještě Apache.

Konfigurace Apache

Použijeme Apache modul vhost_alias, který je ve standardní instalaci Apache. Jeho konfigurace je v souboru /etc/apache2/mods-available/vhost_alias.load.

LoadModule vhost_alias_module /usr/lib/apache2/modules/mod_vhost_alias.so

UseCanonicalName Off
VirtualDocumentRoot /home/weits/www/%1 # cesta k wwwroot

a vytvoříme symlink, aby se tento modul použil:

$ sudo ln -s /etc/apache2/mods-available/vhost_alias.load /etc/apache2/mods-enabled/.

Restartujeme apache

$ sudo /etc/init.d/apache2 restart

A máme hotovo.

weits | 13:30, 22.2.2008 | Software | 3 komentáře

Komentáře k textu

petr

nedari se nedari…vse jsem udelal dle navodu, ale dnsko neotocim

sudo /etc/init.d/bind9 restart
* Stopping domain name service… bind rndc: connect failed: 127.0.0.1#953: connection refused [fail]

ubuntu 8.04, apache 2.2

13:09, 6.9.2008
petr

stacilo se kouknout do /var/log/daemon.log a ten mi prozradil ze jsem mel chybu v /etc/bind/named.conf.options…

nyni tedy bind9 bezi ovsem kdyz zadam „test.apache“ tak mi to nechce vlezt do ~/www/test …pokud vytvorim ~/www/localhost tak se dostanu jak jinak nez pres adresu „localhost“…problemem je ze si myslim ze mi to dnsko nefunguje protoze to stale chce najit nekde vne misto aby to hledalo vnitrne

cim to muze byt netusis?

diky

14:00, 7.9.2008
weits

No hele nevim, jestli ti to nebeha, tak bych kouknul do /etc/resolv.conf, jestli to fakt bere z toho tvyho bindu. Ja tuhle konfiguraci pouzivam uz dost dlouho a zadny problemy …

13:22, 8.9.2008

Kliknutím vložíš: Vlož smajla :-) Vlož smajla :-( Vlož smajla ;-) Vlož smajla :-D Vlož smajla 8-O Vlož smajla 8-) Vlož smajla :-? Vlož smajla :-x Vlož smajla :-P Vlož smajla :-|

Rubriky

Hardware Software Společnost Internet Zábava

Tagy a Štítky

TOPlist