Часто задаваемые вопросы
В данной статье собраны возможные ошибки, которые могут возникнуть при установке ImageCMS (или проявиться сразу же, после запуска сайта), вне зависимости от редакции (Shop или Corporate), сборки (для ImageCMS Shop) или версии.
Ошибка записи файла config.php - при установке.
В некоторых случаях хостинг не позволяет системе автоматически провести корректную инсталяцию в силу своих специфических настроек.
В таком случае, советуем провести инсталяцию в ручную, но еще необходимо закоментировать файл \application\modules\install\install.php и/или сначала попробовать прописать рекурсивно права 777 на корневу папку сайта и 755 на index.php и .htaccess в корневой папке.
Ошибка The URI you submitted...
В файле application\config\config.php необходимо заменить значение параметра $config['permitted_uri_chars'] на 'a-z 0-9~%\.:_\-?=&';
Утрачен доступ в админпанель
Если утрачен доступ в админпанель и воспользоваться стандартным восстановлением пароля через email не получается, необходимо зайти на ваш сайт и зарегистрировать обычного пользователя.
Затем зайти через PHPMyAdmin в свою базу данных и в колонке users в графе role ID присвоить вновь созданному пользователю приоритет "1".
После того, как зашли в админпанель сайта по доступам, созданным для нового пользователя, старого администратора можно удалить.
Ошибка "...webmaster_email"
Иногда, после правок в “Глобальных настройки” → “Информация о сайте” сайт не открывается, а появляеться ошибка "...webmaster_email"
Для решения проблемы, необхоимо в файле \application\config\auth.php на 17-18 строках убрать лишний знак ' и на сервере убрать возможность записи в данный файл (CHMOD 444).
Ошибка TinyMCE после обновления до 4.8:
В файле .htaccess в строку RewriteCond $1 ....
вставить после user_guide|uploads/. |application/third_party/(tinymce|filemanager)
Если сайт или админпанель не отображает русский (украинский) язык (выводится по английски или спец.символами):
Обратитесь к хостеру с вопросом установлена ли на хостинге русская (украинская) локализация.
Проверьте , выставлена ли кодировка сайта и базы данных UTF-8.
На версиях системы ниже 4.10 к работе админпанели магазина только по-английски могла привести установка php 5.5 вместо требуемого php 5.4 (необходимо выбрать именно 5.4).
Если да - попробуйте заново загрузить файлы на сервер в бинарном режиме передачи. Проверьте, чтоб все файлы были переданы корректно.
ERR_EMPTY_RESPONSE
Ошибка ERR_EMPTY_RESPONSE - как правило вызвана проблемами с кэшем браузера или с куками (т.е. сайт работает, но у вас не отображаеться) и как правило возникает у пользователей Google Chrome.
Failed to load resource: the server responded with a status of 500
Конфигурация файла htaccess скорее всего не совпадает с требованиями хостинга. Ниже указаны несколько вариантов файла .htaccess
Наиболее частые конфигурации файлов .htaccess для ImageCMS:
- Файл .htaccess по умолчанию
- Вариант #1 (рекомендуемый для нашего хостинга, для системы ImageCMS от 4.10)
- Вариант #2 (рекомендуемый для хостинга Ukraine)
- Вариант #3
- Вариант #4
- Вариант #5
- Вариант #6
Если ни один вариант не будет работать - попробуйте на 4-й строке добавить Options +FollowSymLinks
Ошибка 500
Ошибка 500 - ошибка сервера.
Иногда может возникать на некоторых хостингах , если в /www/application/logs/ лежит файл лога propel.log. Cервер не может корректно обработать этот файл потому и возникает ошибка. Его нужно удалить
Init error после установки
Проверьте корректность прописанных доступов к БД в файле...
- Для версий от 4.8.1 и выше - \application\config\database.php
- Для версий до 4.7 включительно - \application\config\config.php
Как сменить пароль доступа к admin:
Нужно, авторизировавшись в админпанели сайта, кликнуть по пиктограмме пользователя и выбрать пункт "Личные данные".
Далее на странице "Редактирование пользователя" можно вписать новый пароль.
Ошибка Fatal error: Call to undefined function sem_get()....
Фильтр в категории дает ошибку: Fatal error: Call to undefined function sem_get() in /home/user1630/public_html/application/third_party/nqxcode/phpmorphy/src/phpMorphy/Semaphore/Nix.php on line 29
В файле /application/modules/CMSFactory/MetaManipulator/MetaManipulator.php на 160-й строке (по умолчанию) нужно оставить только:
'storage' => PHPMORPHY_STORAGE_MEM
Хлебные крошки-неверный порядок:
В файле /application/modules/shop/models2/generated-classes/SCategory.php в функции buildCategoryPath
, рядок 144 (return $result;)
заменить на:
$goodArrayTemp = array();
foreach ($result as $value) {
$goodArrayTemp[$value->getId()] = $value;
}
$goodArray = array();
foreach ($ids as $key => $value) {
$goodArray[$key] = $goodArrayTemp[$value];
}
return $goodArray;
Smart filter - проблемма после обновления до версии 4.9:
Некорректная работа Smart filter settings связана с тем, что Ваш шаблон не обновился автоматически (и не должен был).
Надо обновить его вручную:
Заменяем содержимое файла (или создаем при отсутствии оного /application/modules/smart_filter/assets/js/physical_pages.js
на следующее:
function log(arg) {
console.log(arg);
}
var PhysicalFilter = {
brandsUrl: '',
propertiesUrl: '',
baseUrl: '',
manyPhysicalURL: false,
brands: {},
properties: {},
useMultiSegmentsURL: function () {
this.manyPhysicalURL = true;
return this;
},
init: function (formObj) {
this.brands = $(formObj).find('input[name="brand[]"]:checked');
log(this.brands.length);
this.properties = $(formObj).find('input[name^="p["]:checked');
log(this.properties.length);
},
formBrandsUrl: function (formObj) {
if (this.brands.length > 1 && !this.manyPhysicalURL) {
return false;
}
if ((this.brands.length && this.properties.length) && !this.manyPhysicalURL) {
return false;
}
$(this.brands).each(function () {
if (PhysicalFilter.brandsUrl) {
PhysicalFilter.brandsUrl += ';'
}
PhysicalFilter.brandsUrl += 'brand-' + $(this).data('url');
$(this).removeAttr('checked');
});
},
formPropertiesUrl: function (formObj) {
if (this.properties.length > 1 && !this.manyPhysicalURL) {
return false;
}
if ((this.brands.length && this.properties.length) && !this.manyPhysicalURL) {
return false;
}
$(this.properties).each(function () {
if (PhysicalFilter.propertiesUrl) {
PhysicalFilter.propertiesUrl += ';'
}
PhysicalFilter.propertiesUrl += 'property-' + $(this).data('physical');
$(this).removeAttr('checked');
});
},
clearUrl: function () {
this.baseUrl = location.pathname;
var cutToProperty = null;
var cutToBrand = null;
var cutTo = null;
cutToProperty = this.baseUrl.indexOf('/property-');
cutToBrand = this.baseUrl.indexOf('/brand-');
cutTo = Math.min(cutToProperty, cutToBrand);
cutTo = cutTo === -1 ? Math.max(cutToProperty, cutToBrand) : this.baseUrl.length;
if (cutTo !== -1) {
this.baseUrl = this.baseUrl.substring(0, cutTo);
}
},
getUrl: function (formObj) {
this.init(formObj);
this.formBrandsUrl(formObj);
this.formPropertiesUrl(formObj);
this.clearUrl();
this.propertiesUrl = (this.propertiesUrl && this.brandsUrl) ? ';' + this.propertiesUrl : this.propertiesUrl;
return this.baseUrl + '/' + this.brandsUrl + this.propertiesUrl;
}
};
$(document).on('ready', function () {
$('#catalogForm').submit(function () {
//$(this).attr('action', PhysicalFilter.useMultiSegmentsURL().getUrl(this));
$(this).attr('action', PhysicalFilter.getUrl(this));
});
});
Заходим в папку текущего шаблона и заменяем указанные ниже строки
файл: /smart_filter/filter.tpl
строку:
<input {$dis} class="brand{echo $brand->id}" name="brand[]" value="{echo $brand->id}" type="checkbox" {$check}/>
заменить на:
<input {$dis} class="brand{echo $brand->id}" name="brand[]" data-url="{echo $brand->url}" value="{echo $brand->id}" type="checkbox" {$check}/>
строку:
<input {$dis} name="p[{echo $prop->property_id}][]" value='{echo $item.value}' type="checkbox" {$check} />
заменить на:
<input {$dis} name="p[{echo $prop->property_id}][]" data-physical="{echo $prop->csv_name}-{echo $item.id}" value='{echo $item.value}' type="checkbox" {$check} />
строку:
<span class="text-el">{echo $item.value}</span>
или
<span class="text-el">{echo htmlspecialchars_decode($item.value)}</span>
заменить на:
<span class="text-el">{echo htmlspecialchars_decode($item.value)}</span>
строку:
<input disabled="disabled" type="hidden" name="requestUri" value="{echo site_url($CI->uri->uri_string())}"/>
заменить на:
<input disabled="disabled" type="hidden" name="requestUri" value="{echo site_url('/shop/category/' . $CI->load->module('smart_filter')->formCategoryPath())}"/>
файл: /smart_filter/main.tpl
строку:
{if $nm == $key.value or \ShopCore::encode($nm) == $key.value} или {if $nm == $key.value || $nm == htmlspecialchars_decode($key.value)}
заменить на:
{if $nm == $key.value || $nm == htmlspecialchars_decode($key.value, ENT_QUOTES)}
строку:
<button type="button" onclick="location.href = location.origin + location.pathname" class="btn-reset-filter">
заменить на:
<button type="button" onclick="Filter.resetFilter()" class="btn-reset-filter">
файл: /smart_filter/js/filter.js
строку:
var Filter = {
заменить на:
var Filter = {
resetFilter: function () {
location.href= $('input[name="requestUri"]').val();
},
Чистим кэш из админпанели.
PHP Fatal error: The file ... was encoded by the ionCube Encoder for PHP 5.5 and cannot run under PHP 7.0...
Ошибка характерна для сайтов, работающих на PHP 7. В данном случае вам необходимо обновить IonCube Loader к последней версии ( 6.0.8 - на момент написания статьи). По данному запросу обратитесь к вашему хостеру.
Через FTP соединение, откройте директорию \application\modules. Далее, в зависимости от используемой вами сборки, замените следующее файлы:
-
Для сборки ImageCMS Shop Premium
- в папке \application\modules\exchange - файл admin.php
- в папке \application\modules\mod_seo - файл admin.php
- в папке \application\modules\mod_stats - файл admin.php
- в папке \application\modules\shop\classes - файлы ShopAdminController.php, ShopAuth.php, ShopController.php, ShopCore.php
- Скачать файлы для замены
Если у вас возникли ошибки во время или после установки системы, то на форуме существует специальная тема для их решения: http://forum.imagecms.net/viewforum.php?id=7
После установки открывается только главная страница
Для решения проблемы откройте файл ./application/config/config.php, затем найдите строку:
$config['uri_protocol'] = "AUTO"
и измените значение "AUTO" на одно из следующих:
- PATH_INFO
- QUERY_STRING
- REQUEST_URL
- ORIGPATH_INFO
После установки ImageCMS Shop открывается пустая страница
Проверьте установлен ли php модуль pdo_mysql.
Не работает панель управления под IE
Под IE ниже 8 версии установка и панель управления не работают. Рекомендуем скачать Google Chrome, Opera или Firefox.
После установки в подпапку localhost сайт не запускается (Denwer)
На Денвере не рекомендуется устанавливать сайт в подпапки localhost. Папку home/localhost лучше вообще не трогать - это служебная папка Денвера. Для того, чтобы создать тестовый Локальный домен, нужно создать в папке home папку imagecms. Потом в папке home imagecms создать папку www. Тогда все файлы закачать в папку home imagecms www. После чего сделать рестарт Денвера и перейти в браузере по ссылке: imagecms.
При установке движка, в блоке “Проверка модулей PHP” не принимается параметр “curl” и “mbstring”
В файле php.ini (путь к файлу зависит от ОС и веб-сервера) раскоментировать библиотеки: extension = php_mbstring.dll и extension = php_curl.dll. После чего не забудьте сделать рестарт веб-сервера.
При переходе в /admin выдаёт ошибку "Error occurred: 404 - not found"
Скорее всего проблема в .htaccess! Также mod-rewrite должен быть включенным
После установки никак не удается войти в админку. Сообщение: “Пользователя с таким логином и паролем не найдено”
Нужно создать нового пользователя. Процес описан в статье Установка
Не работает капча
Нужно проверить права на запись в каталог captha.
IIS 7 (Internet Information Server) не поддерживает, .htacess можно ли отключить?
Файл .htacess должен быть.
Невозможно зарегистрироваться. Неверный код протекции!
Нужно очистить таблицу “login_attempts”.
Кроме главной страницы ничего не открывается, пишет: ошибка 404, mod_rewrite включен
Нужно изменить .htaccess.
Входит только на главную страницу сайта, а остальные пункты меню не работают, не входит в админ панель: Not Found The requested URL /admin was not found on this server
1. Нужно проверить, есть ли файл .htaccess в корне сайта.
2. Посмотреть, включен ли mod_rewrite (он должен быть включенным).
Ошибка БД 1146
Error Number: 1146
Table 'gdr2.logs' doesn't exist
INSERT INTO logs (user_id, username, message, date) VALUES ('1', 'admin', 'Вошел в панель управления IP 127.0.0.1', 1265101520
Нужно выполнить запрос к базе:
CREATE TABLE IF NOT EXISTS `logs` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`user_id` int(11) NOT NULL,
`username` varchar(250) NOT NULL,
`message` text NOT NULL,
`date` int(11) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=72 ;ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=72;
Oчистка журнала событий
Чтобы очистить журнал событий, нужно открыть базу данных, в которую установлена CMS, найти таблицу logs и удалить все записи.
Не отправляется почта, ошибка: Mail delivery failed: returning message to sender
Возможно почтовый ящик, на который вы отправляете письма, не существует либо не правильно настроена отправка писем.
Шаблон отображается искаженно и выдает ошибки
Нужно перезалить заново папку с шаблонами (template) или создать файл вручную.
Нельзя зайти в админ панель, ошибка: The requested URL /auth/login was not found on this server
Нужно проверить, есть ли файл .htaccess, потому что система без .htaccess не может работать.
После установки CMS на хостинг пропали доступы
На все имеющиеся каталоги и подкаталоги в IMAGE CMS установить параметр 777 (права доступа).
Почта отправляется, но не приходят письма
Чтобы проверить отправку, нужно вставить отладку echo $this->email->print_debugger(); после вызова функции отправки почты. Но скорее всего нужно просто установить параметр $config['protocol'] = 'sendmail';, т.к. по умолчанию он принимает значение 'mail', а в модуле feedback.php этот параметр не определен.
На фронте не отображается кириллица
Ситуация связана с настройками сервера. Для исправления кодировки сделайте следующее:
Файл: /application/modules/shop/classes/propel/adapter/DBAdapter.php в методе: initConnection(PDO $con, array $settings) пропишите $con->exec("SET NAMES 'UTF8'");
В админке не отображается кириллица при переходе по пунктам меню, а после обновления страницы все нормально
В методе __construct() файла libraries/BaseAdminController.php добавьте строку
header("Content-type: text/html; charset=utf-8")
Полезные ссылки
Обсуждение проблем с установкой системы на официальном форуме.