Белый экран Elgg: неопределенная функция Elgg\\mysql_connect()

У меня есть веб-сайт Elgg, работающий на Ubuntu 12.04, который внезапно начал создавать белый экран смерти. Никакие изменения не были внесены ни в какие файлы PHP, все они работали всего несколько минут назад. Это единственная ошибка, которую я получаю в апаче 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(), я предполагаю, что что-то пошло не так на уровне конфигурации, но я понятия не имею, как это исправить, и никаких твердых гипотез относительно того, что могло ее вызвать. Что мне попробовать дальше?


person Dylan Knowles    schedule 23.07.2015    source источник


Ответы (1)


Скорее всего, это проблема с пространством имен. PHP предполагает, что его собственный API-интерфейс mysql является функцией, объявленной внутри пространства имен Elgg\. Итак, переходим к 'Database.php' и в строке 144 меняем:

mysql_connect(); to \mysql_connect();

Обратная косая черта \ указывает php, что эта функция существует за пределами пространства имен Elgg\ или в глобальной области видимости.

Вы, вероятно, столкнетесь с похожими проблемами, которые необходимо решить, используя тот же метод, который описан выше.

person samayo    schedule 23.07.2015
comment
Проблема решилась еще одним перезапуском, но, поскольку это звучит правдоподобно, я отмечу это как ответ. Спасибо за ваш отзыв! - person Dylan Knowles; 23.07.2015