Instalacion Pilagá: "could not find driver"

Hola a todos, mi nombre es Javier Ruitti, de la Universidad Nacional de Chilecito.

El problema que menciona el titulo se presenta al momento de cargar la instancia por primera vez. Al ejecutar toba_pilaga.sh instancia cargar aparece el mensaje:

Creando base “toba”… Ha ocurrido un error durante la importación de la instancia.
No es posible realizar la conexion a la base: could not find driver

En apariencia, es algun problema entre php y postgres. Ahora detallo el entorno en el que estamos probando:

S.O. Red Hat Enterprise Linux 4
Pilagá v. 1.9.0
Apache 2.2
Postgres 8.1.17
Php 5.2.2

Adjunto el phpinfo para ver si está bien configurado. Comento también que lo probé en dos servidores, con diferentes configuraciones, y el error ocurre igual.

Hay una incognita que se me presenta:

  • el extension_dir del php o configuré en /usr/local/include/php/ext

Saludos, y desde ya, muchas gracias!


Hola Javier,

Efectivamente tenes un problema de comunicación entre php y postgres. Si miras bien el phpinfo, en la sección “PDO”, vas a ver que tenes drivers para sqlite2 y sqlite pero no para postgres. Podes instalarlo vía “PECL” como sugiere el Trac de toba.

Para hacerlo manualmente, primero fijate que los drivers para postgres (pdo_pgsql.so) esten en el directorio de extensiones de PHP. El path al directorio de extensiones esta definido por la variable “extension_dir” y lo podes ver en tu phpinfo. Una vez que termines esto, solo te queda incluirlo en el/los “php.ini”. En debian hay uno para el apache y otro para el cli:

include=pdo_pgsql.so

Acordate de reiniciar el apache una vez que guardes los cambios.

Saludos, Esteban.

Hola Esteban

Gracias por la respuesta. Anduvo, pero es medio raro porque en ningun lado aparece la libreria pdo_pgsql.so, je.
Re-compilé el php agregandole --with-pdo-pgsql, porque si me ponia a instalar la librería via rpm, termino en el infierno de las dependencias.

La base toba la creó bien, dando OK todos los pasos, aunque indica al inicio que no encuentra la librería, obviamente. El phpinfo() ahora muestra esa libreria en el PDO

Ahora el tema (si no hay problema con lo anterior) es referido a permisos, aunque antes de cambiar los permisos, te pregunto.
Fijate en el screenshot que te adjunto.

Saludos y gracias

Javier


Hola Javier,

Este problema que tenes es por que el logger de Toba no tiene permisos sobre las carpetas necesarias. Esto se puede resolver con el comando “chown”. La idea es que el usuario del webserver sea propietario de una serie de carpetas. Como es bastante engorroso, los chicos de toba desarrollaron un comando que te simplifica la tarea. El comando a ejecutar es:

toba_pilaga.sh instalacion cambiar_permisos

Es necesario que seas “root” cuando lo ejecutas. Después actualizas y listo.

Saludos, Esteban.

Esteban.

Al ejecutar es script, sale error:

chgrp: nombre de grupo invalido “www-data”

Avisame si hay que tocar algun archivo

Saludos

Hola Javier,

Al parecer en red hat no existe el grupo “www-data”. Te cuento un poco que es lo que hace el comando:

Primero busca el directorio raíz de la instalación de toba (toba_dir). Luego cambia el grupo propietario para los directorios “www”, “instalacion” y “temp” recursivamente, para después darle permiso de escritura. El usuario que necesita permisos de escritura es el que corre apache. El comando tiene un parámetro que te permite indicar el nombre del grupo, pero por default tiene puesto “www-data” que se corresponde con el usuario/grupo de todas las distribuciones basadas en Debian.

Por lo que tengo entendido, en red hat tanto el usuario como el grupo es apache, entonces podes probar con:

toba_pilaga.sh instalacion cambiar_permisos -g apache

Cualquier cosa avisame.

Saludos, Esteban.

Fenómeno Esteban:

Ya anduvo.

Todos estos comandos están en algún manual de Toba o algo? Te comento porque tal vez ustedes hicieron manuales de todo esto, y yo te pregunto obviedades, ja.

Avisame cualquier cosa

Saludos y muchas gracias!

Otra cosita, (perdón por el doble post).

A los proyectos toba_instancia y toba_editor les corro el comando cambiar_permisos también, no?

Saludos!

No hay drama, para eso estamos!

vamos por partes:

Todos estos comandos están en algún manual de Toba o algo?

Si bien quizás no hay un “documento” con todos los comandos, la gran mayoría estan detallados en la wiki de toba. Para los que no encuentres ahí, tenes la ayuda de la consola que es mas que suficiente. Por ejemplo, si quisieras saber algo sobre el comando “cambiar_permisos”, podes ejecutar:

toba_pilaga.sh instalacion

Al no pasar ningún parámetro, vas a ver por pantalla la lista con todas las opciones posibles. Dentro de ellas, la ayuda correspondiente a “cambiar_permisos”:

cambiar_permisos Cambia los permisos de la instalacion para permitir
que el usuario Apache cree directorios y pueda leer de las carpetas
navegables [-g grupo de usuario, se asume www-data]

A los proyectos toba_instancia y toba_editor les corro el comando cambiar_permisos también, no?

El comando hace eso también, creo que la ayuda del comando respondió la pregunta. =D

Saludos, Esteban.

Esteban:

Me sale el mismo error de Permiso denegado cuando accedo a toba_instancia y toba_editor.

El propietario de las carpetas de SIU-Pilaga es “undec”, porque es el usuario que tiene el “home” compartido, y ahi copiamos la carpeta con el Pilaga (no todas las maquinas tienen linux aca). Influye el propietario de las carpetas??

temp, www e instalacion tienen grupo “apache”. Los warnings ya no salen en el proyecto pilaga, pero sí en toba_editor y toba_instancia.

Saludos

Que raro!

Me podes capturar los errores, así veo donde esta tratando de escribir el apache?

Esteban, creo que lo solucioné…

El apache intentaba escribir en /instalacion/i__desarrollo/p__toba_editor/logs/sistema.log

Le puse permisos 777 a las carpetas logs de los proyectos. Y después corri de nuevo el comando instalacion cambiar_permisos

Avisame si eso es algo valido. Por lo pronto, ya no salen los warnings.

Saludos

Javier

Hola Javier,

Avisame si eso es algo valido. Por lo pronto, ya no salen los warnings.

Como explique un par de posts mas arriba:

cambia el grupo propietario para los directorios "www", "instalacion" y "temp" recursivamente, para después darle permiso de escritura

Lo que necesita hacer apache es escribir en los archivos de logs, y como estan todos dentro de la carpeta “instalacion”, tendría que alcanzar con el comando “cambiar_permisos”. Cuando das permisos con la mascara 777 estas permitiendo la ejecución, lectura y escritura para el propietario, el grupo y el resto del mundo. Esto no es lo mas conveniente, pero supongo que en una instancia de testing no es muy grave.

Te muestro un segmento de código del comando para que lo veas:

echo exec(“chgrp $grupo $toba_dir/www -R”);
echo exec(“chgrp $grupo $toba_dir/instalacion -R”); ->Cambio de grupo recursivo
echo exec(“chgrp $grupo $toba_dir/temp -R”);
echo exec(“chmod g+w $toba_dir/www -R”);
echo exec(“chmod g+w $toba_dir/instalacion -R”); ->Da permisos de escritura al grupo
echo exec(“chmod g+w $toba_dir/temp”);

Como podes ver, lo que hace es lo que estuvimos charlando mas arriba.

Saludos, Esteban.