Кажется, у меня возникли проблемы с работой PostgreSQL на XAMPP (используя Lubuntu 14.02). Я новичок в работе с PHP, серверами и базами данных, но получаю следующее сообщение об ошибке.
Фатальная ошибка: вызов неопределенной функции pg_escape_string() в /opt/lampp/htdocs/imageability/SkjemaDatabase.php в строке 551
Так что мне кажется, что проблема в PostgreSQL. Такое же сообщение об ошибке появляется для pg_connect()
. Я пробовал несколько вещей, чтобы заставить PostgreSQL работать с XAMPP, например, раскомментировал следующие строки в моем файле php.ini
и перезапустил сервер, но безуспешно.
расширение=php_pdo_pgsql.dll
расширение=php_pgsql.dll
Я также читал, что можно попробовать скопировать файл libpq.dll
в папку Apache, но у меня, похоже, вообще нет этого файла (поиск с помощью find
). Может ли это быть проблемой?
Я также пробовал загружать Apache2, PHP5 и PostgreSQL по отдельности, но это, похоже, мне не помогает, так как в этом случае я получаю просто пустую страницу, даже без сообщения об ошибке. Файлы PHP, которые я использую, в порядке и работают у других людей, и я также могу заставить работать другие файлы PHP на сервере.
Буду благодарен за любую помощь!
решение1
Моя рекомендация: не используйте XAMPP для этого! Предполагается, что это простой способ заставить работать обычный стек Apache, MySQL, PHP, +Python/Perl. Оставьте огороженный сад, и вы будете предоставлены сами себе…
Также: Даже если выделатьзаставить его работать, нет гарантии, что он не сломается в следующий раз, когда ваша система или сам XAMPP. Этот вариант использования никем не поддерживается, и некоторые из задействованных компонентов (особенно PHP) не предназначены для обработки модулей, не скомпилированных для их конкретной версии.
Как настроить среду разработки нативно в Debian/Ubuntu
- Откройте окно терминала (Меню→Другой→LXТерминал)
- Остановить все запущенные службы XAMPP
- Установите необходимые пакеты.
Для этого вы можете использовать графический интерфейс («Центр программного обеспечения») или выполнить следующую команду на своем терминале:
sudo apt-get install apache2 libapache2-mod-php5 postgresql php5-pgsql
apache2
(Веб-сервер Apache)libapache2-mod-php5
(Поддержка PHP для Apache)php5-pgsql
(Поддержка клиента PostgreSQL для PHP)postgresql
(Сервер PostgreSQL)
- Откройте файл
/etc/php5/apache2/php.ini
в текстовом редакторе как root:
в окне терминала введите команду
gksudo leafpad /etc/php5/apache2/php.ini
и нажмите Enter. - Найдите строку
display_errors = Off
и измените ее наdisplay_errors = On
- Сохраните файл и закройте редактор.
- Перезапустите веб-сервер Apache:
выполните командуsudo service apache2 restart
в окне терминала, чтобы перезапустить веб-сервер и перезагрузить его PHP-модуль.