I seem to have trouble getting PostgreSQL to work on XAMPP (using Lubuntu 14.02). I am new to working with both PHP, servers and databases, but I get the following error message.

Fatal error: Call to undefined function pg_escape_string() in /opt/lampp/htdocs/imageability/SkjemaDatabase.php on line 551

So it seems to me to be a problem with PostgreSQL. The same error message shows up for pg_connect(). I have tried a few things to get PostgreSQL to work with XAMPP, like uncommenting the following lines in my file php.ini and then restarting the server, without success.



I have also read you can try to copy the file libpq.dll to Apache folder, but I don't seem to have this file at all (searched with find). Can this be the problem?

I have also tried downloading Apache2, PHP5 and PostgreSQL seperately, but this doesn't seem to help me, as I in this case just get a blank page, without an error message even. The PHP files I am using are fine and working for other people and I can also get other PHP files to work on the server.

Grateful for any help!


My recommendation: Don't use XAMPP for this! It's supposed to be a simple way to get the usual Apache, MySQL, PHP, +Python/Perl stack to work. Leave the walled garden and your pretty much on your own…

Also: Even if you do get it to work there is no guarantee that it won't break the next time your system or XAMPP itself. This use-case is not supported by anybody and some of the components involved (especially PHP) aren't designed to handle modules not compiled for their specific version.

How to set up a developer environment natively on Debian/Ubuntu

  1. Open a Terminal window (MenuOtherLXTerminal)
  2. Stop all XAMPP services currently running
  3. Install the required packages:
    You may either use a GUI ("Software Center") for this or run this command on your Terminal:
    sudo apt-get install apache2 libapache2-mod-php5 postgresql php5-pgsql
    • apache2 (The Apache web server)
    • libapache2-mod-php5 (PHP support for Apache)
    • php5-pgsql (PostgreSQL client support for PHP)
    • postgresql (The PostgreSQL server)
  4. Open the file /etc/php5/apache2/php.ini in a text editor as root:
    In the Terminal window type the command
    gksudo leafpad /etc/php5/apache2/php.ini and press enter
  5. Locate the line display_errors = Off and change it to display_errors = On
    Screenshot of the display_errors line and documentation
  6. Save the file and close the editor
  7. Restart the Apache web server:
    Run the command sudo service apache2 restart in your Terminal window to restart the web server and reload its PHP module
  • Don't forget to upvote and mark as accepted answer if this helped you! Do ask for clarification if something doesn't make sense to you! – ntninja Jul 4 '15 at 12:17
  • Wow, thanks a lot! The error display was just what I needed! Turned out it wasn't PostgreSQL that was the problem when using Apache2 + PostgreSQL (although it was in XAMPP), but I would never have worked it out without error messages. Now there are just minor (hopefully) things I need to see to before I can get everything up and running, like getting my PostgreSQL server hosted somewhere. Thanks again! – Ingrid Jul 4 '15 at 21:16

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.