4.3 Настройка конфигурационного файла для CMS OpenCart

Главный Баннер

Универсальный конфиг для интернет-магазина OpenCart 3.x

Перенос интернет-магазина на новый хостинг в OpenCart часто включает в себя необходимость внесения изменений в конфигурационные файлы, такие как config.php и admin/config.php. Эти файлы требуют обновления адресов хостов, путей к директориям и параметров базы данных.

Пример: стандартного содержимого файла config.php
/var/www/user_name/data/www/site_name/config.php
<?php
// HTTP
define('HTTP_SERVER', 'http://Site_Name/');

// HTTPS
define('HTTPS_SERVER', 'https://Site_Name/');

// DIR
define('DIR_APPLICATION', '/var/www/user_name/data/www/site_name/catalog/');
define('DIR_SYSTEM', '/var/www/user_name/data/www/site_name/system/');
define('DIR_IMAGE', '/var/www/user_name/data/www/site_name/image/');
define('DIR_STORAGE', '/var/www/user_name/data/www/site_name/storage/');
define('DIR_LANGUAGE', '/var/www/user_name/data/www/site_name/catalog/language/');
define('DIR_TEMPLATE', '/var/www/user_name/data/www/site_name/catalog/view/theme/');
define('DIR_CONFIG', '/var/www/user_name/data/www/site_name/system/config/');
define('DIR_CACHE', '/var/www/user_name/data/www/site_name/storage/cache/');
define('DIR_DOWNLOAD', '/var/www/user_name/data/www/site_name/storage/download/');
define('DIR_LOGS', '/var/www/user_name/data/www/site_name/storage/logs/');
define('DIR_MODIFICATION', '/var/www/user_name/data/www/site_name/storage/modification/');
define('DIR_SESSION', '/var/www/user_name/data/www/site_name/storage/session/');
define('DIR_UPLOAD', '/var/www/user_name/data/www/site_name/storage/upload/');

// DB
define('DB_DRIVER', 'mysqli');
define('DB_HOSTNAME', 'localhost');
define('DB_USERNAME', 'your_database_username');
define('DB_PASSWORD', 'your_database_password');
define('DB_DATABASE', 'your_database_name');
define('DB_PORT', '3306');
define('DB_PREFIX', 'oc_');
<?php
Пример: стандартного содержимого файла admin/config.php
/var/www/user_name/data/www/site_name/admin/config.php
<?php
// HTTP
define('HTTP_SERVER', 'http://Site_Name/admin/');
define('HTTP_CATALOG', 'http://Site_Name/');

// HTTPS
define('HTTPS_SERVER', 'https://Site_Name/admin/');
define('HTTPS_CATALOG', 'https://Site_Name/');

// DIR
define('DIR_APPLICATION', '/var/www/user_name/data/www/site_name/admin/');
define('DIR_SYSTEM', '/var/www/user_name/data/www/site_name/system/');
define('DIR_IMAGE', '/var/www/user_name/data/www/site_name/image/');
define('DIR_STORAGE', '/var/www/user_name/data/www/site_name/storage/');
define('DIR_LANGUAGE', '/var/www/user_name/data/www/site_name/admin/language/');
define('DIR_TEMPLATE', '/var/www/user_name/data/www/site_name/admin/view/template/');
define('DIR_CONFIG', '/var/www/user_name/data/www/site_name/system/config/');
define('DIR_CACHE', '/var/www/user_name/data/www/site_name/storage/cache/');
define('DIR_DOWNLOAD', '/var/www/user_name/data/www/site_name/storage/download/');
define('DIR_LOGS', '/var/www/user_name/data/www/site_name/storage/logs/');
define('DIR_MODIFICATION', '/var/www/user_name/data/www/site_name/storage/modification/');
define('DIR_SESSION', '/var/www/user_name/data/www/site_name/storage/session/');
define('DIR_UPLOAD', '/var/www/user_name/data/www/site_name/storage/upload/');
define('DIR_CATALOG', '/var/www/user_name/data/www/site_name/catalog/');

