La primer vez que tuve que configurar PHP en OS X, me sorprendió lo fácil que fue, solo tuve que descomentar una línea en el archivo de configuración de Apache, habilitar Web Sharing en las preferencias del sistema, y listo; Apache y PHP funcionando juntos.

El “problema” viene cuando necesitamos usar PostgreSQL, la extensión no está incluida en el PHP pre-instalado en el sistema operativo, y si eres relativamente nuevo a Mac, probablemente te cueste algo de trabajo echarlo a andar, así que tratare de que esto sea lo menos doloroso posible.

1 – Habilitar Apache y PHP

Para empezar, abrimos la aplicación Terminal (Applications/Utilities/Terminal.app), después, necesitamos habilitar PHP

sudo nano /etc/apache2/httpd.conf

Buscamos la línea

#LoadModule php5_module libexec/apache2/libphp5.so

y la descomentamos (Le borramos el # del inicio). Guardamos los cambios (CTRL+X).
Ahora necesitamos crear un archivo ini y reiniciar apache para que funcione con PHP y probar

sudo cp /private/etc/php.ini.default /private/etc/php.ini
sudo apachectl restart
sudo nano /Library/WebServer/Documents/phpinfo.php

En el editor, ponemos lo siguiente

<?php
phpinfo();
?>

Guardamos y vemos el resultado en http://localhost/phpinfo.php

2 – Instalar PostgreSQL

No voy a profundizar mucho, ya que es en extremo fácil, solo descarguen la versión que necesiten de esta página http://www.enterprisedb.com/products-services-training/pgdownload y píquenle a “Next”.

3 – Generación de la extensión

Ya que tengamos PostgreSQL instalado, verificamos la versión de PHP que viene con nuestro OS, en terminal:

php -v

Les mostrará algo así:

PHP 5.4.17 (cli) (built: Aug 25 2013 02:03:38)
Copyright (c) 1997-2013 The PHP Group
Zend Engine v2.4.0, Copyright (c) 1998-2013 Zend Technologies

Descargamos, desde la página de PHP, el “Complete Source Code” de la versión correspondiente, descomprimimos y entramos hasta la carpeta pgsql del contenido, en mi caso:

curl -O http://mx1.php.net/distributions/php-5.4.17.tar.gz
tar -zxf php-5.4.17.tar.gz
cd php-5.4.17/ext/pgsql

Desde Mountain Lion (OS X 10.8), Apple removió autoconf de la distribución, así que si tu versión de OS X es 10.8 o mayor, necesitas realizar primero el paso 3.a, de lo contrario, pasa directo al 3.b.

3.a

Para Mountain Lion y versiones más nuevas, necesitamos instalar Homebrew, y a través de el, autoconf:

/usr/bin/ruby -e &amp;quot;$(/usr/bin/curl -fksSL https://raw.github.com/mxcl/homebrew/master/Library/Contributions/install_homebrew.rb)&amp;quot;
sudo chown -R $USER /usr/local/Cellar
brew update
brew install autoconf

3.b

Ahora, necesitamos generar la extensión de PostgreSQL para PHP, en mi caso, PostgreSQL está en la versión 9.3:

phpize
./configure --with-pgsql=/Library/PostgreSQL/9.3
make test
sudo make install

Importante, “make test” es necesario para que se pruebe cada una de las funciones que se están generando.
Ahora, para verificar que se haya generado correctamente, revisamos en el directorio de extensiones de PHP

ls /usr/lib/php/extensions/no-debug-non-zts-20100525

Ahí tienen que ver el archivo “pgsql.so”

4 – Activar plugin

Ahora solo nos queda activar el plugin

sudo nano /private/etc/php.ini

Y al final del archivo ponemos

extension=pgsql.so

Guardamos y reiniciamos Apache

sudo apachectl restart

Y entrando de nuevo al PHP INFO que generamos en el paso 1, veremos que ya existe una sección llamada pgsql donde vienen los detalles de la extensión que acabamos de generar.

6 Comment on “Configurar Apache, PHP y PostgreSQL en Mac, sin morir en el intento

Leave a Reply to Rodrigo Cancel reply