Instalacion G3 en Linux

Hola

Tuve que reinstalar guarani 3 en mi maquina(Corre un Linux Mint sobre Debian), asi que de paso aproveche para poner la version de php correcta, o al menos la que tengo instalada en los ambientes que tenemos.
El problema es que tengo problemas para instalar los paquetes de php necesarios, particularmente el pdo_pgsql
Cuando corro el comando de install de pcl ocurre esto

sudo pecl install pdo_pgsql No releases available for package "pecl.php.net/pdo_pgsql" install failed

Esta es la información de mi sistema y configuraciones de php:

fran@gandalf ~ $ php -m [PHP Modules] Core ctype date dom ereg fileinfo filter hash iconv json libxml pcre PDO pdo_sqlite Phar posix Reflection session SimpleXML SPL SQLite sqlite3 standard tokenizer xml xmlreader xmlwriter

[Zend Modules]

fran@gandalf ~ $ php --version
PHP 5.3.18 (cli) (built: Nov 20 2012 15:25:12)
Copyright (c) 1997-2012 The PHP Group
Zend Engine v2.3.0, Copyright (c) 1998-2012 Zend Technologies

Cualquier otra cosa que necesitan avisen

Saludos!

Finalmente encontre el problema:

No estaba configurado el proxy para el comando pecl. Para hacerlo tuve que ejecutar la siguiente linea

[code ] ~ $ sudo pear config-set http_proxy http://mi_proxy:puerto 

Si usaba el pecl en vez de pear, no se configuraba correctamente.

Una vez que solucione eso, usar [code ] ~ $ sudo pecl install pdo_pgsql

 no tuvo ningun problema

Saludos!

Sigo con el thread

Pese a que parecia que pdo_pgsql se habia instalado con el comando pecl, al ejecutar php -m sigo sin verlo.

Ademas, aunque edite los archivos php5/apache2/php.ini y php5/cli/php.ini con extension=pdo_pgsql.so
cuando ejecuto /toba/bin/instalar para instalar toba, me aparece el siguiente error:
[b] ---------------------------------------------------------------------------------------------------
Instalacion Toba 2.3.4


ERROR: Necesita activar la extension ‘pdo_pgsql’ en el archivo php.ini


TIEMPO: 0,033 segundos[/b]

Un locate para pdo_pgsql.so encuentro lo siguiente:

fran@gandalf ~$ locate pdo_pgsql.so
/usr/lib/php5/20100525/pdo_pgsql.so
/usr/local/lib/php/extensions/no-debug-non-zts-20090626/pdo_pgsql.so

Deberia poner alguna otra cosa en el php.ini?

Les paso mi version de php:
fran@gandalf ~ $ php -v
PHP 5.3.18 (cli) (built: Nov 20 2012 15:25:12)
Copyright (c) 1997-2012 The PHP Group
Zend Engine v2.3.0, Copyright (c) 1998-2012 Zend Technologies

Saludos!

Hola

No hace falta instalarlo mediante pear,

Para instalarlo en mint debian
apt-get install php5-pgsql
deberia bajar el modulo pdo_pgsql, pgsql y cargarlos en /etc/php5/conf.d

Cualquier cosa me avisas, y lo vemos
Saludos!

Hola

Gracias por responder.

Te cuento que ya habia googleado y vi que estaba ese paquete. Sin embargo, al instalarlo no se me arreglo nada.

En la lista de modulos sigue sin aparecer.

Saludos!

Hola

Por lo que veo en una instalacion el archivo pdo_pgsql.ini está en
etc/php5/conf.d
etc/php5/apache2/conf.d
etc/php5/cli/conf.d

Reiniciar el apache luego de modificar lo anterior.

Emilio

Hola
En cada uno de los directorios conf.d tengo un link al pdo_pgsql.ini original que esta en php5/mods-available/
Por ejemplo, para apache2/conf.d la lista es asi:


