Noviembre, 2007Archivar

Nov 30

Desde hace bastante tiempo, he estado trabajando con postgresql Y bueno entre idas y venidas, entre las grandes ventajas que tiene postgres, son los lenguajes procedurales los cuales nos facilitan mucho el trabajo de interaccion con la base de datos…

Particularmente yo adoro PHP, y por eso este HOWTO es para PLPHP

a continuacion colocare la forma que yo sigo para instalar PLPHP (que no es mas que PHP dentro de la base de datos)

en principio, necesitaremos varias cosas:

  1. PostgreSQL 8.2 en adelante (si estas usando PostgreSQL de repositorios, asegurate de tener los paquetes de desarrollo (postgresql-server-dev-8.2)… si compilamos el Postgres nosotros mismos, debemos tener las fuentes del mismo disponibles (por si acaso), y tener los binarios de postgres en nuestro PATH
  2. las fuentes de PHP 5 > que las podemos obtener directamente desde el sitio php.net
  3. la libreria libxml2-dev instalada (una dependencia de PHP cuando lo compilas)
  4. las fuentes de plphp que las obtenemos del sitio del proyecto en commandprompt
  5. Un poco de paciencia

luego de obtener las fuentes de PHP, vamos a compilarlo (Si, hay que compilar PHP, puesto que la version que esta en los repos, no nos va a ser util porque no esta compilada para ser embebida [--enable-embed], esto no afectara para nada otras versiones de PHP (Principalmenteporque la instalacion la haremos en un directorio no estandar)

manos a la obra:

si tenemos todo lo necesario (el paquete buid-esential) podremos compilar sin problemas:
en una consola, navegamos hasta el directorio donde estan las fuentes de php, y descomprimimos

$ tar -xvvzf php5.x.x.tar.gz

luego nos cambiamos al directorio php5.x.x y desde alli configuramos, hacemos el make y el make install ;-)

$ cd php5.x.x/

$ ./configure –prefix=/usr/local/plphp –enable-embed

nos podemos ir a tomar un cafe, pues aveces tarda un poco

$ make

Volvemos por las galletas…. :-D

$ sudo make install

si teniamos todo lo que necesitabamos… entonces vamos bien… nos falta 1 solo paso

ahora vamos a compilar plphp, al igual que como hicimos con PHP, vamos a descomprimir, y por consola cambiarnos al directorio plphp-XXXX (donde XXXX es la version ;] ), despues de esto lo que viene es mantequilla:

$ ./configure –with-php=/usr/local/plphp

o en caso de que hubiesemos compilado postgres:
$ ./configure –with-php=/usr/local/plphp –with-postgres=/ruta/a/postgres

$ make
$ sudo make install

con esto, ya tendremos instalado el plphp, pero para que pueda ser usado por postgres, debemos hacer un ultimo paso:

$ ln -sf /usr/local/plphp/lib/libphp5.so $(pg_config --libdir)

para hacer un enlace simbolico en la carpeta de libs de postgres…

ya con esto… estamos listos, nos logueamos en el servidor como un superusuario (generalmente postgres)

y ejecutamos lo siguiente:

INSERT INTO pg_pltemplate VALUES('plphp', 't', 'plphp_call_handler', 'plphp_validator', '$libdir/plphp', NULL);

INSERT INTO pg_pltemplate VALUES('plphpu', 'f', 'plphp_call_handler', 'plphp_validator', '$libdir/plphp', NULL);

ya con esto, la base de datos template0/1 tendran plphp disponible como lenguaje… ahora simplemente en la base de datos que deseemos, debemos ejecutar esto:

CREATE LANGUAGE plphp;

ya solo nos queda probar nuestra obra, creemos una funcion de prueba:

create or replace function hola() returns text as $$ return 'Hola Mundo!';$$language plphp;

vamos a ver que pasa:

amarok=# SELECT HOLA(); hola-------------Hola Mundo!(1 fila)

Espero que les haya sido util este tutorial…

Recuerden luego de hacer esto, visitar:
https://projects.commandprompt.com/public/plphp/wiki/Documentation

  • Share/Bookmark

Agras Zeta Atino