tutorial insertar extension example desde datos php windows postgresql

php - insertar - postgresql windows



PHP no carga php_pgsql.dll en Windows (17)

Acabo de hacer esto y funcionó bien en la carpeta php dentro de php.ini Cambié esta línea

extension=php_openssl.dll

a

extension=C:/php/ext/php_openssl.dll

php_openssl.dll está dentro de la carpeta ext que no se pudo encontrar.

PHP 5.2.8 se niega a cargar php_pgsql.dll , con el siguiente error:

Advertencia: Inicio de PHP: no se puede cargar la biblioteca dinámica ''D: / PHP / ext / php_pgsql.dll'' - No se pudo encontrar el módulo especificado.

en Desconocido en la línea 0

El .dll existe en PHP / ext /.

Alguien más ha tenido este problema con PHP en Windows antes?


Como dijo Ondřej Bouda: la configuración de las variables de entorno de Windows es suficiente. No hay copias de dlls, no hay entradas en http-conf. Simplemente agregue el directorio php (C: / xampp / php) a PATH. No olvide reiniciar XAMPP-Control-Panel si usa esto, de lo contrario no sabrá los cambios. (Y reinicie Apache de causa).

Por ejemplo, en XAMPP, fue suficiente poner el directorio PHP (es decir, C: / xampp / php) en la variable PATH del sistema. - Ondřej Bouda


Consulte la información en la página de instalación de PHP PostgreSQL: http://us.php.net/manual/en/pgsql.installation.php

En un servidor de Windows, configurado con Apache, agregar la siguiente línea a httpd.conf para cargar libpq.dll puede ahorrarle mucho tiempo:

LoadFile "C:/Program Files/PostgreSQL/8.4/bin/libpq.dll"

Tenga en cuenta que deberá cambiar su carpeta según la ruta de instalación y la versión de PostgreSQL que haya instalado. También tenga en cuenta que no se recomienda tener Apache y PostgreSQL en el mismo servidor para entornos de producción.

Esto solucionó mi configuración al instante.


Copie el archivo libpq.dll de la ubicación / bin / php / a la ubicación / bin / apache // bin. Reinicia el servidor wamp.


Debe copiar libpq.dll de wamp / bin / php / php5.3.5 a wamp / bin / apache / Apache2.2.17 / bin. De nuevo reinicie Wamp Server. Por ahora hemos terminado con la configuración de php. A continuación instalaremos phpPgAdmin y lo usaremos.


El problema es con las bibliotecas relacionadas utilizadas por php_pgsql.dll, como libpq.dll, las de OpenSLL, etc. Necesitas encontrarlas (desde la distribución zip de Postgres, desde un controlador psqlODBC instalado, etc.) y ponerlas en una carpeta que está en la RUTA. En cuanto a la lista de todas las DLL, use MS Dependency Walker (depends.exe).

Otro bit importante: Apache (si usa Apache) tiene su propio conjunto de DLL OpenSSL. Reemplace o simplemente renómbrelos para que no entren en conflicto con los de la distribución de Postgres.


Específicamente para las configuraciones del servidor WAMP aquí, debe copiar el archivo libpg.dll en "C: / wamp / bin / apache / Apache2.2.21 / bin /", o similar. Copiarlo en ... / php / ext / y también ajustar la variable de entorno PATH simplemente no fue suficiente (si es que fue efectivo).

La respuesta original se obtuvo aquí: http://www.wampserver.com/phorum/read.php?2,40270,57932

Específicamente para las configuraciones de XAMPP, descubrí que solo necesitaba copiar el archivo libpg.dll en el directorio .. / php / ext /.


Esta es una actualización de la respuesta de @Dayron Armas Peña. El php bundled pgsql ''dll'' se encuentra en la siguiente ubicación:

LoadFile "C:/wamp/bin/php/php5.4.12/libpq.dll"

Agregar la línea anterior al archivo httpd.conf además de eliminar las líneas requeridas en los archivos php.ini ha resuelto mi problema.


Esto me pasó a mí también con PHP 5.4.1

