Posts Tagged ‘webdev’

Dynamiczna konfiguracja środowiska LAMP dla lokalnej maszyny

Author: Wojtek Sznapka (wojciech.sznapka) | marzec 23rd, 2011
avatar

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:

  1. pobrania repozytorium na dysk
  2. stworzenie konfiguracji vhost z jakąś nazwą serwera
  3. 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 dnsmasqApache2:

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

Symfony2 Showcase

Author: Wojtek Sznapka (wojciech.sznapka) | styczeń 31st, 2011
avatar

Podczas pierwszego Piątku z XSolve w tym roku oraz pierwszego w nowej siedzibie, poprowadziłem prezentację na temat Symfony2, które wkrótce ujrzy światło dzienne. Symfony2 zostało przepisane od zera, porzucono kompatybilność wstecz, czego rezultatem jest nowoczesny framework, pozwalający szybko tworzyć bardzo złożone aplikacje. Nadąża on za najaktualniejszymi trendami w brażny, a autorzy chwalą się trzykrotną poprawą wydajności i zmniejszeniem użycia pamięci o połowę.
Aktualnie można przetestować Symfony2 pobierając wersję Preview Release 5 githuba. Ja już to zrobiłem, czego rezultatem jest poniższa prezentacja :-)