Mac + Apache + MySQL + PHP
Transkrypt
Mac + Apache + MySQL + PHP
MAMP Mac + Apache + MySQL + PHP Kraków 8 czerwca 2009, Adam Strzelecki, www.nanoant.com COŚ O MNIE • Developer od 13 lat Freelancer od 3 lat, od 1.5 roku na Maku • Projekty komercyjne GIS, IM, Web • Projekty open-source • Miranda, TC plugins, CVSTrac, jabberd2 Wkrótce własny software na Maka . www.nanoant.com PRAWIE WSZYSTKO JUŻ MAMY... • OSX wywodzi się od BSD, więc jest Unixem podobnie jak Linux czy FreeBSD • Drzewo katalogów jest podobne do tego, które możemy znaleźć w Linuksie /usr/bin /etc ale mamy też typowe katalogi dla OSX /System /Library /Developer /Users • Apple nie wymyśla „własnych” rozwiązań na siłę, ale używa tych sprawdzonych z open-source, a Udostępnianie WWW to nic innego jak wbudowany serwer HTTP Apache • Katalog główny dokumentów: /Library/WebServer/Documents • Konfiguracja: /etc/apache2/httpd.conf PRAWIE WSZYSTKO JUŻ MAMY... • Podobnie jest z PHP i nie tylko $ php -v PHP 5.2.8 (cli) (built: Feb 5 2009 21:21:13) Copyright (c) 1997-2008 The PHP Group Zend Engine v2.2.0, Copyright (c) 1998-2008 Zend Technologies $ svn --version svn, version 1.4.4 (r25188) compiled Sep 23 2007, 22:32:34 $ perl -v This is perl, v5.8.8 built for darwin-threadmulti-2level (with 4 registered patches, see perl -V for more detail) $ ruby -v ruby 1.8.6 (2008-08-11 patchlevel 287) [universaldarwin9.0] • OSX to prawie kompletne „startowe” środowisko dla developerów webowych • A także dla programistów C/C++/Objective-C po zainstalowaniu narzędzi Xcode w /Developer no i „terminal freak-ów” takich jak ja ;P PRAWIE... • Czy wszyscy wiedzą co to jest sudo? • PHP działa, ale już nie w Apache, który ma domyślnie moduł php5_module wyłączony • Musimy go włączyć edytując plik /etc/apache2/httpd.conf sudo nano /etc/apache2/httpd.conf lub mate /etc/apache2/httpd.conf #LoadModule php5_module • libexec/apache2/libphp5.so Niestety PHP, dołączone do OSX jest troszeczkę wybrakowane $ php -r ’phpinfo();’ • Brakuje m.in. GD, czyli czegoś co się pojawia w większości bibliotek webowych NAPRAWIAMY PHP PODEJŚCIE NR. 1 • Na szczęście jest dostępna prosta w instalacji kompletna paczka PHP na http://www.entropy.ch/blog/Software/2009/03/27/PHP-5-2-9-and-5-3-0RC1-Packages-for-Mac-OS-X-10-5.html • Paczka Entropy PHP 5.2.9-4.pkg instaluje się w /usr/local/php5 oraz dodaje plik w /etc/apache2/other, który automatycznie uaktywnia nową instalację PHP • Nie musimy uaktywniać PHP w /etc/apache2/httpd.conf jak to było pokazane na poprzednim slajdzie, dodatkowy plik w /etc/apache2/other wystarczy • Paczkę można wywalić usuwając /usr/local/php5 i /etc/apache2/other/*entropy* • Jeśli chcemy dowiedzieć się co i gdzie zainstalowała dana paczka możemy użyć lsbom $ lsbom /Library/Receipts/Entropy\ PHP\ 5.2.9-4.pkg/Contents/Archive.bom • OSX nie posiada uninstallera, ale lsbom i rm dają radę A CO Z MYSQL? PODEJŚCIE NR.1 • MySQL dostarcza oficjalne paczki dla OSX na http://dev.mysql.com/downloads/ • Paczka mysql-5.1.35-osx10.5-x86.dmg instaluje się w /usr/local/mysql-5.1.35 oraz w Preferencjach systemowych • Możemy ustawić w preferencjach systemowych, żeby MySQL odpalał nam się przy starcie systemu • Aby mieć polecenie mysql w konsoli powinniśmy dodać do ścieżki katalog /usr/local/mysql-v.v.v/bin do ścieżki $ echo /usr/local/mysql-v.v.v/bin | sudo tee /etc/paths.d/mysql • Zagadka! Czemu nie? $ sudo echo /usr/local/mysql-v.v.v/bin > /etc/paths.d/mysql • Paczkę możemy usunąć przez usunięcie katalogu /usr/local/mysql-5.1.35 oraz /usr/local/MySQLCOM, który zawiera skrypty startujące MySQL przy starcie systemu I TO BY BYŁO NA TYLE... ... ale jeśli chcemy wycisnąć z tego wszystkiego coś więcej? NAPRAWIAMY PHP PODEJŚCIE NR. 2 • MacPorts (dawniej DarwinPorts) kompletny zintegrowany system pobierania, kompilowania i instalacji pakietów open-source na Maka http://www.macports.org/ • Jeśli na Maku brakuje jakiegoś oprogramowania open-source (np. rodem z Linuksa), biblioteki lub modułu to na 99% jest on dostępny w MacPorts • Warianty w MacPorts pozwalają zainstalować dany program tylko/lub dodatkowo z wybranymi rozszerzeniami $ sudo port install php5 +apache2 +mysql5 +pear NAPRAWIAMY PHP PODEJŚCIE NR. 2 • MacPorts jest zupełnie niezależne od oprogramowania zainstalowanego w OSX i żyje sobie w osobnym katalogu stworzonym tylko dla siebie /opt/local • Właśnie dlatego MacPorts pobierze, skompiluje i zainstaluje w swoim katalogu także Apache i MySQL ze źródeł jeśli zażądamy instalacji PHP wraz z niżej wymienionymi rozszerzeniami $ sudo port install php5 +apache2 +mysql5 +pear • A więc ten slajd to również MySQL: Podejście nr. 2 • Wypada też w takim razie dodać /opt/local/bin do ścieżki $ echo /opt/local/bin | sudo tee /etc/paths.d/macports PARĘ SŁÓW WIĘCEJ O . • MacPorts przypomina trochę menadżer pakietów Debiana albo RubyGems i potrafi zainstalować całkiem dużo „nieprzydatnych” programów (pakietów) oraz pochłonąć dużo miejsca na dysku jeśli nie jest używany,-a,-e(?) z umiarem. Na szczęście tylko w obrębie /opt/local • Polecam kontrolować co mamy zainstalowane $ port installed • Odinstalowywać zbędne pakiety $ sudo port uninstall bzdet • Oraz czyścić środowisko kompilacji i cache pobranych plików $ sudo port clean installed • No i czasami uaktualniać MacPorts oraz informacje o pakietach $ sudo port selfupdate && sudo port update VS PACZKI W PKG/DMG. • Aplikacje w DMG to fajna rzecz, wrzucamy je do kosza i po kłopocie, niestety odinstalowywanie PKG wymaga, albo żeby autor paczki przygotował własnego uninstallera albo czeka nas ręczne wywalanie przez lsbom + rm. • Paczki w PKG (np. ta z Entropy dla PHP) są fajne jeśli nie zamierzacie odinstalowywać/ doinstalowywać modułów, bibliotek czy dodatkowych narzędzi. • MacPorts wygrywa jeśli często aktualizujecie PHP, lub chcecie używać najnowszej wersji Apache czy MySQL skompilowanego z niestandardowymi parametrami. • MacPorts pozwala także zainstalować języki niedostępne domyślnie w OSX np. Erlang, albo narzędzia takie jak GNU/Make (polecenie gmake), które nie do końca są kompatybilne z tymi dostępnymi w OSX. COŚ O KONTROLI WERSJI • OSX zawiera domyślnie dystrybucję Subversion 1.4.x, czyli polecenia svn i svnadmin • Możemy wersjonować projekty używając zdalnego serwera, albo też używać lokalnego repozytorium $ svnadmin create ~/repozytoria/nowe $ svn co file:///Users/ja/repozytora/nowe • Możemy też zainstalować GIT (polecam, paczka git-core) lub CVS (dla „old school’owców”) przez MacPorts DZIĘKUJĘ PYTANIA?