1

我有一个在 Ubuntu 12.04 上运行的 Elgg 网站,它突然开始产生白屏死机。没有对任何 PHP 文件进行任何更改,所有这些文件都在不久之前工作。这是我在 apache 中遇到的唯一错误error.log

[Thu Jul 23 09:45:49.672038 2015] [:error] [pid 6905] [client 127.0.0.1:53280] PHP Fatal error:  Call to undefined function Elgg\\mysql_connect() in /var/www/my-website/engine/classes/Elgg/Database.php on line 144

Apache2 可以加载 HTML 和 PHP 页面,我可以从命令行登录 MySQL。我已经重新启动apache2并且mysql. PHP,AFAIK,是最新版本。我已重新启动计算机并安装了最新的更新。以下测试页面在未经训练的人看来没有任何异常:

<?php
echo "Test!";
error_reporting(E_ALL);
ini_set('display_errors', TRUE);
ini_set('display_startup_errors', TRUE);

phpinfo(); 
exit(); 

?>

这篇文章让我觉得可能是更新运行并破坏了 PHP / mysql 连接,但我无法确认。简单地说,我很难过。鉴于错误是undefined function Elgg\\mysql_connect(),我认为在配置级别出现了问题,但我不知道如何修复它,也没有任何关于可能导致它的确切假设。接下来我应该尝试什么?

4

1 回答 1

1

这很可能是一个命名空间问题。PHP 假设它自己的本机 mysql api 是在Elgg\命名空间内声明的函数。因此,转到'Database.php'并在第 144 行更改:

mysql_connect();\mysql_connect();

反斜杠将\指示 php 此函数存在于Elgg\命名空间之外,或存在于全局范围内。

您可能会遇到必须使用上述相同方法解决的类似问题。

于 2015-07-23T16:12:42.360 回答