Jeśli kiedykolwiek rozwijałeś aplikacje w PHP na swoim lokalnym komputerze, prawdopodobnie używałeś konfiguracji Apache opartej o vhosty. Kilkoma trikami możesz zmienić swojego linuksa w serwer developerski, bez konieczności konfigurowania vhosta dla każdej aplikacji z osobna. Przy minimalnym wysiłku konfiguracyjnym, potrzebowałeś do tego trzech kroków:
- pobrania repozytorium na dysk
- stworzenie konfiguracji vhost z jakąś nazwą serwera
- stworzenie wpisu w /etc/hosts który będzie odzwierciedlał nazwę serwera użytego w vhoście na 127.0.0.1
Jestem pewny, że powyższa ścieżka jest używana przez wielu programistów. Możemy pominąć dwa ostatnie kroki, ograniczając przygotowanie środowiska do umieszczenia kodu źródłowego w specjalnym folderze na dysku. Aby to osiągnąć potrzebujemy moduł Apache’a mod_vhost_alias oraz prosty serwer DNS, który będzie rozwiązywał lokalne domeny dla nas.
Instalacja mod_vhost_alias jest dość prosta. Moduł jest prawdopodbnie dołączony do twojej instalacji Apache, pozostaje go tylko uruchomić następującą komendą:
sudo a2enmod vhost_alias
Dzięki mod vhost alias możemy dynamicznie wskazywać Document Root bazując na nazwie serwera. Wystarczy umieścić następującą konfigurację w pliku /etc/apache2/sites-enabled/000-default
Teraz wszystkie odwołania będą wskazywały na nasz /var/www/FIRST_PART_OF_DOMAIN/web, ponieważ użyliśmy modyfikatora %1. Możesz wprowadzić własną konwencję używając innych modyfikatorów w dyrektywie VirtualDocumentRoot (patrz dokumentacja). Powyższa konfiguracja jest bardzo minimalistyczna, powinieneś dodać do niej jeszcze logowanie itp.
Ostatnią rzeczą, o jaką należy się zatroszczyć jest dynamiczne rozwiązywanie nazw domen. Najprostszym sposobem jest dodawanie nazwy serwera do pliku /etc/hosts, ale to wymaga dodawania wpisu dla każdego hosta. Na przykład wpis w /etc/hosts:
127.0.0.1 myapp.local.dev
uruchomi aplikację zlokalizowaną w /var/www/myapp/ (wskaże na katalog web/, według konwencji symfony). Jeśli chcesz to zautomatyzować, zainstaluj dnsmasq, prosty serwer DNS
sudo apt-get install dnsmasq
Następnie wyedytuj /etc/dnsmasq.conf file (może być położony gdzie indziej, tutaj na przykładzie Ubuntu):
listen-address=127.0.0.1 address=/.local.dev/127.0.0.1
Ostatnią rzeczą jest aktualizacja pliku /etc/resolv.conf przez dodanie adresu naszego DNSa na początek:
nameserver 127.0.0.1
Następnie restartujemy dnsmasq i Apache2:
sudo /etc/init.d/apache2 restart sudo /etc/init.d/dnsmasq restart
Od teraz możesz się cieszyć nową konfiguracją środowiska LAMP. Każdy nowy projekt potrzebuje być tylko umieszczony w katalogu /var/www/PROJECT_NAME i będzie od razu dostępny z poziomu przeglądarki pod adresem PROJECT_NAME.local.dev
2
komentarzy