Friday, November 30. 2007
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:
- 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
- las fuentes de PHP 5 > que las podemos obtener directamente desde el sitio php.net
- la libreria libxml2-dev instalada (una dependencia de PHP cuando lo compilas)
- las fuentes de plphp que las obtenemos del sitio del proyecto en commandprompt
- 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.gzluego 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-embednos podemos ir a tomar un cafe, pues aveces tarda un poco
$ makeVolvemos por las galletas....
$ sudo make installsi 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/plphpo en caso de que hubiesemos compilado postgres:
$ ./configure --with-php=/usr/local/plphp --with-postgres=/ruta/a/postgres$ make$ sudo make installcon 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