我正在尝试在 Apache 服务器上运行一项调查(PHP 文件)。我首先尝试使用 XAMPP,但随后收到以下错误消息:
Fatal error: Call to undefined function pg_escape_string() in /opt/lampp/htdocs/imageability/SkjemaDatabase.php on line 551
我尝试了各种解决方案,让 PostgreSQL 与 XAMPP 协同工作,但似乎都不起作用。所以我现在决定尝试分别安装 PHP5、Apache2、PostgreSQL(和 MYSQL)。我遵循这些安装说明,我以为这次我肯定会安装并运行 PostgreSQL。但是,当我尝试在 Firefox 中查看调查时,它并没有运行,也没有再次显示相同的错误消息,而是给我一个空白页。顺便说一下,我正在运行 Lubuntu 14.02。
服务器上还有一些其他 PHP 文件可以正常工作。这是否仍然是 PostgreSQL 无法正常工作的原因?在试用 XAMPP 时,我尝试取消注释 php.ini 文件中的以下几行
extension=php_pdo_pgsql.dll
extension=php_pgsql.dll
但是现在(单独安装各种软件)我实际上根本无法在/etc/php5/apache2/php.ini
或中找到这些行/etc/php5/cli/php.ini
,但我不确定要在哪个文件中查找。
我还阅读了建议(在 XAMPP 与 PostgreSQL 出现问题期间)将文件libpq.dll
从复制c:/xampp/php/
到/xampp/apache/bin/
,但我似乎没有这个文件,现在仍然没有。
以下是关于可能存在错误的一些其他想法,但也许上述内容更合理?
在此过程中我遇到的另一个问题是,在按照上面链接中的最后说明操作时,我犯了一个错误,即创建了一个带密码的超级用户并切换到 postgres 用户。此后我无法打开 Pgadmin3,因此我切换回了普通用户,然后至少成功了。我现在的错误是否与仍然拥有这个超级用户有关?或者我必须在 Pgadmin3 中执行某些操作才能使我的调查在服务器上运行?(即我现在还没有在 Pgadmin3 中执行任何操作,只是安装了上述软件并将我的文件放入/var/www/htlm/
。)
非常感谢您的帮助!
答案1
好的,我现在发现主要问题是我没有收到任何错误消息。
要解决此问题,请/etc/php5/apache2/php.ini
以 root 身份在文本编辑器中打开该文件。(在终端窗口中,键入命令sudo emacs /etc/php5/apache2/php.ini
并按 Enter)。找到以下行
display_errors = Off
并将其更改为
display_errors = On`
这让我明白了,当单独安装 Apache2 时(而不是使用 XAMPP 时),PostgreSQL 没有任何问题。请参阅这个答案另外,有关如何在 Debian/Ubuntu 上设置开发环境的更多详细信息,以避免使用 XAMPP(如果您希望避免它)。
答案2
你试过在你的 ubuntu 上安装 php5 吗?
sudo apt-get install php5
然后重新配置 apache2 配置文件。
你的 php 服务正在运行吗?