Автор Тема: Как узнать, к какой SQL таблице подлючен Prestashop 1.6.1.0  (Прочитано 2516 раз)

21 Август 2015, 22:21:19
  • Новичок
  • *
  • Сообщений: 24
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Cделал два отдельных каталога с Prestashop в папке /var/www

Один был уже давно и работает, а второй перенес с другого компьютера.

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

Но вот другой не запускается, в логах:

[Fri Aug 21 21:28:41.042811 2015] [:error] [pid 5065] [client 127.0.0.1:36155] PHP Warning:  Invalid argument supplied for foreach() in /var/www/PrestaShop-1.6.1/classes/shop/Shop.php on line 336

Есть подозрение, что проблема в SQL. SQL базу то я еще не перенес...
Но боюсь переносить, тк боюсь попортить SQL у рабочей версии...боюсь, что у база может называться одинаково...и при импорте что то испортится...

Если я зашел в http://www.test1.ru/phpmyadmin/ передо мной только таблицы для test1? Или там вообще все таблицы SQL?
21 Август 2015, 23:10:31
Ответ #1
  • Ветеран
  • *****
  • Сообщений: 1808
  • Репутация: +49/-1
  • Сообщество PrestaShop
    • Просмотр профиля
/config/settings.inc.php
В это файле найдете название базы данных.
21 Август 2015, 23:14:57
Ответ #2
  • Новичок
  • *
  • Сообщений: 24
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Я тоже так думал, когда прочитал в интернете где то. Но не смог найти...

require_once(dirname(__FILE__).'/defines.inc.php');
$start_time = microtime(true);

/* SSL configuration */
define('_PS_SSL_PORT_', 443);

/* Improve PHP configuration to prevent issues */
ini_set('default_charset', 'utf-8');
ini_set('magic_quotes_runtime', 0);
ini_set('magic_quotes_sybase', 0);

/* correct Apache charset (except if it's too late */
if (!headers_sent())
header('Content-Type: text/html; charset=utf-8');

/* No settings file? goto installer... */
if (!file_exists(_PS_ROOT_DIR_.'/config/settings.inc.php'))
{
if (file_exists(dirname(__FILE__).'/../install'))
header('Location: install/');
elseif (file_exists(dirname(__FILE__).'/../install-dev'))
header('Location: install-dev/');
else
die('Error: "install" directory is missing');
exit;
}

/* include settings file only if we are not in multi-tenancy mode */
require_once(_PS_ROOT_DIR_.'/config/settings.inc.php');
require_once(_PS_CONFIG_DIR_.'autoload.php');

require_once dirname(__FILE__) . DIRECTORY_SEPARATOR . 'bootstrap.php';

/* Custom config made by users */
if (is_file(_PS_CUSTOM_CONFIG_FILE_))
include_once(_PS_CUSTOM_CONFIG_FILE_);

if (_PS_DEBUG_PROFILING_)
{
include_once(_PS_TOOL_DIR_.'profiling/Controller.php');
include_once(_PS_TOOL_DIR_.'profiling/ObjectModel.php');
include_once(_PS_TOOL_DIR_.'profiling/Db.php');
include_once(_PS_TOOL_DIR_.'profiling/Tools.php');
}

if (Tools::convertBytes(ini_get('upload_max_filesize')) < Tools::convertBytes('100M'))
ini_set('upload_max_filesize', '100M');

if (Tools::isPHPCLI() && isset($argc) && isset($argv))
Tools::argvToGET($argc, $argv);

/* Redefine REQUEST_URI if empty (on some webservers...) */
if (!isset($_SERVER['REQUEST_URI']) || empty($_SERVER['REQUEST_URI']))
{
if (!isset($_SERVER['SCRIPT_NAME']) && isset($_SERVER['SCRIPT_FILENAME']))
$_SERVER['SCRIPT_NAME'] = $_SERVER['SCRIPT_FILENAME'];
if (isset($_SERVER['SCRIPT_NAME']))
{
if (basename($_SERVER['SCRIPT_NAME']) == 'index.php' && empty($_SERVER['QUERY_STRING']))
$_SERVER['REQUEST_URI'] = dirname($_SERVER['SCRIPT_NAME']).'/';
else
{
$_SERVER['REQUEST_URI'] = $_SERVER['SCRIPT_NAME'];
if (isset($_SERVER['QUERY_STRING']) && !empty($_SERVER['QUERY_STRING']))
$_SERVER['REQUEST_URI'] .= '?'.$_SERVER['QUERY_STRING'];
}
}
}

/* Trying to redefine HTTP_HOST if empty (on some webservers...) */
if (!isset($_SERVER['HTTP_HOST']) || empty($_SERVER['HTTP_HOST']))
$_SERVER['HTTP_HOST'] = @getenv('HTTP_HOST');

$context = Context::getContext();

