| Tweet |
Instalando PostGreSQL, php-pgsql y php-pdo_pgsql en Mac OS X
No me malentiendan: desde que ocupo Mac OS X que me encanta y no me cambiaría de vuelta a Linux ni menos a Windows, pero hay algunas cosas que son capaces de hacerte doler la cabeza. Una de ellas es justamente la instalación de PostGreSQL y sus conectores para PHP: php-pgsql y su driver unificado mejorado PDO. Entre medio, hay que borrar usuarios de sistema, compilar y parchear, así que preparaos porque esto se viene bueno.
Lo bueno de todo esto, es que la instalación de PostGreSQL está dentro de lo más fácil. Sólo basta con bajar un paquete, borrar un usuario de sistema e instalar para que todo resulte bien, lo cual se hace de la siguiente manera: (Todos los comandos se ejecutan como root o sudo, lo que prefieran)
dscl . delete /users/postgres cd /Volumes/PostgreSQL\ 9.0.3-1/ ./postgresql-9.0.3-1-osx.app/Contents/MacOS/installbuilder.sh # seguir los pasos en pantalla. # el siguiente comando crea el superuser de postgres: # el nombre de la cuenta (segundo parámetro) puede ser cualquier cosa. createuser pgsql --pwprompt --username=postgres
Con eso debería quedar instalado PostGreSQL. Primera parte lista.
Instalando php-pgsql
Suponiendo que PHP ya está instalado (tb suponiendo que el que está instalado es la versión 5.3.3 que se distribuye con Snow Leopard 10.6) ahora comienza el dolor de cabeza, ya que la versión de PHP de Mac OS X no viene compilado para funcionar con pgsql. Súmenle a eso que tenía varias copias de PHP dando vueltas por lo que en un principio no sabía cuáles archivos eran los que tenía que tocar. Al final resultó ser /etc/php.ini la configuración de PHP aplicada y /etc/apache2/httpd.conf la configuración de Apache. Ojo que /etc/ es un symlink, la ruta absoluta es /private/etc/.
Lo primero que debemos hacer si no lo hemos hecho es instalar xCode que trae GCC y todo el material necesario para poder compilar nuestras aplicaciones. Si no lo has hecho, bájalo desde apple.com y prepárate por que son algunos gigas. (casi 4 si mal no me acuerdo). Una vez instalado xCode podemos proseguir a lo demás.
Después de mamarnos la instalación de xCode, podemos proseguir. Lo primero que hay que hacer es ir a las fuentes y bajar el source del mismo paquete que instalamos, que en mi caso es la versión más actual: 9.0.3. Es probable que esta guía sirva también para las versiones posteriores.
Una vez bajado y descomprimido, nos vamos nuevamente a la terminal y ejecutamos como uds quieran:
cd postgresql-[version] CFLAGS="-arch i386 -arch x86_64" ./configure --prefix=/usr/local/mypostgres make
Después de un rato, make FALLARÁ pero eso será justo después del punto que nos interesa
make -C src/interfaces sudo make -C src/interfaces install make -C src/include sudo make -C src/include install make -C src/bin # ejecutamos el siguiente comando como root: make -C src/bin install
Con esto, debería quedar instalado libpq que es el paquete que nos interesa. Podemos proceder ahora a bajar el source la versión de PHP que tengamos instalado y lo descomprimimos. Una vez hecho eso, ejecutamos:
cd php-[version]/ext/pgsql phpize ./configure --with-pgsql=/usr/local/mypostgres make -j8 #ejecutamos como root sudo make install
Ahora editamos el archivo /etc/php.ini y agregamos extension=pgsql.so como una extensión. Lo último que falta es reiniciar Apache para que los cambios surtan efectos. ¡Felicitaciones! Terminamos de instalar el soporte de pgsql para PHP a Mac OS X y podemos proceder a borrar todas las carpetas temporales que creamos.
Instalando PDO-pgsql
Afortunadamente, esto es bastante más fácil que instalar la antigua librería. Hay que hacer lo siguiente (como root):
pecl channel-update pecl.php.net pecl download pdo_pgsql tar xvf PDO_PGSQL-1.0.2.tgz cd PDO_PGSQL-1.0.2 phpize ./configure --with-pdo-pgsql=/Library/PostgreSQL/9.0/ make && make install
Finalmente, retocamos nuestra configuración de php.ini agregando extension=pdo_pgsql.so y reiniciamos Apache (con apachectl restart).
Y eso sería todo por hoy. Si te sirvió, deja un comentario agradeciendo.
Fuentes:
Jeremiah Peschka
StackOverflow
GNEGG

Mayo 14th, 2011 - 23:17
Hola muchas gracias por los tutoriales pero tengo un problema, la terminal me da error en que no reconoce pecl y estoy desesperado por que no he podido conectar php y postgres, tengo instalado php 5.3.4, por favor ayuda que no se que estoy haciendo mal.
gracias de antemano
Mayo 15th, 2011 - 01:39
revisaste si pecl está instalado? Revisa con “whereis pecl”, en mi caso está en /usr/bin/pecl
Saludos.
Mayo 15th, 2011 - 14:28
gracias por responder.
Mire en el folder /usr/bin/ y no esta el ejecutable del pecl, que hago, como lo instalo?.
Mayo 16th, 2011 - 09:48
revisa acá:
http://php-osx.liip.ch/
Según sé (no lo he comprobado) ese programa te instala PHP completo, con PECL incluido.
Saludos.
Mayo 20th, 2011 - 20:55
Hola, muy buen tutorial especialmente para personas como yo que apenas estamos entrando en el mundo MAC
Agosto 29th, 2011 - 19:09
Saludos,
Muchas gracias, un tutorial muy claro. En cuanto a http://php-osx.liip.ch/ funciona perfecto y sin tener que compilar.
Diciembre 13th, 2011 - 17:31
Muy bueno el tutorial estoy precisando migrar unos usuarios de un servidor a otro servidor necesito ayuda por favor los parametros a tener encuenta y como lo hago mi servidor es suse .. desde ya muchas Gracias !!!