Agregar un modulo a PHP compilado … integrado VS modulo (pecl)

Comento como podríamos hacerlo, que básicamente son dos opciones.

Compilar PHP con el modulo pdo_pgsql incluido

* PRO: Es a la vieja usanza… no falla!
* CONTRA: Es un embole cada vez que queremos agregar un modulo nuevo!.

Como lo hacemos? (Voy a poner algunos pasos extras o que se pueden comprimir en un solo paso, que seguro vos ya tenes, para que le sirva a otros en el futuro)
1- Instalamos las herramientas de compilación.

2- Instalamos las librerias de PostgreSQL necesarias para la compilación del modulo pdo_pgsql de PHP (se utilizan headers de los fuentes de PostgreSQL)

3- Bajamos el código fuente, lo descomprimimos y entramos a la carpeta donde lo dejamos

4- Procedemos con la compilación, primer paso configurar la instalación con el comando ./configure

– El modificador –with-pdo-pgsql es el que le dice al compilador de que queremos agregar el modulo pdo_pgsql
– El modificador –prefix lo que dice es donde va a dejar el fuente ya compilado, aunque no es necesario, es una buena costumbre poner una ruta especifica, en  este caso: /usr/local/php-5.3.19

Comentario: Se pueden ver mas modificador…  ejecutando ./configure –help

5- Compilamos e instalamos.

6- Configuración

Por default en la instalación de php, no viene el archivo de configuración php.ini y toma todas las configuraciones por default. Debemos copiarlo desde los fuentes.

NOTA: Cambiar las rutas según la versión que se este instalando.

Con esto, tenemos instalado un PHP con el modulo pdo_pgsql incluido.

Compilar PHP y agregar el modulo pdo_pgsql por pecl (osea como modulo)

* PRO: Es una manera mucho mas  comoda de hacerlo…
* CONTRA: «Puede fallar» dijo un conocido mago …

Bueno, hasta el paso 3, es exactamente igual a lo que explique anteriormente… lo que cambia es el punto 4.

4- Procedemos con la compilación, primer paso configurar la instalación con el comando ./configure

Insisto con usar el modificador –prefix

Los pasos  5 y 6 son tambien exactamente iguales, pero aqui se agregan 2 pasos mas.

7- Instalar modulo via pecl.

Código: [Seleccionar]

8- Configurar el modulo/extension en el php.ini

NOTA: Si, hay que editar el archivo que creamos en el paso 6.

Y agregar la siguiente linea al final del archivo:

Con esto debería estar listo, si ejecutamos el comando php -m deberíamos poder ver el modulo activado.

Sigue leyendo

Mis viajes gracias al SIU … y ya van…

Aun no tuve la suerte de poder visitar mi país por turismo, pero poco a poco por trabajo en representación de la UNQ, y ahora un poco también en mi rol de «doble agente» (UNQ/SIU … cuando no me calso el rol de UNAJ también) estoy conociendo varias de las principales ciudades de mi país por las distintas reuniones de comité y de trabajo que tenemos.

Consumir Web Service del SIU-Mapuche desde SIU-Toba

Claramente lo primero que tengo que tener, es correctamente instalada la libreria WSF/PHP en el servidor del SIU-Mapuche, y tambien en el servidor en el cual estamos desarrollando la aplicación ya que es fundamental para el manejo de WS en SIU-Toba esta librería.

Generando el entorno (Seguridad)

Los WS service del SIU, por convención TODOS, menos los de prueba (eco y ping) deben funcionar «seguros», esto quiere decir que deben viajar encriptados y firmados (utilizando criptografía asimétrica). Para realizar esto es necesario utilizar dos pares de certificados (unos para el cliente, otros para el servidor).

Robada Tomada desde Wikipedia

Para crear los certificados debemos tener un archivo openssl.ini el cual vamos usar para facilitar el ejemplo y al cual le podemos editar las siguientes partes:

y la parte:

con la información particular de la institución donde trabajan.

Para generar los certificados debemos ejecutar:

Y repetir la operación para generar los certificados para el servidor:

Configuración del servidor (SIU-Mapuche)

Primero que nada, hay que saber que los WS del SIU-Mapuche, tienen un sistema de seguridad por el cual se permite la activación y desactivación de los mismos

El sistema SIU-Mapuche por default trae desactivados todos los WS exepto 2 que son de prueba (echo y ping). Para activar los WS se debe ir a Configuración, una vez que estamos dentro de la operación Configuración se debe ingresar a Servicios Web -> General, ahí tildar los servicios que necesitamos, y guardar los cambios.

