Решение проблемы «пустой админки» MODX Revo

в 18:17, , рубрики: cache, eaccelerator, modx, revolution, метки: , ,

При установке MODX Revolution у многих возникает проблема с тем, что при заходе в админку не загружается основное содержимое (правый блок).

Такое поведение — следствие работы работы модуля Suhosin и/или eAccelerator.

Под катом решения.

Проблема состоит в том, что по-умолчанию в админке MODX Revo используется кеширование JS и CSS файлов с помощью Minify. Одно из решений «в лоб», которое много где рекомендуют «если остальное не сработало», отключение кеширования. На всякий случай, расскажу как это делается:

Открываем файл /core/cache/system_settings/config.cache.php
строку ‘compress_js’ => ’1′, меняем на ’compress_js’ => ’0′,
строку ‘compress_css’ => ’1′, меняем на ’compress_css’ => ’0′,

затем, когда админка загрузиться, идём в Система->Настройки и в поиск вводим compress, будет выведено несколько пунктов, нам нужно у compress_js и compress_css установить значения Нет.

Решение рабочее, вот только таким образом мы тормозим админку загрузкой 100500 скриптов и стилей, а нам хотелось бы чтобы админка работала побыстрее.

Рассмотрим более лучшие правильные решения.

Решение проблемы с Suhosin.

Чаще всего, решить проблему с Suhosin удается путём указания в php-конфиге suhosin.ini значение переменной suhosin.get.max_value_length равной 4096:
suhosin.get.max_value_length = 4096

Или, если настройки сервера позволяют, то прописать в /manager/.htaccess такую строчку:
php_value suhosin.get.max_value_length 4096

Хотя эта настройка и прописана в скрипте minify, но может и не сработать, если у вас запрещено менять такую настройку из PHP скрипта.

Если всё хорошо и кеширование заработало, то дальше можно не читать.

Решение проблемы с eAccelerator.

У меня на сервере работает связка apache+nginx+php с eAccelerator'ом. По неизвестной причине, кеширование скриптов срабатывало через раз. Опытным путём было выяснено, что проблема из-за eAccelerator'а. Гугление толковых советов не дало, отключать eAccelerator совсем не вариант, отключать кеширование скриптов тоже не вариант.

Решение простое.
Открываем файл /manager/min/index.php и в самый верх (после <?php разумеется) пишем:
@ini_set('eaccelerator.enable', 0);
тем самым отключив eAccelerator для этого скрипта.
Разумеется, чтобы это сработало, у вас должна работать возможность изменения настроек из PHP-скриптов.

Как вариант, если настройки сервера позволяют, можно прописать в файл /manager/min/.htaccess такую строчку:
php_value eaccelerator.enable 0

После проделанных манипуляций кеширование скриптов и стилей работает, админка работает шустрее!

Автор: hostadmin

* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js