Bueno, me uno a Gilberto en decirte que he usado desde hace tiempo
CentOS 5 y 6 desde hace rato con PostgreSQL y no he tenido ningún
problema hasta este instante.
Ahora:
1- Debes usar los repositorios más actualizados de PostgreSQL para
CentOS. Si mal no recuerdo es yum.pgsql.org
2- Para guias muy buenas de CenTOS, Fedora y RHEL, puedes llegarte por
acá: http://www.if-not-true-then-false.com
En este sitio está explicado como tener la última versión de PHP en
CentOS 5 y 6.
Para el manejo de archivos y todos los servicios en CentOS, puedes
buscar el manual de Joel Barrios en http://www.alcancelibre.org, el cual
explica muchos servicios entre ellos Apache 2.
Para que te actualize la última versión del libphp5-pgsql, usa el
repositorio que te di más adelante.
On 06/14/2012 08:42 AM, Guillermo Villanueva wrote:
Buenos días amigos, veamos si pueden darme una manito.
Finalmente contraté un VPS de dattatec para levantar una aplicación de
un cliente y me di con varios inconvenientes que se los comento.
El sistema operativo que brindan es un centos 5 y yo venía
acostumbrado al ubuntu server. Me está costando mucho acostumbrarme.
El apache está configurado para el uso de múltiples dominios. No saben
lo que me está costando encontrar archivos de configuración!!
Había un postgres 8.1 instalado, pude instalar la versión 9.1.4 y está
corriendo sin problemas.
El tema es que si ejecuto un phpinfo() en la parte de postgres muestra:
*pdo_pgsql*
PDO Driver for PostgreSQL enabled
PostgreSQL(libpq) Version 8.1.23
Module version 1.0.2
Revision $Id: pdo_pgsql.c 321634 2012-01-01 13:15:04Z felipe $
*pgsql*
PostgreSQL Support enabled
PostgreSQL(libpq) Version 8.1.23
Multibyte character support enabled
SSL support enabled
Active Persistent Links 0
Active Links 0
pgsql.allow_persistent On On
pgsql.auto_reset_persistent Off Off
pgsql.ignore_notice Off Off
pgsql.log_noticeOff Off
pgsql.max_links Unlimited Unlimited
pgsql.max_persistent Unlimited Unlimited
No debería mostrarme PostgreSQL(libpq) Version 9xx?. Funcionaban bien
la mayoría de los accesos desde php a postgres hasta que probé la
parte de bytea, hay un módulo que muestra una foto que tengo en un
campo bytea y no está funcionando, no muestra nada, pero cuando corro
exactamente lo mismo en mi server local , funciona perfectamente.
Otro problema que tengo con respecto al php y postgres es que no está
registrando los errores de acceso a la base o no los estoy encontrando
donde debe ser. Si tienen un tiempito les pido entonces:
1) Cómo hacer que php utilice las librerías correctas? (o son
correctas las que está usando para un motor 9.1?)
1- Agrega el repo que te dice en el sitio
http://www.if-not-true-then-false.com para PHP-5.3:
2- Actualiza la libreria:
yum update php5-pgsql
2) Qué puede estar pasando que no muestra la foto? (adjunto el código
php al final del mensaje)
¿Cómo estás enviando la imagen a la base de datos? ¿en bytea?
Esto debes valorarlo porque si almacenarás una gran cantidad de imágenes
en la base de datos, esto puede hacer crecer bastante la base de datos,
y a la hora del mantenimiento de la misma, se hace bastante trabajoso.
Yo trabajé en un sistema parecido con una gran cantidad de imágenes
(pensado para más de 12 millones de imágenes), y lo que hicimos fue usar
un sistema externo para el almacenamiento de las imágenes (usando
VsFTPD, Nginx(como Load balancer y Servidor HTTP), ImageMagick y
Python), y lo que almacenábamos en la base de datos era la dirección
HTTP de la imagen.
3) Qué puede estar pasando que no hay log de errores de php al no
poder acceder a la base? (ahora ya puedo , pero cuando lo estaba
intentando, en ningún lado había un log de php y/o apache que muestre
el problema)
Lo que puede estar pasando es que debes estar usando las librerías
viejas de PHP (para 8.1) y lo que tienes es 9.1. Actualiza la versión y
luego prueba de nuevo.
Otra cosita:
¿Por qué no usas un framework o algo por el estilo para PHP?
Symfony 1 o 2
CodeIgniter
Zend Framework, etc
Hay muchas buenas librerías que te permitirían desarrollar esa
aplicación en muy poco tiempo, y te daría más flexibilidad, seguridad,
gestión de roles, escalabilidad, etc.
Esto por supuesto, es a tu consideración.
Saludos
<?php
//Guillermo Villanueva
//Mod: 11/06/2012 19:00
session_start();
include_once("classconexion.php");
$conn = Db::getInstance();
$sql = "SELECT pos_foto FROM postulantes WHERE
pos_email='$_SESSION[email]'";
$result = pg_query($conn, $sql);
if (!$result) {
echo "Sin foto";
}
if (pg_num_rows($result)>0){
header("Content-Type: image/jpeg");
$imagen = pg_unescape_bytea(pg_fetch_result($result,0,0));
echo("$imagen");
} else {
echo "Sin foto";
}
pg_free_result($result);
?>
Desde ya muchas gracias por la ayuda que me puedan brindar.
Saludos.
Guillermo Villanueva
10mo. ANIVERSARIO DE LA CREACION DE LA UNIVERSIDAD DE LAS CIENCIAS
INFORMATICAS...
CONECTADOS AL FUTURO, CONECTADOS A LA REVOLUCION
http://www.uci.cu
http://www.facebook.com/universidad.uci
http://www.flickr.com/photos/universidad_uci