// DB
define('DB_DRIVER', 'mysqli');
define('DB_HOSTNAME', 'localhost');
define('DB_USERNAME', 'your_database_username');
define('DB_PASSWORD', 'your_database_password');
define('DB_DATABASE', 'your_database_name');
define('DB_PORT', '3306');
define('DB_PREFIX', 'oc_');

Существует метод, который позволяет минимизировать количество действий при переносе сайта на новый хостинг. Давайте рассмотрим стандартное содержимое файла config.php и возможные улучшения.

Пример: универсальный файл конфигурации config.php
/var/www/user_name/data/www/site_name/config.php
<?php
$host = $_SERVER['HTTP_HOST'];

// HTTP
define('HTTP_SERVER', 'http://'.$host.'/');

// HTTPS
define('HTTPS_SERVER', 'https://'.$host.'/');
$dir = dirname(__FILE__);

// DIR
define('DIR_APPLICATION', $dir.'/catalog/');
define('DIR_SYSTEM', $dir.'/system/');
define('DIR_IMAGE', $dir.'/image/');
define('DIR_STORAGE', DIR_SYSTEM . 'storage/');
define('DIR_LANGUAGE', DIR_APPLICATION . 'language/');
define('DIR_TEMPLATE', DIR_APPLICATION . 'view/theme/');
define('DIR_CONFIG', DIR_SYSTEM . 'config/');
define('DIR_CACHE', DIR_STORAGE . 'cache/');
define('DIR_DOWNLOAD', DIR_STORAGE . 'download/');
define('DIR_LOGS', DIR_STORAGE . 'logs/');
define('DIR_MODIFICATION', DIR_STORAGE . 'modification/');
define('DIR_SESSION', DIR_STORAGE . 'session/');
define('DIR_UPLOAD', DIR_STORAGE . 'upload/');

// DB
define('DB_DRIVER', 'mysqli');
define('DB_HOSTNAME', 'localhost');
define('DB_USERNAME', 'your_database_username');
define('DB_PASSWORD', 'your_database_password');
define('DB_DATABASE', 'your_database_name');
define('DB_PORT', '3306');
define('DB_PREFIX', 'oc_');
<?php

Здесь и в последующих примерах user_name - это имя Вашего пользователя хостинга, а site_name - Ваше доменное имя

Пример: универсальный файл конфигурации admin/config.php
/var/www/user_name/data/www/site_name/admin/config.php
<?php
$host = $_SERVER['HTTP_HOST'];

// HTTP
define('HTTP_SERVER', 'http://'.$host.'/admin/');
define('HTTP_CATALOG', 'http://'.$host.'/');

// HTTPS
define('HTTPS_SERVER', 'https://'.$host.'/admin/');
define('HTTPS_CATALOG', 'https://'.$host.'/');
$dir = dirname(dirname(__FILE__));

// DIR
define('DIR_APPLICATION', $dir.'/admin/');
define('DIR_SYSTEM', $dir.'/system/');
define('DIR_IMAGE', $dir.'/image/');
define('DIR_STORAGE', DIR_SYSTEM . 'storage/');
define('DIR_CATALOG', $dir.'/catalog/');
define('DIR_LANGUAGE', DIR_APPLICATION . 'language/');
define('DIR_TEMPLATE', DIR_APPLICATION . 'view/template/');
define('DIR_CONFIG', DIR_SYSTEM . 'config/');
define('DIR_CACHE', DIR_STORAGE . 'cache/');
define('DIR_DOWNLOAD', DIR_STORAGE . 'download/');
define('DIR_LOGS', DIR_STORAGE . 'logs/');
define('DIR_MODIFICATION', DIR_STORAGE . 'modification/');
define('DIR_SESSION', DIR_STORAGE . 'session/');
define('DIR_UPLOAD', DIR_STORAGE . 'upload/');