/* Initialize the current Shop */
try
{
$context->shop = Shop::initialize();
$context->theme = new Theme((int)$context->shop->id_theme);
if ((Tools::isEmpty($theme_name = $context->shop->getTheme()) || !Validate::isLoadedObject($context->theme)) && !defined('_PS_ADMIN_DIR_'))
throw new PrestaShopException(Tools::displayError('Current theme unselected. Please check your theme configuration.'));
}
catch (PrestaShopException $e)
{
$e->displayMessage();
}
define('_THEME_NAME_', $theme_name);
define('__PS_BASE_URI__', $context->shop->getBaseURI());

/* Include all defines related to base uri and theme name */
require_once(dirname(__FILE__).'/defines_uri.inc.php');

global $_MODULES;
$_MODULES = array();

define('_PS_PRICE_DISPLAY_PRECISION_', Configuration::get('PS_PRICE_DISPLAY_PRECISION'));
define('_PS_PRICE_COMPUTE_PRECISION_', _PS_PRICE_DISPLAY_PRECISION_);

if (Configuration::get('PS_USE_HTMLPURIFIER'))
require_once (_PS_TOOL_DIR_.'htmlpurifier/HTMLPurifier.standalone.php');

/* Load all languages */
Language::loadLanguages();

/* Loading default country */
$default_country = new Country(Configuration::get('PS_COUNTRY_DEFAULT'), Configuration::get('PS_LANG_DEFAULT'));
$context->country = $default_country;

/* It is not safe to rely on the system's timezone settings, and this would generate a PHP Strict Standards notice. */
@date_default_timezone_set(Configuration::get('PS_TIMEZONE'));

/* Set locales */
$locale = strtolower(Configuration::get('PS_LOCALE_LANGUAGE')).'_'.strtoupper(Configuration::get('PS_LOCALE_COUNTRY'));
/* Please do not use LC_ALL here http://www.php.net/manual/fr/function.setlocale.php#25041 */
setlocale(LC_COLLATE, $locale.'.UTF-8', $locale.'.utf8');
setlocale(LC_CTYPE, $locale.'.UTF-8', $locale.'.utf8');
setlocale(LC_TIME, $locale.'.UTF-8', $locale.'.utf8');
setlocale(LC_NUMERIC, 'en_US.UTF-8', 'en_US.utf8');

/* Instantiate cookie */
$cookie_lifetime = defined('_PS_ADMIN_DIR_') ? (int)Configuration::get('PS_COOKIE_LIFETIME_BO') : (int)Configuration::get('PS_COOKIE_LIFETIME_FO');
if ($cookie_lifetime > 0)
$cookie_lifetime = time() + (max($cookie_lifetime, 1) * 3600);

if (defined('_PS_ADMIN_DIR_'))
$cookie = new Cookie('psAdmin', '', $cookie_lifetime);
else
{
$force_ssl = Configuration::get('PS_SSL_ENABLED') && Configuration::get('PS_SSL_ENABLED_EVERYWHERE');
if ($context->shop->getGroup()->share_order)
$cookie = new Cookie('ps-sg'.$context->shop->getGroup()->id, '', $cookie_lifetime, $context->shop->getUrlsSharedCart(), false, $force_ssl);
else
{
$domains = null;
if ($context->shop->domain != $context->shop->domain_ssl)
  $domains = array($context->shop->domain_ssl, $context->shop->domain);

$cookie = new Cookie('ps-s'.$context->shop->id, '', $cookie_lifetime, $domains, false, $force_ssl);
}
}

$context->cookie = $cookie;

/* Create employee if in BO, customer else */
if (defined('_PS_ADMIN_DIR_'))
{
$employee = new Employee($cookie->id_employee);
$context->employee = $employee;

/* Auth on shops are recached after employee assignation */
if ($employee->id_profile != _PS_ADMIN_PROFILE_)
Shop::cacheShops(true);

$cookie->id_lang = (int)$employee->id_lang;
}

/* if the language stored in the cookie is not available language, use default language */
if (isset($cookie->id_lang) && $cookie->id_lang)
$language = new Language($cookie->id_lang);
if (!isset($language) || !Validate::isLoadedObject($language))
$language = new Language(Configuration::get('PS_LANG_DEFAULT'));
$context->language = $language;

if (!defined('_PS_ADMIN_DIR_'))
{
if (isset($cookie->id_customer) && (int)$cookie->id_customer)
{
$customer = new Customer($cookie->id_customer);
if (!Validate::isLoadedObject($customer))
$context->cookie->logout();
else
{
$customer->logged = true;
if ($customer->id_lang != $context->language->id)
{
$customer->id_lang = $context->language->id;
$customer->update();
}
}
}

if (!isset($customer) || !Validate::isLoadedObject($customer))
{
$customer = new Customer();

/* Change the default group */
if (Group::isFeatureActive())
$customer->id_default_group = (int)Configuration::get('PS_UNIDENTIFIED_GROUP');
}
$customer->id_guest = $cookie->id_guest;
$context->customer = $customer;
}