Copiar el DLL ofensivo en todas partes no funcionó, y no tengo instalado PostgreSQL en el servidor, pero también planeé usar PHP contra diferentes versiones de Postgres, así que la única solución que encontré que funcionó fue poner una línea en httpd.conf Me gusta esto:

LoadFile "C:/Program Files/PostgreSQL/8.4/bin/libpq.dll"

Pero refiriéndose a libpq.dll que viene incluido con PHP, así:

LoadFile "C:/php/libpq.dll"

Después de eso me funcionó bien.


La única vez que he visto este error (y el nombre del archivo y la ruta de acceso ext eran definitivamente correctos) fue cuando intenté usar una versión incorrecta de la DLL, es decir. Usé uno que fue compilado contra una versión diferente de PHP a la que estaba ejecutando.

Asegúrese de que su versión sea definitivamente la compilada contra PHP 5.2.8.

Editar: o, los permisos en el archivo se configuraron incorrectamente.


Me pareció que esto funcionaba para mí:

Después de la instalación de PostgreSQL, debe copiar libpq.dll desde wamp/bin/php/phpX.XX a wamp/bin/apache/Apache2.2*/bin . Y reinicie Wampserver.


Para aquellos que deseen hacer que su instalación de PHP solo sea capaz de acceder a los servidores de PostGres, sin realmente instalar PostGres, usted necesita:

  • habilite la extensión php_pgsql.dll (y php_pdo_pgsql.dll, si usa PDO) en PHP.INI,
  • asegúrese de que libpq.dll, libiconv-2.dll y libintl-8.dll están en la ruta. Estas son las dependencias php_pgsql.dll.

Estas 3 DLL se pueden encontrar en la instalación de PostGres. Simplemente los copié en apache / bin, de esa manera mantengo todo contenido. Al hacer eso, apache puede iniciar el motor de PHP muy bien, con el soporte PostGres.


Problema de LIBPQ.DLL con php en Vista ...

  • Verifique para asegurarse de que realmente tenga postgres instalado. Si instala php en Windows con postgres API, sin que se instale postgres, puede recibir esta advertencia. Es muy fácil simplemente hacer clic en todo en el instalador de Windows ...

  • Comente la línea relevante en php.ini.


Solo para compartir lo que funcionó para mí, sin tener que lidiar con libpq.dll . Descomente tanto la extension=php_pdo_pgsql.dll como la extension=php_pgsql.dll en php.ini. Al principio, apache se negó a comenzar.

Luego agrego "C:/Program Files (x86)/PostgreSQL/9.4/bin/" (según su instalación) en el entorno de Windows PATH, inicié apache exitosamente y funciona.


Solo un pensamiento: asegúrese de que los binarios de Postgres se encuentren en la ruta del SISTEMA, no en la ruta específica del usuario. Como sucede, ese era el problema en mi máquina. :-)

Editar:

Ahora que lo pienso, eso explica por qué Dependency Walker informaría todo A-OK pero el problema aún persistiría: ejecutas DW bajo tu propia cuenta, mientras que Apache se ejecuta como SISTEMA y, por lo tanto, no tendrá tu configuración de RUTA personal disponible .


Tengo la solución:

1) Si desea cargar la extensión php_pdo_pgsql, cargue también php_pdo. (en php.ini)

2) php_pgsql.dll y php_pdo_pgsql.dll dependen de libpq.dll y php5ts.dll. libpg.dll es la biblioteca de postgreSQL, pero se ha incluido en el paquete binario de PHP. Al configurar PHP para que funcione como un módulo con Apache, no puede cargar correctamente la biblioteca dependiente. Y entonces necesitas cargarlo en Apache.

config en httpd.conf y las dos líneas deben estar antes de LoadModule php5_module

LoadFile "Ruta completa a /php5gs.dll" LoadFile "ruta completa a libpg.dll"

Espero que sea útil.


Tienes que agregar las siguientes líneas a tu archivo httpd.conf:

PHPIniDir "c:/PHP/" Loadfile "C:/php/php5ts.dll" Loadfile "C:/php/libpq.dll" LoadModule php5_module "c:/PHP/php5apache2_2.dll"

Fuente: