4773457853_b10fcc8294_b

Automatyczny VirtualHost w Ubuntu

Jeżeli jesteś freelancerem albo developerem i pracujesz nad wieloma projektami webowymi to najprawdopodobniej masz następujący problem przy tworzeniu nowych projektów.

  • Stworzyć nowy katalog project-name w katalogu www
  • Dopisać nowa domenę do hostów w systemie: project-name.dev 127.0.0.1
  • Dopisać nowy vhost w konfiguracji apacha który powiąże project-name.dev => /www/project-name/public_html 

Każdy programista dąży do automatyzacji prostych zadań. Oto tutorial jak ten proces zautomatyzować.

Podpięcie domen *.dev na 127.0.0.1

Aby zautomatyzowanie podpinania domen pod localhosta potrzebne jest dodatkowo oprogramowanie. Mowa tu Dnsmasq. Instalacja:

sudo apt-get install dnsmasq

Następnie edytujemy plik /etc/dnsmasq/dnsmasq.conf i dodajemy nasŧępujące linijki na samym dole pliku

listen-address=127.0.0.1
address=/.dev/127.0.0.1

Restartujemy Dnsmasq następującym poleceniem

sudo service dnsmasq restart

GOTOWE. Teraz wszystkie adresy *.dev na naszym komputerze będą kierować na 127.0.0.1

VirtualHosty w Apache2

W tym celu potrzebny jest mod_vhost_alias. Podstawowa wersja Apache2 instalowana z paczek ubuntu powinno go już mieć, tak więc wystarczy go aktywować:

sudo a2enmod vhost_alias
sudo service apache2 restart

Konfiguracja VirtualHost

Ostatnim krokiem jest konfigiracja Apache. Edytujemy /etc/apache2/sites-available/default

<VirtualHost *:80>
    VirtualDocumentRoot "/sciezka_do_www/%-2+/public_html"
    ServerName vhosts.dev
    ServerAlias *.dev
    UseCanonicalName Off

    <Directory /sciezka_do_www/*>
        Options Indexes FollowSymLinks
        AllowOverride All
        Order allow,deny
        allow from all
    </Directory>
# reszta konfiguracji
</VirtualHost>

Na koniec restart Apache i GOTOWE :)

Autor zdjęcia: Tom Raftery