Una vez habilitados los WS, debemos configurar los certificados (3 de los 4 que creamos antes).

Debemos subir 3 certificados al servidor donde se encuentra el SIU-Mapuche

  • server.crt (Certificado servidor)
  • server.key (Clave servidor)
  • cliente.crt (Certificado cliente)

Cuando se tengan estros tres archivos subidos al servidor, vamos a Configuración -> Servicios Web -> Seguridad,  y llenamos con las 3 rutas completas a los archivos que acabamos de subir según corresponda y guardamos.

Configuración del cliente (nuestro proyecto en SIU-Toba)

Dentro de nuestro proyecto, debemos crear un nuevo «servicio web accesible», esto lo podemos realizar desde el toba_editor en la pestaña «Datos» -> «Servicios Web Accesibles», aquí hacemos click en el botón agregar.

En el ejemplo que voy a mostrar, vamos a trabajar con los WS de agentes.

Y guardamos los cambios.

Nota: La URL siempre esta formada por el punto de acceso a los servicios web del SIU-Mapuche (http://{ruta_al_siu_mapuhce}/servicios.php) mas el nombre del WS que puede verse en el SIU-Mapuche en «Ayuda» -> «Servicios Web» (ServicioWebAgentes, ServicioWebCargos, ServicioWebPruebas, etc).

Lo próximo que tenemos que hacer es configurar el «certificado del servidor» en la «instancia cliente» (nuestro proyecto). Esto lo podemos hacer con un comando de consola de toba:

Con todo esto, ya deberíamos tener todo configurado y listo para poder trabajar (codear!).

NOTA: Tomo por sentado de que tienen conocimientos de como crear operaciones en SIU-Toba.

Para este ejemplo, creamos una operación la llamamos Legajo y le agregamos un CI, al CI le agregamos un cuadro con 3 columnas (legajo, nombre y apellido) y extendemos el CI.

agregamos el siguiente código:

FIN!

Proximamente voy a subir como hacer para consumir los WS del SIU-Mapuche desde afuera del SIU-Toba.

Pueden bajarse el proyecto demo que realice y poder utilizarlo de ejemplo, solo tienen que cargar el proyecto en un SIU-Toba 2.3.4 y cargarlo con el siguiente comando de toba:

Referencias:

  • http://toba.siu.edu.ar/trac/toba/wiki/Referencia/ServiciosWeb
  • Evento Anual en la UNLP curso de WS SIU-Toba

Links interesantes de la semana!

Lo que estuve taggeando en los últimos días

Internet + Google = Me ahorraron trabajo (Pero no como de costumbre).

Queria escribir, comentar … algo loco que me sucedio… y me alento a seguir posteando cosas en el blog…

Como dice el titulo, pero a diferencia de el 99,99% de las veces, internet y google no me ayudaron a conseguir información para solucionar un problema, sino que me ayudo brindando información a 3ros que yo habia publicado, ahorrandome el trabajo de tener que compartirla en lugares especificos (de eso realmente estoy trabajando)… aca va lo que paso:

Si alguien ve este blog, notaran que no soy un asiduo posteador, es mas… casi nunca lo hago… pero en uno de los trabajos que tengo, necesitaba investigar y probar algo entonces, habia realizado un post sobre como instalar una libreria media rara de Servicios Web que utiliza el SIU, realmente como un ayuda memoria para cuando lo necesite, para tenerlo en cualquier lugar asi de donde estaba conectado poder copiarlo y pegarlo, total… no era información sensible (se puede encontrar en otros lados googleando un poco).

Lo buena onda de todo esto, es que no tuve que postearlo en ningun lado, los usuarios del SIU, gracias a la magia de internet (Google!) llegaron solos a la información que estaba en mi blog, y la compartieron en un post de la comunidad SIU.

Realmente me resulto loco, gratificamente, y motivador para seguir posteando cosas.. (por eso el ultimo post) … no es totalmente al pedo 😛 … no es solo un ayudamemoria personal (hay un par de post que los mire y re mire un millon de veces, por que no me acordaba como hacerlo), tambien les sirver a terceros… como este post… o tambien este otro (este ultimo lejos!)… que aparecen como las paginas con mas visitas… algunas cosas son obvias (inclusive copias de la documentación oficial con algun tweak personal), otras cosas que me costaron encontrarlas (encontrar la versión que realmente funcione) y/o estaban en otro idioma…

Espero que le siga sirviendo a la gente…

PD: En el nuevo Debian que me instale aun no puse el corrector ortografico, asi que tengo un extra de faltas en los ultimos posts 😛

Compilación de PostgreSQL 8.3.* en Debian 6 (Squeeze)

Volvi… volvi a tener un escritorio Debian… Debian puro… y tengo que reinstalar el servidor PostgreSQL 8.3 para los sistemas SIU (esta es la versión recomendada para la mayoria de los sistemas).

Claramente no estoy inventando la rueda, solo es lo que dice la documentación oficial de postgres, sumado a la instalación de algunas cosas para Debian… pero bue… vi que mis posts fueron utiles para otros… ademas siempre me sirve de ayudamemoria.

Primero que nada me bajo los fuentes del postgres y lo descomprimo

(Al dia de la fecha la versión 8.3.20 es la ultima versión estable de esta rama)

Una vez ahi, necesito compilarlos… pero tengo que bajarme las herramientas…

Y tambien es necesario instalar unas librerias/dependencias para compilar el postgres.

Y empezamos el proceso de compilación, configurandolo… pasamos el parametro –prefix con la ruta donde queremos tener el postgres compilado, yo por costumbre lo dejo en /usr/local/postgres-{version}

Corremos un make y un make install

Luego de haber compilado, y tener el postgres instalado, debemos realizar alguntas tareas mas antes de arrancar el servicio

Una buena costumbre, es hacer un link simbolico con el nombre de la aplicación sin la versión y despues desde otros lugares llamar a la aplicación con este link simbolico… (ya van a ver ejemplos mas adelante) para que al hacer cambios de versión, el cambio sea menos traumaticos y no se tenga que ir cambiando rutas por todo el servidor.

Crear usuario para postgres

Crear carpeta para la base de datos

Crear una instancia de la base de datos (cluster)

Link a los binarios

y agregar la siguiente linea antes de EXPORT_PATH

Configurar el inicio automatico

Y suplantar las siguientes lineas:

prefix=/usr/local/pgsql por prefix=/usr/local/postgresql

PGDATA=»/usr/local/pgsql/data» por «PGDATA=/usr/local/postgresql/data»

Arrancar el PostgreSQL

FIN… Ser feliz!

Lo ultimo interesante que encontre en la Web.

Ultimamente estuve flojo… y no lei mucho el Google Reader… asi que vengo… lento con links interantes…

Instalación de WSF/PHP en Debian Lenny

Antes que nada probé realizarlo en Ubuntu 12.04 sin ningún éxito con el README.INSTALL que esta en el paquete y no funciono, y probé instalarlo en Debian Lenny también con el mismo tutorial sin éxito.

Sobre Ubuntu, compilaba todo perfectamente pero al tratar de probar la librería me tiraba un error que tras googlear no se encontraba solución aparente y acusaban de que era un problema con Ubuntu desde la versión 11.04, en Debian Lenny, fue mucho mas grave, directamente no podía compilarlo. Según pude leer el ./configure no tiene los chequeos suficientes que debe tener.

Como realmente creo que muy pocas veces se valla a instalar sobre Ubuntu, mas que para pruebas, opte por avanzar con la investigación sobre una maquina virtual Debian instalada absolutamente desde 0 con solo el fin de probar la librería.

Y ahora… la magia en castellano!

1- Instalar prerrequisitos desde apt-get

2- Compilar y instalar Apache Axis2/C

NOTA: Como ♪nada es para siempre♪, y no puedo asegurar la disponibilidad del link con el axis2c lo pueden descargar de mi blog ( axis2c-src-1.6.0.tar )… pero por las dudas siempre traten de bajar el de la URL anterior.

3- Bajar y descomprimir los fuentes de  WSF/PHP

EDITADO 11/11/2012: Un comentario interesante, en una instalación que estoy haciendo precisamente ahora, por alguna razón cuando hago el «wget» me dice que me lo prohíbe (Error 403), no se si le agregaron alguna restricción al servidor para que si el cliente es wget no permita descargas. Probé bajarlo con Firefox, y no hubo problemas, solo un comentario, para que nadie enloquezca.

Como tampoco confío cuanto tiempo va a estar publicada esta librería también les dejo mi propia descarga ( FALTA! )

4- Compilar y instalar WSF/PHP

5- Configurar PHP

Agrego el modulo de wsf a los modulos que corren con php.

Configuro para que las librerias de wsf sean accesibles en el include_path de php. Para esto editar el php.ini y agregar una linea que se cambie de:

y se transforme en:

5- Verificar

Crear un archivo phpinfo.php y verificar que «Additional .ini files parsed» contiene «wso2.ini». Chequear que las extensiones «wsf» y «xsl» esta instaladas.
Correr el siguiente test script.

6- Ser feliz!

Sigue leyendo