snow leopard (mac os x 10.6) ist zwar mit seinem 64bit dingelskern dann doch nicht so der (freudig) erwartete geschwindigkeitsrausch. was aber gut ist: apple hat die skriptsprachen aktualisiert. das bedeutet neben neuesten version von python, ruby und perl gibt es auch php 5.3. und diesmal sogar mit den wichtigsten libs. ich habe bisher noch keine extension vermisst. deshalb habe ich das auch noch nicht kompiliert. trotzdem muss man noch ein bisschen rumfummeln, bis man eine gutausgerüstete entwicklermaschine bekommt.
LAMP == linux, apache, mysql, php
linux
ok, war nur spaß. wie lassen natürlich das os x system drauf…
apache
apache2 ist schon installiert und kann über das kontrollfeld systemeinstellungen/ freigaben/ webfreigabe aktiviert werden. testen kann man das dann, indem man http://localhost
in die browser adresszeile eingibt.
msql
mysql fehlt. die erste lücke ist gefunden. mittlerweile gibt es dafür aber ein vorkompiliertes paket.
http://dev.mysql.com/downloads/mysql/5.1.html#macosx-dmg
das 10.5 intel image funktioniert bei mir wunderbar. man kann sich ein kontrollfeld installieren (empfehlenswert), mit dem man die DB hoch und runterfahren kann.
einen hübschen cocoa client gibt es hier: sequel pro
php aktivieren
php ist von hause aus nicht aktiviert. d.h. hier muss man an die konfigdatei ran: in /etc/apache2/httpd.conf
die zeile
LoadModule php5_module libexec/apache2/libphp5.so
auskommentieren. oft braucht man auch virtuelle hosts. dann sollte man gleich noch die zeile
Include /private/etc/apache2/extra/httpd-vhosts.conf
auskommentieren. in der extra/httpd-vhost.conf
sollte dann auch schon was sinnvolles stehen. bei mir steht da:
<Directory /Users/rw/dev/sites/*/htdocs>
Order allow,deny
Allow from all
AllowOverride All
Options FollowSymLinks
</Directory>
<Directory /Library/WebServer/Documents>
Order allow,deny
Allow from all
AllowOverride All
Options FollowSymLinks
</Directory>
NameVirtualHost *:80
<VirtualHost *:80>
ServerAdmin webmaster@dummy-host.example.com
DocumentRoot "/Library/WebServer/Documents"
ServerName localhost
ServerAlias otto
</VirtualHost>
<VirtualHost *:80>
ServerName demo
ServerAlias demo.otto
DocumentRoot /Users/rw/dev/sites/demo/htdocs
ErrorLog /Users/rw/dev/sites/demo/log/error_log
CustomLog /Users/rw/dev/sites/demo/log/access_log combined
</VirtualHost>
bedeutet: der default host ist wie gehabt unter /Library/WebServer/Documents
. meine experimente finden unter /Users/rw/dev/sites/demo/htdocs
statt, wobei demo
der name des virtuellen hosts ist (otto ist der computername). die directory anweisungen sind dafür da, dass ich alles machen darf, sprich: symbolische links setzen und .htaccess
dateien anlegen. jeder virtuelle host muss natürlich in die /etc/hosts
eingetragen werden:
127.0.0.1 localhost demo
sonst bekommt man zb. statt dem demo server, demo.com zu gesicht, wenn man es im browser aufruft.
nach einem apache restart. haken in systemeinstellungen/ freigaben/ webfreigabe wegnehmen und wiederreinsetzen sollte dann php funktionieren. testbar über eine datei zb. info.php
, die man in /Library/WebServer/Documents
platziert und via http://localhost/info.php
aufruft.
<?phpinfo()?>
hyperestraier
zu einer guten webanwendung gehört eine leistungsfähige suchmaschine. erste wahl ist hierbei hyperestraier. glücklicherweise ist das kompilieren absolut problemlos. voraussetzung ist die qdbm
die sich aber auch klaglos kompilieren läßt. also qdbm runterladen unter http://qdbm.sourceforge.net/
auspacken, ins verzeichnis wechseln und dann die hlg3fltgk:
./configure
make mac
sudo make install-mac
man beachte die mac version von make und -install. nach selbigem verfahren bringt man dann auch den hyperestraier zum laufen.
spätestens jetzt wird es auch interessant /usr/local/bin
in den systemsuchpfad von kommandozeilenprogrammen aufzunehmen. dazu ändert man die entsprechende zeile in der /etc/profile
in
PATH="/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin"
das gilt dann für alle user. wenn man das nur für einen user möchte, trägt man in die /Users/username/.bash_profile
diese zeile ein:
PATH="$PATH:/usr/local/bin"
imagemagick
viele webanwendungen verwenden imagemagick zur bildbearbeitung. und das zu recht, sind doch die resize ergebnisse denen der gd-lib in sachen qualität deutlich überlegen. als kommandozeilentool ist die installation i.d.R. auch vollkommen unkomliziert. leider ist imagemagick auf dem mac ein echtes sorgenkind. zwar gibt es mittlerweile ein binary auf den projektwebseiten, die systemintegration ist indes sehr unhandlich, so dass man davon abraten muss. (man muss entweder eine reihe von umgebungsvariablen setzen — dann auch wieder extra für den apache — oder ca. 10 symlinks setzen…) beim surfen nach einer neuen lösung bin ich auf ein interessantes script gestossen, dass das runterladen+kompilieren von imagemagick und den zahlreichen bibliotheken, von denen es abhängig ist, erleichtern soll. und es funktioniert wirklich:
http://github.com/maddox/magick-installer/tree/master
wer dieses shellscript direkt auschecken will (git clone) braucht natürlich noch den versionsverwaltungsclient (siehe nächster abschnitt).
testen, ob alles funktioniert, kann man z.b. mit dem kommando
convert logo: logo.gif
das sollte das gif mit dem kleinen magier erzeugen.
subversion und git
ein subversion client ist bei snow leopard schon dabei. git ist das neueste ding in sachen (dezentrale) versionsverwaltung. ich habe mir einen installer runtergeladen und der funktioniert auch (leo intel image):
http://code.google.com/p/git-osx-installer/
ja. das wars erstmal. jetzt hat man ein system, mit dem man schonmal einiges anstellen kann. viel spaß.
Kommentare
johnny am 9. Nov 2009 12:18
LAMPMAMPs funktioniert. Danke für die Beschreibung. Jetzt kommt bei mir noch der Rest drauf...johnny am 21. Nov 2009 19:15
achtung, will man mysql mit rails verwenden, muss man die 64 bit version installieren. das installieren des gems funktioniert dann mit
sudo env ARCHFLAGS="-arch x86_64" gem install mysql -- --with-mysql-config=/usr/local/mysql/bin/mysql_config
da kann es passieren, dass noch fehlermeldungen wegen der doku gibt, diese können mit "--no-rdoc --no-ri" unterdrückt werden.