fran@gandalf /etc/php5/apache2/conf.d $ ls -la
total 8
drwxr-xr-x 2 root root 4096 dic  4 11:33 .
drwxr-xr-x 8 root root 4096 nov 29 12:15 ..
lrwxrwxrwx 1 root root   25 nov 20 16:28 10-pdo.ini -> ../mods-available/pdo.ini
lrwxrwxrwx 1 root root   25 nov 27 14:46 20-apc.ini -> ../mods-available/apc.ini
lrwxrwxrwx 1 root root   26 nov 20 16:29 20-curl.ini -> ../mods-available/curl.ini
lrwxrwxrwx 1 root root   24 nov 20 16:29 20-gd.ini -> ../mods-available/gd.ini
lrwxrwxrwx 1 root root   31 nov 27 14:46 20-memcached.ini -> ../mods-available/memcached.ini
lrwxrwxrwx 1 root root   31 nov 20 16:29 20-pdo_pgsql.ini -> ../mods-available/pdo_pgsql.ini
lrwxrwxrwx 1 root root   27 nov 20 16:29 20-pgsql.ini -> ../mods-available/pgsql.ini

El conf.d/ de cli y php5 es similar(en realidad cada conf.d de apache y cli apuntan al conf.d de php5/ )

Gracias por la respuesta

Saludos!

Ninguno de estos está en la lista que mandastes.
Podes hacer un php -i y mandar el resultado?

Aca paso la info en un archivo txt


php_i.txt (16.6 KB)

Fijate el valor de extension_dir y ahi tienen que estar los *.so. Por ej pdo_pgsql.so.

te agrego algo mas.

estas tres lineas
Loaded Configuration File => (none)
Scan this dir for additional .ini files => (none)
Additional .ini files parsed => (none)

no tendrían la información que se espera.
Sinceramente linux no es mi amigo, no se si podré ayudarte mucho mas.

Emilio

Hola, como están?

Estoy leyendo un poco cual es el problema y por lo que entiendo puede ser un problema de que no buscamos donde debemos las configuraciones y de versiones.

Por lo que leo lo que sucedio fue lo siguiente, y por favor corregime si no es así.

1- Bajaste y compilaste una versión de PHP.
2- Trataste de instalar por “pecl” el pdo_pgsql
3- Encontraste el comando apt-get install php5-pgsql
4- Corriste el comando apt-get install php5-pgsql

Si la cronología es esta, para este momento probablemente tengas instaladas dos versiones diferntes de PHP, una que compilaste, y otra que se bajo por apt-get.

Te pido por favor que hagas las siguientes pruebas…

Ejecuta en una consola cada uno de los comando de abajo, y compartinos que es lo que dice.

php -v
php5 -v
sudo update-alternatives --config php
sudo update-alternatives --config php5

Probablemente si estoy en lo correcto, el 3er comando te debe decir de que hay dos posibles opciones, y la versiones de PHP del 1er y el 2do comando deberían ser diferentes entre si.

Por favor comentanos como te fue…

Saludos!

Hola
Voy a responder por partes:
Hice un locate para estar seguro donde estaba el archivo pdo_pgsql.so y asi configurarlo en php5/cli/php.ini y php5/apache2/php.ini en la variable extension_dir
Esto es lo que devolvio:


fran@gandalf ~ $ locate pdo_pgsql.so
/usr/lib/php5/20100525/pdo_pgsql.so
/usr/local/lib/php/extensions/no-debug-non-zts-20090626/pdo_pgsql.so

Puse los dos valores para probar, pero ninguno mostro el driver con php -m

Gustavo:
Como dijiste, eso es efectivamente lo que hice. Primero compile una version de php, y depues encontre el php5-pdopgsql por lo que lo baje con pecl. A este punto, tendria mas sentido desinstalar todo y bajarlo con apt-get?
Te paso la salida de los comandos que pasaste:


fran@gandalf ~ $ php -v
PHP 5.3.18 (cli) (built: Nov 20 2012 15:25:12) 
Copyright (c) 1997-2012 The PHP Group
Zend Engine v2.3.0, Copyright (c) 1998-2012 Zend Technologies
fran@gandalf ~ $ php5 -v
PHP Warning:  PHP Startup: Unable to load dynamic library '/usr/lib/php5/20100525/pdo_pgsql.so' - /usr/lib/php5/20100525/pdo_pgsql.so: undefined symbol: pdo_parse_params in Unknown on line 0
PHP Warning:  PHP Startup: Unable to load dynamic library '/usr/lib/php5/20100525/zip.so' - /usr/lib/php5/20100525/zip.so: cannot open shared object file: No such file or directory in Unknown on line 0
PHP 5.4.4-9 (cli) (built: Oct 26 2012 13:00:59) 
Copyright (c) 1997-2012 The PHP Group
Zend Engine v2.4.0, Copyright (c) 1998-2012 Zend Technologies
fran@gandalf ~ $ sudo update-alternatives --config php
Sólo hay una alternativa en el grupo de enlaces php: /usr/bin/php5
Nada que configurar.
fran@gandalf ~ $ sudo update-alternatives --config php5
update-alternatives: error: no hay alternativas para php5.