/* Link should also be initialized in the context here for retrocompatibility */
$https_link = (Tools::usingSecureMode() && Configuration::get('PS_SSL_ENABLED')) ? 'https://' : 'http://';
$context->link = new Link($https_link, $https_link);

/**
 * @deprecated
 * USE : Configuration::get() method in order to getting the id of order status
 */

define('_PS_OS_CHEQUE_', Configuration::get('PS_OS_CHEQUE'));
define('_PS_OS_PAYMENT_', Configuration::get('PS_OS_PAYMENT'));
define('_PS_OS_PREPARATION_', Configuration::get('PS_OS_PREPARATION'));
define('_PS_OS_SHIPPING_', Configuration::get('PS_OS_SHIPPING'));
define('_PS_OS_DELIVERED_', Configuration::get('PS_OS_DELIVERED'));
define('_PS_OS_CANCELED_', Configuration::get('PS_OS_CANCELED'));
define('_PS_OS_REFUND_', Configuration::get('PS_OS_REFUND'));
define('_PS_OS_ERROR_', Configuration::get('PS_OS_ERROR'));
define('_PS_OS_OUTOFSTOCK_', Configuration::get('PS_OS_OUTOFSTOCK'));
define('_PS_OS_OUTOFSTOCK_PAID_', Configuration::get('PS_OS_OUTOFSTOCK_PAID'));
define('_PS_OS_OUTOFSTOCK_UNPAID_', Configuration::get('PS_OS_OUTOFSTOCK_UNPAID'));
define('_PS_OS_BANKWIRE_', Configuration::get('PS_OS_BANKWIRE'));
define('_PS_OS_PAYPAL_', Configuration::get('PS_OS_PAYPAL'));
define('_PS_OS_WS_PAYMENT_', Configuration::get('PS_OS_WS_PAYMENT'));
define('_PS_OS_COD_VALIDATION_', Configuration::get('PS_OS_COD_VALIDATION'));

if (!defined('_MEDIA_SERVER_1_'))
define('_MEDIA_SERVER_1_', Configuration::get('PS_MEDIA_SERVER_1'));
if (!defined('_MEDIA_SERVER_2_'))
define('_MEDIA_SERVER_2_', Configuration::get('PS_MEDIA_SERVER_2'));
if (!defined('_MEDIA_SERVER_3_'))
define('_MEDIA_SERVER_3_', Configuration::get('PS_MEDIA_SERVER_3'));

/* Get smarty */
require_once(dirname(__FILE__).'/smarty.config.inc.php');
$context->smarty = $smarty;
21 Август 2015, 23:33:55
Ответ #3
  • Новичок
  • *
  • Сообщений: 24
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Виноват, не в том файле смотрел... /var/www/PrestaShop-1.6/config/config.inc.php

Все, нашел имя базы данных...

Теперь вопрос такой: Если я зашел в http://www.test1.ru/phpmyadmin/ я вижу таблицы для test1? Или там вообще все существущие таблицы SQL?

У меня в обеих престах написано:

define('_DB_SERVER_', 'localhost');
define('_DB_NAME_', 'prestashopdb');

Как интересно теперь действовать, чтобы они работали каждая со своей базой?

21 Август 2015, 23:45:23
Ответ #4
  • Ветеран
  • *****
  • Сообщений: 1808
  • Репутация: +49/-1
  • Сообщество PrestaShop
    • Просмотр профиля
В phpmyadmin нужно указать логин и пароль. От них зависит какие базы вы увидите.
21 Август 2015, 23:53:05
Ответ #5
  • Новичок
  • *
  • Сообщений: 24
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
В phpmyadmin нужно указать логин и пароль. От них зависит какие базы вы увидите.

Указываю root..
В обеих престах: define('_DB_USER_', 'root');...

Но судя по префиксу я при входе в http://www.test1.ru/phpmyadmin/ вижу базу данных под названием prestashopdb но с префиксом указанным в http://www.test2.ru

Может базу данных переименовать?
21 Август 2015, 23:58:16
Ответ #6
  • Ветеран
  • *****
  • Сообщений: 1808
  • Репутация: +49/-1
  • Сообщество PrestaShop
    • Просмотр профиля
22 Август 2015, 00:04:42
Ответ #7
  • Новичок
  • *
  • Сообщений: 24
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Ну вроде выкрутился... переименовал базу данных существующую, щас буду импортировать новую...
А то я боялся, что если буду импортировать базу с таким же названием, то могут быть глюки.
22 Август 2015, 00:11:42
Ответ #8
  • Новичок
  • *
  • Сообщений: 24
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Все закончилось хорошо. Создал две разные базы SQL для двух прест. В одну из них импортировал из архива данные. Работают пралелльно.

Спасибо.