为什么我的 php 文件无法在 Apache2 服务器上运行?

为什么我的 php 文件无法在 Apache2 服务器上运行?

我正在尝试在 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 服务正在运行吗?

相关内容