Blog

Apache, PHP, MySQL en Zend Framework op Mac Os X Lion 10.7

No more Snow Leopard

Na een upgrade van Mac OS X Snow Leopard (10.6) naar Lion (10.7), moest mijn installatie van PHP en MySQL herinstalleerd worden. De installatie tussen de verschillende besturingssystemen is echter verschillend.

Het grootste probleem is namelijk dat Porticus, zoals hieronder beschreven wordt, niet meer ondersteund wordt in Lion.

De onderstaande instructies zijn evengoed geldig als je vertrekt vanaf een nieuwe installatie. De installatie is zelfs eenvoudiger. Je hoeft geen rekening te houden met backups. En je Mac OS heeft ook nog geen weet van een oude installatie.

Indien je toch een upgrade uitvoert, dan zullen bepaalde componenten proberen geactiveerd te worden. Volg heel goed de uitvoer van MacPorts om de componenten alsnog te activeren, mocht de automatische activatie mislukken.

Xcode

Voor je begint, dien je er voor te zorgen dat je Xcode geïnstalleerd hebt. Deze is gratis te downloaden in de App Store. Volg de installatie-instructies bij de installer.

Backup

Als je, net als ik, begint vanaf een bestaande installatie, kan je best je bestaande databases backuppen. Dit kan het best via mysql_dump.

Daarnaast neem je ook best een backup van je bestaande /opt-directory. Je kan deze verwijderen, maar beter is om deze een nieuwe naam te geven. Je opent de terminal, en tikt volgende regel in:

sudo mv /opt /opt.old

Macports

Het programma die gebruikt wordt om de pakketten te installeren is MacPorts. Dit programma is gebaseerd op de Linux-pakket-beheerders. Via MacPorts is het mogelijk om verschillende Linux-gebaseerde toepassingen te installeren. Deze is vooral interessant om server-gerelateerde toepassingen te installeren.

Download en installeer MacPorts volgens de instructies.

Apache

De huidige Apache-versie is Apache 2.x. De MacPort installeer je via de terminal op deze manier:

sudo port install apache2

Het installeren duurt een tijdje. Er worden ook een deel componenten geïnstalleerd die nodig zijn voor de goede werking van Apache.

Configuratie van Apache

Apache heeft nog wat configuratie nodig om correct te werken. Tik in de terminal:

sudo nano /opt/local/apache2/conf/httpd.conf

Zoek hierin de regel:

DocumentRoot "/opt/local/apache2/htdocs"

en vervang deze door:

DocumentRoot "/Library/WebServer/Documents"

Ga ook op zoek naar de regel: 

<Directory "/opt/local/apache2/htdocs">

en vervang deze door:

<Directory "/Library/WebServer/Documents">

Laat Apache ook weten dat hij index.php-bestanden moet aanvaarden. Voeg onderaan in dit bestand deze regels toe:

<IfModule dir_module>
    DirectoryIndex index.html index.php
</IfModule>

Om userdirectory's te kunnen gebruiken, websites in ~/Sites, zoek je de regel

Include conf/extra/httpd-userdir.conf

op, en verwijder het commentaarteken #.

Om Apache snel te kunnen opstarten en afsluiten voeg je nog aan de .profile nog een regel toe. Typ in:

nano ~/.profile

en voeg deze regel toe:

alias apache2ctl='sudo /opt/local/apache2/bin/apachectl'

MySQL

Voor je PHP installeert, installeer je eerst MySQL-server. Open de terminal en tik in:

sudo port install mysql5-server

Ook hier worden weer extra componenten geïnstalleerd.

Configuratie

Om correct MySQL te kunnen gebruiken, is er ook nog een beetje configuratie nodig. 

Begin met de database te vullen met standaard-gegevens. Tik in de terminal:

sudo -u _mysql mysql_install_db5

We maken ook een alias aan, zodat we mysql snel kunnen starten en stoppen. Tik in de terminal:

nano ~/.profile

Voeg in dit bestand volgende regels toe:

alias mysqlstart = 'sudo /opt/local/bin/mysqld_safe5 &'
alias mysqlstop = '/opt/local/bin/mysqladmin5 -u root -p shutdown'
Sluit dit bestand af. 
Er moet nog een bestand voor de socket gemaakt worden:
sudo nano /opt/local/etc/mysql5/my.cnf
Voeg in dit nieuwe bestand deze regel toe:

[mysqld_safe] socket = /tmp/mysql.sock

Sommige programma's zoeken het socket-bestand op een andere plaats. Maak een soft-link aan met:
sudo ln -s /tmp/mysql.sock /opt/local/var/run/mysql5/mysqld.sock

PHP

Installeer PHP met:

sudo port install php5

Ook dit duurt weer een hele tijd. Nadien moet de juiste module door Apache geladen worden:

cd /opt/local/apache2/modules/

sudo /opt/local/apache2/bin/apxs -a -e -n "php5" libphp5.so

Maak ook nog een php.ini aan. Er bestaat al een versie voor development en voor production. Kopieer de gewenste versie naar php.ini:

cd /opt/local/etc/php5/

sudo cp php.ini-development php.ini

PhpMyAdmin

Nog 2 om af te ronden. We beginnen met PhpMyAdmin:

sudo port install phpmyadmin

Na een tijdje is deze klaar.

ZendFramework

En als laatste:

sudo port install ZendFramework

ook deze duurt een tijdje omdat er heel wat extra php-componenten bijgeïnstalleerd worden.

Geniet van je installatie!

2011-12-17