// DB
define('DB_DRIVER', 'mysqli');
define('DB_HOSTNAME', 'localhost');
define('DB_USERNAME', 'your_database_username');
define('DB_PASSWORD', 'your_database_password');
define('DB_DATABASE', 'your_database_name');
define('DB_PORT', '3306');
define('DB_PREFIX', 'oc_');
<?php

Примечание: в упрощенном подходе использован метод __DIR__, который автоматически определяет путь к текущей директории. Это делает код более гибким и уменьшает необходимость ручного обновления путей при переносе на другой хостинг.

Настройка конфига для OpenCart 2.x

Если у Вас установлена версия OpenCart 2.x и Вы планируете перенести свой интернет-магазин на новый хостинг, возможно, потребуется внести изменения в конфигурационные файлы, такие как config.php и admin/config.php. Эти файлы требуют обновления адресов хостов, путей к директориям и параметров базы данных. Однако существует метод, который позволяет упростить этот процесс и минимизировать количество необходимых действий.

Пример: универсальный файл конфигурации config.php
/var/www/user_name/data/www/site_name/config.php
<?php
$host = $_SERVER['HTTP_HOST'];

// HTTP
define('HTTP_SERVER', 'http://'.$host.'/admin/');
define('HTTP_CATALOG', 'http://'.$host.'/');

// HTTPS
define('HTTPS_SERVER', 'https://'.$host.'/admin/');
define('HTTPS_CATALOG', 'https://'.$host.'/');
$dir = dirname(dirname(__FILE__));

// DIR
define('DIR_APPLICATION', $dir.'/admin/');
define('DIR_SYSTEM', $dir.'/system/');
define('DIR_LANGUAGE', $dir.'/admin/language/');
define('DIR_TEMPLATE', $dir.'/admin/view/template/');
define('DIR_CONFIG', $dir.'/system/config/');
define('DIR_IMAGE', $dir.'/image/');
define('DIR_CACHE', $dir.'/system/storage/cache/');
define('DIR_DOWNLOAD', $dir.'/system/storage/download/');
define('DIR_LOGS', $dir.'/system/storage/logs/');
define('DIR_MODIFICATION', $dir.'/system/storage/modification/');
define('DIR_UPLOAD', $dir.'/system/storage/upload/');
define('DIR_CATALOG', $dir.'/catalog/');

// DB
define('DB_DRIVER', 'mysqli');
define('DB_HOSTNAME', 'localhost');
define('DB_USERNAME', 'your_database_username');
define('DB_PASSWORD', 'your_database_password');
define('DB_DATABASE', 'your_database_name');
define('DB_PORT', '3306');
define('DB_PREFIX', 'oc_');
<?php

Пример: универсальный файл конфигурации admin/config.php
/var/www/user_name/data/www/site_name/admin/config.php
<?php
$host = $_SERVER['HTTP_HOST'];

// HTTP
define('HTTP_SERVER', 'http://'.$host.'/admin/');
define('HTTP_CATALOG', 'http://'.$host.'/');

// HTTPS
define('HTTPS_SERVER', 'https://'.$host.'/admin/');
define('HTTPS_CATALOG', 'https://'.$host.'/');
$dir = dirname(dirname(__FILE__));

// DIR
define('DIR_APPLICATION', $dir.'/admin/');
define('DIR_SYSTEM', $dir.'/system/');
define('DIR_LANGUAGE', $dir.'/admin/language/');
define('DIR_TEMPLATE', $dir.'/admin/view/template/');
define('DIR_CONFIG', $dir.'/system/config/');
define('DIR_IMAGE', $dir.'/image/');
define('DIR_CACHE', $dir.'/system/storage/cache/');
define('DIR_DOWNLOAD', $dir.'/system/storage/download/');
define('DIR_LOGS', $dir.'/system/storage/logs/');
define('DIR_MODIFICATION', $dir.'/system/storage/modification/');
define('DIR_UPLOAD', $dir.'/system/storage/upload/');
define('DIR_CATALOG', $dir.'/catalog/');

