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?

Podobne dokumenty