@sergey_privacy
Админ со стажем, начинающий DevOps

Как победить modx revo на php7?

Есть у меня веб-сервер
(# uname -a FreeBSD xxx.local 11.0-RELEASE-p1 FreeBSD 11.0-RELEASE-p1 #0 r306420: Thu Sep 29 03:40:55 UTC 2016 root@releng2.nyi.freebsd.org:/usr/obj/usr/src/sys/GENERIC i386),
на котором по требованиям должен стоять php именно 7-й версии. И должен крутиться последний ModX Revolution. После успешной установки движка запрашивает пароль на вход в админку. Но после авторизации - пустая страница в Firefox или ошибка 500 в Chrome. Включил вывод ошибок в странице:
Fatal error: Uncaught Error: Call to a member function get() on null in /usr/local/www/apache24/data/core/model/modx/processors/security/login.class.php:134 Stack trace: #0 /usr/local/www/apache24/data/core/model/modx/processors/security/login.class.php(209): modSecurityLoginProcessor->checkIsBlocked() #1 /usr/local/www/apache24/data/core/model/modx/processors/security/login.class.php(383): modSecurityLoginProcessor->beforeLogin() #2 /usr/local/www/apache24/data/core/model/modx/modprocessor.class.php(173): modSecurityLoginProcessor->process() #3 /usr/local/www/apache24/data/core/model/modx/modx.class.php(1706): modProcessor->run() #4 /usr/local/www/apache24/data/manager/controllers/default/security/login.class.php(189): modX->runProcessor('security/login', Array) #5 /usr/local/www/apache24/data/manager/controllers/default/security/login.class.php(157): SecurityLoginManagerController->handleLogin() #6 /usr/local/www/apache24/data/manager/controllers/default/security/login.class.php(40): SecurityLoginManagerController->hand in /usr/local/www/apache24/data/core/model/modx/processors/security/login.class.php on line 134


Полез смотреть логи самого ModX-а:
cat error.log
[2017-08-15 18:34:41] (ERROR @ /usr/local/www/apache24/data/core/model/modx/modx.class.php : 1708) Processor core/config/config.inc.phpsystem/registry/register/read.php does not exist; Array
(
)

[2017-08-15 18:36:22] (ERROR @ /usr/local/www/apache24/data/core/model/modx/modmanagerresponse.class.php : 190) PHP warning: Parameter 1 to modManagerController::getInstance() expected to be a reference, value given

По советам в интернете полез править файл /usr/local/www/apache24/data/core/model/modx/modmanagerresponse.class.php, но там уже стоял символ "&" там, где и должен быть по инструкциям. Подставлял по тем же инструкциям разные процессоры, пробовал чистить папку кэшей - результата нет. Что еще попробовать?
  • Вопрос задан
  • 4038 просмотров
Пригласить эксперта
Ответы на вопрос 3
inblank
@inblank
Full Stack Web Developer
Смотрите кодировку базу данных.
Если, у mysql базы данных выставлена кодировка latin1, которая часто ставится по умолчанию, а вы при установке modx выбрали utf8, то при создании нового пользователя modx не сможет вставить русский текст, запишет ошибку в лог и молча(без сообщения в web интерфейс) завершит установку.
Ну а при попытке входа будет PHP Fatal Error.
Смените на базе кодировку:
alter database <databasename> character set=utf8;
И повторите установку.
Ответ написан
Комментировать
@Froggyweb
Модкс начиная с версии 2.5 отлично работает на php7. Смотри настройки сервера и права на папки файлы
Ответ написан
Попробуй открыть админку вот так: site.ru/manager/?a=security/profile. Если работает, то убери в настройках уведомления безопасности RSS-канал че-то такое.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы