Jak (szybko) sprawić by nasza strona oparta o architekturę LAMP zadziałała na lokalnym komputerze (Windows 7). Na pierwszy rzut oka sprawa wydaje się banalna, diabeł jak zawsze tkwi w szczegółach.
1. WampServer
Pierwszym krokiem jest instalacja pakietu WampServer – polecam ten program (jest jeszcze wiele innych typu XAMPP, Krasnal itd.) bo załatwi za nas zdecydowaną większość spraw instalacyjno-konfiguracyjnych. Po pobraniu ze strony (http://www.wampserver.com/en/) oprogramowania w najnowszej wersji (ja nie bałem się pobrać wersji beta), zainstalowaniu i uruchomieniu w zasadzie mamy już w pełni działające środowisko dostępne pod lokalnym adresem http://localhost.
Następnym krokiem jest skopiowanie zawartości naszej strony do odpowiedniego katalogu (np. C:/wamp/www/projekt. Dobrze rozplanować sobie katalogi na te dostępne i niedostępne przez www, wyodrębnić katalog plików tymczasowych, uploadu czy wspólnych bibliotek (np. Zend Framework).
Po skopiowaniu projektu do naszej lokalizacji oczywiście warto pokusić się o jej pierwsze uruchomienie czyli wywołanie http://localhost/projekt/. Tu pewnie przywita nas niespodzianka w postaci licznych błędów
Prawdopodobnie pierwszym błędem który ukaże się naszym oczom będzie błąd ładowania wszelkich bibliotek, czyli problem separatora katalogów i redefinicji naszych ścieżek. Na Windows separator katalogów jest inny niż w systemach Linux (ukośnik w drugą stronę), stąd jeśli nie zadbaliśmy o to wcześniej teraz już będziemy musieli. Najlepiej zdefiniować sobie gdzieś na samym początku naszej aplikacji (index.php) linijkę:
define(‘DS’, DIRECTORY_SEPARATOR);
dzięki której nie będziemy musieli wpisywać tego składającego się aż z 19 znaków słowa (co także sprawi, że nasze ścieżki będą czytelniejsze). Druga sprawa to zmiana naszych konfiguracyjnych ścieżek, zmiana wszelkich innych ustawień, w tym bazy danych. Bardzo dobrym nawykiem jest wydzielanie konfiguracji dot. serwera roboczego i produkcyjnego – wyeliminuje to problemy przy publikacjach.
2. Wirtualny host
Po tym zabiegu nasza strona powinna się już uruchomić, jednak w związku z tym iż pracujemy na lokalnym adresie gdzie nasz projekt „widziany jest” tak naprawdę jako podkatalog, czeka nas szereg nie miłych niespodzianek takich jak błędnie działające przekierowania, nie działający .htaccess, problem ze względnymi urlami itd. Aby nie zwariować w natłoku problemów, spróbujmy je po prostu ominąć
Najpierw stwórzmy adres (hosta) pod którym chcielibyśmy uruchamiać nasz projekt i dodajmy go do pliku hosts. Na Windows 7 jest to katalog: C:\WINDOWS\system32\drivers\etc\hosts . Tu dopisujemy np. linijkę (specjalnie podaję adres z kropką by maksymalnie imitował prawdziwą domenę):
127.0.0.1 projekt.home
i zapisujmy plik.
Następnie odnajdujemy plik httpd-vhosts odpowiedzialny za wirtualne hosty, w WampServer jest to katalog: C:\wamp\bin\apache\Apache2.2.21\conf\extra\ . Dokonujemy edycji ów pliku i dopisujemy w nim:
<VirtualHost *:80>
DocumentRoot „c:/wamp/www/projekt/source/www/”
ServerName projekt.home
</VirtualHost>
Restartujemy Apache. Teraz wpisując adres projekt.home uruchamiamy stronę główną naszego projektu.
3. Memcached
Jeśli w naszym projekcie korzystamy z biblioteki Memcached warto by nasz projekt także lokalnie z niej korzystał. W najnowszym WampServer odpowiedni dll (php_memcache.dll) jest już dołączony, wystarczy tylko go uruchomić (edytując php.ini lub klikając z panelu WampServer, PHP->PHP extensions). To niestety nie wszystko, trzeba także uruchomić odpowiednią usługę działającą w tle. W tym celu ze strony http://code.jellycan.com/memcached/ pobieramy wersję pod Windows (memcached-1.2.6-win32-bin.zip). Rozpakowujemy do np C:/Memcached, następnie uruchomiamy instalację wpisując z linii komend (w menu wyszukiwania/uruchamiania wystarczy wpisać cmd, następnie poleceniem cd c:/Memcached przechodzimy do odpowiedniego katalogu) polecenie:
memcached -d install
Teraz już tylko uruchamiamy usługę wpisując:
memcached -d start
4. Konfiguracja poczty
Została jeszcze konfiguracja poczty, najprostszym sposobem na wysyłkę maili w naszym projekcie jest skorzystanie z protokołu SMTP i ich wysyłka za pośrednictwem swojej poczty. Z pomocą przychodzi gmail i Zend Framework, polecam taki oto skrypt połączenia (oczywiście poszczególne jego dane powinny pochodzić z konfiguracji):
$protocol = new Zend_Mail_Protocol_Smtp(smtp.gmail.com, 587, array(‘auth’ => ‘login’, ‘username’ => ‘twoj_email@gmail.com’, ‘password’ => twoje_haslo’, ’ssl’ => ‘tls’, ‘port’ => 587 ));
$protocol->connect();
$protocol->helo($_SERVER['SERVER_NAME']);
$mailTransport = new Zend_Mail_Transport_Smtp();
$mailTransport->setConnection($protocol);
Co ważne aby wszystko zadziałało musimy mieć włączoną bibliotekę open_ssl (i znowu albo edycja php.ini lub klikając w WampServer).
5. Podsumowanie
Jak widać dość szybko można na naszym lokalnym komputerze uruchomić dowolną stronę nie zmieniając całej masy ustawień, przebudowując urli czy wręcz części aplikacji.


Najnowsze komentarze