2010-05-14 14 views
8

Se me ha encomendado la tarea de crear una aplicación PHP que acceda a una base de datos PostgreSQL existente. Esta es la primera vez que trabajo con Postgre, sin mencionar que PHP ya se ha instalado en el cuadro de Linux en el que se supone que se debe ejecutar la aplicación. No tengo experiencia en configurar esto, solo codigo.pgsql.so no está cargado en PHP

Mi pregunta es que parece que la extensión de Postgre no funciona en PHP. Revisé el archivo php.ini, no había líneas "extension = ...". Entonces agregué "extension = pgsql.so". Luego revisé el "extension_dir" y encontré que solo había 2 archivos allí (ldap.so, phpcups.so), agregué un archivo pgsql.so tomado de otra caja Linux. Reinicié httpd. Y no funciona. No pude encontrar ningún "pgsql" o "postgre" en phpinfo().

Perdona mi noobness. Sé muy poco de Linux. Realmente agradecería que me indicaras la dirección correcta.


he utilizado la sugerencia dada por Número5:

Amigo, estoy en RedHat. He utilizado el "yum" versión de la orden que le dio, y me dio esto:

[root @ Perseo ~] # yum install php-pgsql Cargando "installonlyn" plug-in Configuración Proceso de Instalación Configuración de repositorios no se pudo recuperar de error de servidores réplica http://mirrorlist.centos.org/?release=5&arch=x86_64&repo=extras era [Errno 4] IOError: error: no se puede encontrar un baseurl válida para repo: extras


Desafortunadamente, el servidor Linux que estoy utilizando no está conectado a Internet. ¿Alguna otra forma de instalar?

+1

que se parece a una pregunta para ServerFault. –

+0

espero que ya haya resuelto su problema. Si no, puede descargar los rpms necesarios e instalar usando el comando rpm. wget http://mirrors.gigenet.com/centos/5.4/os/x86_64/CentOS/php-pdo-5.1.6-23.2.el5_3.x86_64.rpm wget http://mirrors.gigenet.com/ centos/5.4/os/x86_64/CentOS/php-pgsql-5.1.6-23.2.el5_3.x86_64.rpm rpm -ivh * .rpm si le dice que faltan algunos datos, puede encontrarlo aquí http : //mirrors.gigenet.com/centos/5.4/os/x86_64/CentOS/ el enlace de descarga supone que su CentOS es 5.4 x86_64 – number5

+0

gracias number5, super! – Obay

Respuesta

9

Depende de la distribución de Linux que esté utilizando.

Si está utilizando Ubuntu/Debian, es necesario:

sudo apt-get install php5-pgsql 

Fedora/CentOS

yum install php-pgsql 

por lo general se puede averiguar qué distro que está en por:

ls /etc/*-release 
+0

Dude He agregado algunos comentarios arriba – Obay

1
  • Elimina el archivo .so que has copiado de la otra máquina e (aunque podría funcionar, no hay necesidad de correr el riesgo)
  • Utilice el administrador de paquetes de la distribución para instalar el módulo php_pgsql/php5_pqsql
  • Reinicie el apache y vuelva a intentarlo. Tal vez el módulo ha sido añadido a un archivo .ini automagicamente
  • Si no es así, ejecute <?php echo 'ini: ', get_cfg_var('cfg_file_path'); para ver qué php.ini tiene que editar
  • editar este archivo ini
  • reiniciar el Apache
3

En Las extensiones de CentOS crean un archivo * .ini por separado, uno por cada extensión de php en /etc/php.d

Por lo tanto, no modifique el archivo * .ini principal, pero cree /etc/php.d/pgsql.ini y añadir que hay una línea

extension=pgsql.so 

, entonces tendrá que reiniciar Apache utilizando

service httpd restart 

Pero la mejor manera automatizada es que sólo tiene que escribir

yum install php-pgsql 

En el caso de que didn' t funciona debido a algunos problemas en la configuración de yum. Ir a /etc/yum-repos.d Tipo

nano /etc/yum.repos.d/CentOS-Base.repo 

de desplazamiento hacia abajo a la sección [extras] y asegurarse de que es así:

#additional packages that may be useful 
[extras] 
priority=1 
name=CentOS-$releasever - Extras 
=extras 
#baseurl=http://mirror.centos.org/centos/$releasever/extras/$basearch/ 
gpgcheck=1 
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-5 

corregirlo si es necesario, guardar el archivo (Ctrl X) y haga lo siguiente:

yum clean all 
yum upgrade 

Posteriormente tratar de repetir

yum install php-pgsql 
+0

dice: Error de configuración: El archivo contiene errores de análisis: file: /////etc/yum.repos.d/CentOS-Base.repo [línea 41]: '= extras \ n ' – Obay

+0

¿Quién dice? ¿Cuál es tu versión de CentOS? Puede ser, ¿debería eliminar la cadena de "prioridad"? –

-1

Mi sistema operativo Linux KDE menta y había mismo problema

pg_connect()

Debe instalar si está php5.6 uso

sudo apt-get install php5.6-pgsql 

Después debe cambiar el nombre de extensión "php.ini" archivo.

;extension=php_pgsql.dll 

'DLL' a 'por lo que'

Por ejemplo

extension=php_pgsql.so 
+1

Esto parece un problema diferente. Para empezar, el OP ya tenía esa línea de configuración exactamente como está escrita. –

Cuestiones relacionadas