Parece que tengo problemas para que PostgreSQL funcione en XAMPP (usando Lubuntu 14.02). Soy nuevo en el trabajo con PHP, servidores y bases de datos, pero aparece el siguiente mensaje de error.
Error fatal: llamada a la función no definida pg_escape_string() en /opt/lampp/htdocs/imageability/SkjemaDatabase.php en la línea 551
Entonces me parece que es un problema con PostgreSQL. El mismo mensaje de error aparece para pg_connect()
. Intenté algunas cosas para que PostgreSQL funcione con XAMPP, como descomentar las siguientes líneas en mi archivo php.ini
y luego reiniciar el servidor, sin éxito.
extensión=php_pdo_pgsql.dll
extensión=php_pgsql.dll
También leí que puedes intentar copiar el archivo libpq.dll
a la carpeta Apache, pero parece que no tengo este archivo en absoluto (buscado con find
). ¿Puede ser este el problema?
También intenté descargar Apache2, PHP5 y PostgreSQL por separado, pero esto no parece ayudarme, ya que en este caso solo aparece una página en blanco, sin siquiera un mensaje de error. Los archivos PHP que estoy usando están bien y funcionan para otras personas y también puedo hacer que otros archivos PHP funcionen en el servidor.
¡Agradecido por cualquier ayuda!
Respuesta1
Mi recomendación: ¡No uses XAMPP para esto! Se supone que es una forma sencilla de hacer funcionar la pila habitual de Apache, MySQL, PHP, +Python/Perl. Deja el jardín amurallado y estarás prácticamente solo...
Además: incluso sihacerPara que funcione, no hay garantía de que no se rompa la próxima vez que su sistema o el propio XAMPP. Nadie admite este caso de uso y algunos de los componentes involucrados (especialmente PHP) no están diseñados para manejar módulos no compilados para su versión específica.
Cómo configurar un entorno de desarrollador de forma nativa en Debian/Ubuntu
- Abra una ventana de Terminal (Menú→Otro→Terminal LX)
- Detenga todos los servicios XAMPP que se estén ejecutando actualmente
- Instale los paquetes requeridos:
puede usar una GUI ("Centro de software") para esto o ejecutar este comando en su Terminal:
sudo apt-get install apache2 libapache2-mod-php5 postgresql php5-pgsql
apache2
(El servidor web Apache)libapache2-mod-php5
(Soporte PHP para Apache)php5-pgsql
(Soporte de cliente PostgreSQL para PHP)postgresql
(El servidor PostgreSQL)
- Abra el archivo
/etc/php5/apache2/php.ini
en un editor de texto como root:
en la ventana Terminal escriba el comando
gksudo leafpad /etc/php5/apache2/php.ini
y presione Entrar - Localice la línea
display_errors = Off
y cámbiela adisplay_errors = On
- Guarde el archivo y cierre el editor.
- Reinicie el servidor web Apache:
ejecute el comandosudo service apache2 restart
en la ventana de su Terminal para reiniciar el servidor web y recargar su módulo PHP.