Saludos!

Hola,

Como te comente y me confirmaste, tenes dos versiones diferentes de PHP en el servidor, estaria muy bueno que tengas una sola versión, no por que una moleste a la otra, sino que muy probablemente en un tiempo te olvides (lo digo por experiencia propia) y otra vez confundas las configuraciones.

Yo te recomendaria que utilices la de apt-get, pero hay un inconveniente que no tenia considerado, y es que la versión de PHP que trae Linux Mint es PHP de la rama 5.4, la cual no se si es soportada por el proyecto Guarani, hoy tengo entendido que ningún proyecto aun da soporte a esta versión, pero aun te lo debo confirmar.

Averiguo sobre la compatibilidad, y te comento como deberíamos seguir.

Saludos.

Hola Gustavo

En toba 2.3.3 se corrigieron una serie de puntos para hacerlo compatible con php 5.4
No se si todo. Pero algunas cosas se corrigieron.

Emilio

Hola,

Acabo de comunicarme con gente del equipo SIU-Guarani3, y me confirman de que no hay pruebas realizadas sobre PHP5.4 y que el framework SIU-TOBA aun no es oficialmente compatible con PHP 5.4 a pesar de los cambios realizados.

Te pido por favor que me des un tiempito para probar la instalación del modulo manualmente, ya sea por pecl o compilandolo manualmente.

Mientras tanto, podes ir desistalando la versión instalada por apt-get ya que no es actualmente compatible.

Perfecto
Ahora paso a desinstalar la version de php5 del apt-get

Gracias por la ayuda a ambos.

Saludos!

Hola,

Te comento como podriamos hacerlo, que basicamente 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.


# apt-get install build-essential 

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)


# apt-get install libpq-dev 

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


# cd /usr/local/src
# wget http://ar.php.net/get/php-5.3.19.tar.gz/from/ar2.php.net/mirror -O php-5.3.19.tar.gz
# tar -xzf php-5.3.19.tar.gz
# cd php-5.3.19

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


./configure --with-pdo-pgsql --prefix=/usr/local/php-5.3.19

  • 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.


# make
# make install

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.


# cp /usr/local/src/php-5.3.19/php.ini-development /usr/local/php-5.3.19/lib/php.ini

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


./configure  --prefix=/usr/local/php-5.3.19

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.


# pecl install pdo_pgsql

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


# nano /usr/local/php-5.3.19/lib/php.ini

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

Y agregar la siguiente linea al final del archivo:


extension=pdo_pgsql.so

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


Bueno, se me hizo un poco largo no?.. yo lo probe y me funciono correctamente, espero que te sirva, por favor comentanos como te fue!

PD: Ojo, que si volves a compilar probablemente te queden dos versiones… desinstala primero la que habías compilado antes y la que instalaste por php.

Hola Gustavo
Muchas gracias por el post.
Ahora estroy viendo como desinstalar la version de php que compile yo, porque el sudo make uninstall no me esta funcionando. Cuando arregle ese tema te cuento como salio todo.
Seguramente termine usando la forma 1 haci no tengo mas problemas.
Cuando logre algun avance te aviso

Saludos!

Tras un par de problemas, logre seguir los pasos que dijiste. Particularmente use la forma 1 porque tenia ganas de que ande.

El problema es que si bien el php -m me lista el modulo pdo_pgsql, y php -v me da la version 5.3.19, me parece que algo no anda bien.

No use el ./configure con --prefix, porque tuve que instalarlo encima de la version mas vieja que tenia, y esa no estaba en solo una carpeta.

El tema es que para probar que todo ande, hice un archivo test_php.php para acceder desde el browser y ver los datos. Sin embargo, cuando entro a localhost/test_php.php no se muestra correctamente.

Leyendo un poco con google, me entere que eso pasa cuando no tengo bien configurado o php no anda correctamente.

El archivo php.ini (que lo copie de php.ini-production)esta en usr/local/lib que es donde se puso la carpeta /php en la instalacion (usr/local/lib/php)

Saludos!