De forma predeterminanda Mac OSX ya cuenta con un servidor de Apache que se activa en System Preferences -> Sharing -> Web Sharing pero para la gente que nos dedicamos a desarrollo web no nos sirve de mucho si no contamos con PHP5 y con las extensiones respectivas.
He estado buscando un par de tutoriales en línea que ayuden en la tarea, pero por varias horas no pude hacer funcionar esto y todo por un detalle que nadie me recordo. Así que para ello estoy haciendo este pequeño tutorial y en español para la gente que como yo requiere de esto, para ello es necesario que tengamos instalado es XCode que viene en el segundo disco de restauración y creo que también viene completo al descargar el iPhone SDK.
Ya teniendo instalado el XCode necesitamos instalar MacPorts que es una aplicación que permite descargar y portar a Mac OS aplicaciones que normalmente no se tienen compiladas, en verdad es sumamente vital estos dos para cualquier desarrollador que vive en este sistema operativo, adicionalmente les recomiendo contar con iTerm (http://iterm.sourceforge.net/) que es una terminal de comandos mejorada y lo mejor de todo es software libre.
Primer paso, MacPorts
Hay que descargar una de estas versiones Leopard Universal, Tiger Universal o Panther Power PC, abrir el DMG y ejecutar la aplicación que contiene, no hay nada especial hasta aquí, solo hay que continuar hasta que escuchemos el sonido de terminado, una vez instalado hay que abrir nuestra terminal (Terminal o iTerm según se quiera) y hay que teclear lo siguiente:
sudo port -d selfupdate
Una vez que tengamos la pantalla de que todo termino sin problemas hay que continuar con el siguiente paso.
Segundo paso, instalando lighttpd
De nuevo en la terminal vamos a teclear comandos, ahora pondremos.
sudo port install lighttpd
Esto va a tardar un tiempo, ya que tiene que descargar el código fuente y compilarlo, no hay que preocuparnos ya que MacPorts hace toda la tarea pesada por nosotros. Una vez terminado hay que instalar el servidor como un demonio que debe iniciar cada vez que prende la computadora, para ello tecleamos:
sudo launchctl load -w /Library/LaunchDaemons/org.macports.lighttpd.plist
Tercer paso, instalando PHP5
Recordemos, todo esto se hace en la terminal por lo que ahora hay que ingresar lo siguiente, por cierto, este punto requiere de más tiempo para descargar y compilar por lo que recomiendo paciencia:
sudo port install php5 +fastcgi +pear +mysql5 +sqlite
Cuarto paso, configurar
Ya casi tenemos todo listo, ahora falta lo más importante, configurar. Hay que hacer muy bien esto por que en mi caso al no hacerlo bien me hizo perder mucho tiempo.
Primero necesitamos configurar lighttpd para ello vamos a usar un archivo que viene en la instalación:
sudo cp /opt/local/etc/lighttpd/lighttpd.conf.default /opt/local/etc/lighttpd/lighttpd.conf
Luego hay que editarlo para modificar unas partes, lo haremos desde Nano.
sudo nano /opt/local/etc/lighttpd/lighttpd.conf
Nos vamos a la parte de modulos y descomentamos (quitamos el #) los módulos "mod_fastcgi" y si se requiere el "mod_rewrite"
Luego hay que cambiar la ubicación de nuestro directorio base editando la variable "server.document-root" poniendo el que querramos se recomienda /Users/tu_usuario/Sites/ o en mi caso /Users/tu_usuario/Workspace/
Ahora los archivos logs, primero "server.errorlog" a /opt/local/var/log/lighttpd/error.log y "accesslog.filename" a /opt/local/var/log/lighttpd/access.log
Hay que descomentar las variables "dir-listing.active" y "dir-listing.encoding"
Por último hay que descomentar la variable fastcgi.server que son varias lineas que termina justo antes de la variable cgi.assign debe quedar de la siguiente forma:
fastcgi.server = ( ".php" =>
( "localhost" =>
(
"socket" => "/opt/local/var/run/lighttpd/php-fastcgi.socket",
"bin-path" => "/opt/local/bin/php-cgi"
)
)
)
Guardamos el archivo con Ctrl+O y Enter y lo cerramos con Ctrl+X
Ahora hay que crear la carpeta donde se van a estar guardando los archivos de logs:
sudo mkdir -p /opt/local/var/log/lighttpd
sudo mkdir -p /opt/local/var/run/lighttpd
El turno le toca a PHP, requerimos igual copiar un archivo de configuración que viene con la instalación y modificarlo:
sudo cp /opt/local/etc/php5/php.ini-dist /opt/local/etc/php5/php.ini
Lo editamos
sudo nano /opt/local/etc/php5/php.ini
Hay que cambiar la variable "short_open_tag" a que tenga el valor de "on".
short_open_tag = 1
Descomentar la variable "cgi.fix_pathinfo" (quitamos el #).
cgi.fix_pathinfo = 1
Luego hay que cambiar el path de las extensiones, debe quedar:
extension_dir = "/opt/local/lib/php/extensions"
Descomentamos las extensiones que necesitamos, mysql, mysqli.
Quinto paso, probar todo
Para ello primero reiniciamos lighttpd:
sudo launchctl stop org.macports.lighttpd
sudo launchctl start org.macports.lighttpd
Ahora creamos un archivo con el nombre de info.php en la carpeta base que contenga:
<?
phpinfo();
?>
Por último apuntamos nuestro navegador a http://localhost/info.php y debemos estar viendo el detalle de la instalación.
Suerte!!
Notas
Hay que validar que NO esté activo el Web Sharing de lo contrario no va a funcionar lighttpd.
Notas extras
sudo port deactivate php5 @5.3.0_0+fastcgi+macosx+sqlite
sudo port activate php5 @5.3.0_0+fastcgi+macosx+mysql5+pear+sqlite
lighttpd -f /opt/local/etc/lighttpd/lighttpd.conf -D
Referencias
Para iniciar o detener el servidor lighttpd hay que teclear:
http://davidwinter.me.uk/articles/2008/11/22/php5-lighttpd-and-imagick-on-mac-os-x-leopard/
http://henriksjokvist.net/archive/2007/12/setting-up-a-drupal-development-environment-with-lighttpd-in-mac-os-x
http://akelos.org/wiki/setting-up-akelos-on-lighttpd-in-a-mac
http://www.mjijackson.com/2008/02/how-to-install-php-53-alongside-52-on-lighttpd-using-macports
http://lenni.info/blog/2009/01/how-to-deactivate-one-macport-variant-and-switch-to-another-one/