23 нояб. 2015 г., 8:24
Ошибка "Problem getting service shopModx" при переходе с главной страницы
Всем добрый день. Думаю, начать стоит с установки. Я скачал последнюю версию modx, затем поверх них записал файлы shopmodx, залил дамп бд из shopmodxbox в мою бд, поправил конфигурационные файлы(в корне, в manager, connectors, core/config), запустил setup, установилось успешно. Когда я перехожу на сайт, на главной странице всё ОК, но на всех остальных страницах выдаёт «Добро пожаловать в OpenServer. Он работает», а в core/cache/logs/error.log пишет ошибки типа:
[2015-11-23 10:48:51] (ERROR @ /decoll/index.php) Could not load class: Basket from basket.
[2015-11-23 10:48:51] (ERROR @ /decoll/index.php) Problem getting service basket, instance of class Basket, from path C:/OpenServer/domains/localhost/decoll/core/components/basket/model/
[2015-11-23 10:48:51] (ERROR @ /decoll/index.php) Could not load class: modHybridAuth from modhybridauth.
[2015-11-23 10:48:51] (ERROR @ /decoll/index.php) Problem getting service modHybridAuth, instance of class modHybridAuth, from path C:/OpenServer/domains/localhost/decoll/core/components/modhybridauth/model/
[2015-11-23 10:48:51] (ERROR @ /decoll/index.php) Could not load class: modxsite from modxsite.
[2015-11-23 10:48:51] (ERROR @ /decoll/index.php) Problem getting service modxsite, instance of class modxsite, from path C:/OpenServer/domains/localhost/decoll/core/components/modxsite/model/
[2015-11-23 10:48:51] (ERROR @ /decoll/index.php) Could not load class: shopModx from shopmodx.
[2015-11-23 10:48:51] (ERROR @ /decoll/index.php) Problem getting service shopModx, instance of class shopModx, from path C:/OpenServer/domains/localhost/decoll/core/components/shopmodx/model/
В всех файлах config.core.php путь к ядру прописан правильно. В config.inc настройки сервера проставлены правильно, пути до processors, manager и т.д. — тоже правильно
Может, я криво установил? В чём может быть причина?
Добрый день.
OpenServer, как и денвер, лучше не юзать в принципе, хотя бы потому, что в винде есть ограничения на длину пути файлов. Но у вас скорее всего другое. Во-первых, переименуйте ht.access в .htaccess, у вас просто видимо 404-ая. А касаемо логов, это бага MODX-а. Патчиться пока придется вручную github.com/modxcms/revolution/pull/12359/files
htaccess у меня без точки, пропатчил, то же самое
Вот потому у вас и не работает. Вам же винда не дает его переименовать в .htaccess с точкой, верно? *Обидно, да?*. Подсказываю: переименуйте его в админке MODX-а через управление файлами.
Нет, htaccess у меня с точкой в начале, как надо, неправильно выразился:)
пропатчил, то же самое
Плохо пропатчили. Там дифф, то есть разница. Красной строчки не должно быть в итоговом файле, то есть $this->getService($package['service_name'],$package['service_class'],$package['path']);
В итоге в modx.class.php должно быть так:
if (!empty($package['service_name']) && !empty($package['service_class'])) { $packagePath = str_replace('//','/',$package['path'].$package['name'].'/'); $this->getService($package['service_name'],$package['service_class'],$packagePath); }
Проверил, пропатчил как надо. Красную убрал, зелёные добавил
Тогда вероятен как раз самый неприятный сценарий: что из-за длины файлов у вас не подгружаются нужные файлы. Попробуйте в админке в консоли выполнить
print (int)!empty($modx->getService('modxsite'));
print (int)!empty($modx->newObject('Order'));
Должно быть две единички, тогда с подгрузкой классов ОК (хотя и не будет гарантировать подгрузку процессоров, к коим путь гораздо длиннее ).
Тогда OpenServer фтопку)) Больше ничего посоветовать не могу. На нормальном сервере все воркает.