// DB
define('DB_DRIVER', 'mysqli');
define('DB_HOSTNAME', 'localhost');
define('DB_USERNAME', 'your_database_username');
define('DB_PASSWORD', 'your_database_password');
define('DB_DATABASE', 'your_database_name');
define('DB_PORT', '3306');
define('DB_PREFIX', 'oc_');
<?php

Файл конфигурации для OpenCart 1.5.х

Если у Вас установлена более старая версия OpenCart 1.5.x, и Вы планируете перенести свой интернет-магазин на новый хостинг, возможно, потребуется внести изменения в конфигурационные файлы, такие как config.php и admin/config.php. Эти файлы требуют обновления адресов хостов, путей к директориям и параметров базы данных.

Пример: универсальный файл конфигурации config.php
/var/www/user_name/data/www/site_name/config.php
<?php
// HTTP
$host = $_SERVER['HTTP_HOST'];
define('HTTP_SERVER', 'http://'.$host.'/');
define('HTTP_IMAGE', 'http://'.$host.'/image/');
define('HTTP_ADMIN', 'http://'.$host.'/admin/');

// HTTPS
define('HTTPS_SERVER', 'https://'.$host.'/');
define('HTTPS_IMAGE', 'https://'.$host.'/image/');

// DIR
$dir = dirname(__FILE__);
define('DIR_APPLICATION', $dir . '/catalog/');
define('DIR_SYSTEM', $dir . '/system/');
define('DIR_DATABASE', $dir . '/system/database/');
define('DIR_LANGUAGE', $dir . '/catalog/language/');
define('DIR_TEMPLATE', $dir . '/catalog/view/theme/');
define('DIR_CONFIG', $dir . '/system/config/');
define('DIR_IMAGE', $dir . '/image/');
define('DIR_CACHE', $dir . '/system/cache/');
define('DIR_DOWNLOAD', $dir . '/download/');
define('DIR_LOGS', $dir . '/system/logs/');

// DB
define('DB_DRIVER', 'mysqli');
define('DB_HOSTNAME', 'localhost');
define('DB_USERNAME', 'your_database_username');
define('DB_PASSWORD', 'your_database_password');
define('DB_DATABASE', 'your_database_name');
define('DB_PORT', '3306');
define('DB_PREFIX', 'oc_');
<?php
Пример: универсальный файл конфигурации admin/config.php
/var/www/user_name/data/www/site_name/admin/config.php
<?php
// HTTP
$host = $_SERVER['HTTP_HOST'];
define('HTTP_SERVER', 'http://'.$host.'/');
define('HTTP_IMAGE', 'http://'.$host.'/image/');
define('HTTP_ADMIN', 'http://'.$host.'/admin/');

// HTTPS
define('HTTPS_SERVER', 'https://'.$host.'/');
define('HTTPS_IMAGE', 'https://'.$host.'/image/');

// DIR
$dir = dirname(__FILE__);
define('DIR_APPLICATION', $dir . '/catalog/');
define('DIR_SYSTEM', $dir . '/system/');
define('DIR_DATABASE', $dir . '/system/database/');
define('DIR_LANGUAGE', $dir . '/catalog/language/');
define('DIR_TEMPLATE', $dir . '/catalog/view/theme/');
define('DIR_CONFIG', $dir . '/system/config/');
define('DIR_IMAGE', $dir . '/image/');
define('DIR_CACHE', $dir . '/system/cache/');
define('DIR_DOWNLOAD', $dir . '/download/');
define('DIR_LOGS', $dir . '/system/logs/');

// DB
define('DB_DRIVER', 'mysqli');
define('DB_HOSTNAME', 'localhost');
define('DB_USERNAME', 'your_database_username');
define('DB_PASSWORD', 'your_database_password');
define('DB_DATABASE', 'your_database_name');
define('DB_PORT', '3306');
define('DB_PREFIX', 'oc_');
<?php