Недавно столкнулся с Opencart, и оказалось Config.php у Opencart сделан через одно место, мало того что для админки и для фронта разные файлы, так еще и отличаются они по сути одной строкой.
Если сайт поставили и он работает — это конечно пофигу, но вот когда встает вопрос о переносе на другой хостинг, то оказывается конфиг не умеет определить папку где он лежит (и это в 2017 году то), и все пути приходится прописывать вручную, что для неопытных юзеров может вылиться знатным гемором.
Дабы исправить это, я немного переписал config в сторону удобства.
Этот конфиг умеет сам определять папку в которой он лежит, всё что вам нужно это вписать данные от базы данных, сохранить, кинуть его в корень сайта и в папку /admin
<?php //Универсальный конфиг для ОС.2.0+ //В конфиге прописываем только данные к БД, затем ложим этот конфиг в корень и в папку admin // DB define('DB_DRIVER', 'mysqli'); define('DB_HOSTNAME', 'localhost'); define('DB_USERNAME', 'szzd'); define('DB_PASSWORD', 'A30fA40p91I55g59'); define('DB_DATABASE', 'szzd'); define('DB_PORT', '3306'); define('DB_PREFIX', 'oc_'); //Определяем это фронт или бек. //Если последние 5 букв = админ, то это бэк. $is_admin=substr(getcwd(), -5); if ($is_admin=='admin') { //Back // HTTP define('HTTP_SERVER', 'http://' . $_SERVER['HTTP_HOST'] . '/admin/'); define('HTTP_CATALOG', 'http://' . $_SERVER['HTTP_HOST'] . '/'); // HTTPS define('HTTPS_SERVER', 'http://' . $_SERVER['HTTP_HOST'] . '/admin/'); define('HTTPS_CATALOG', 'http://' . $_SERVER['HTTP_HOST'] . '/'); //Back //DIR //Уберем admin из пути $path=getcwd(); $path=str_replace('/admin', '', $path); define('DIR_ROOT', $path. '/'); // // DIR define('DIR_APPLICATION', DIR_ROOT.'admin/'); define('DIR_SYSTEM', DIR_ROOT.'system/'); define('DIR_IMAGE', DIR_ROOT.'image/'); define('DIR_LANGUAGE', DIR_ROOT.'admin/language/'); define('DIR_TEMPLATE', DIR_ROOT.'admin/view/template/'); define('DIR_CONFIG', DIR_ROOT.'system/config/'); define('DIR_CACHE', DIR_ROOT.'system/storage/cache/'); define('DIR_DOWNLOAD', DIR_ROOT.'system/storage/download/'); define('DIR_LOGS', DIR_ROOT.'system/storage/logs/'); define('DIR_MODIFICATION', DIR_ROOT.'system/storage/modification/'); define('DIR_UPLOAD', DIR_ROOT.'system/storage/upload/'); define('DIR_CATALOG', DIR_ROOT.'catalog/'); } else { //Front // HTTP define('HTTP_SERVER', 'http://'.$_SERVER['HTTP_HOST'].'/'); // HTTPS define('HTTPS_SERVER', 'http://'.$_SERVER['HTTP_HOST'].'/'); //Front // DIR define('DIR_ROOT', getcwd() . '/'); // define('DIR_APPLICATION', DIR_ROOT.'catalog/'); define('DIR_SYSTEM', DIR_ROOT.'system/'); define('DIR_IMAGE', DIR_ROOT.'image/'); define('DIR_LANGUAGE', DIR_ROOT.'catalog/language/'); define('DIR_TEMPLATE', DIR_ROOT.'catalog/view/theme/'); define('DIR_CONFIG', DIR_ROOT.'system/config/'); define('DIR_CACHE', DIR_ROOT.'system/storage/cache/'); define('DIR_DOWNLOAD', DIR_ROOT.'system/storage/download/'); define('DIR_LOGS', DIR_ROOT.'system/storage/logs/'); define('DIR_MODIFICATION', DIR_ROOT.'system/storage/modification/'); define('DIR_UPLOAD', DIR_ROOT.'system/storage/upload/'); } // ERRORS //ini_set('error_reporting', E_ALL & ~E_NOTICE & ~E_WARNING & ~E_DEPRECATED); //ini_set('display_errors', 0); //ini_set('display_startup_errors', 0); //ini_set('html_errors', 0);
Файл подходит только под Opencart 2.0. и тестировался мной много раз, пользуйтесь