Проблема с установкой vamshop 1.70 и её решение

18.07.2013 | Написал

В вамшопе версии 1.70 перешли на mysqli. После этого при установке скрипта на некоторых хостингах магазин не ставится. Наблюдал такое не только я, об этом есть сообщения и на официальном форуме.

На четвертом шаге вот такая картина:

Warning: mysqli_query() expects parameter 1 to be mysqli, resource given in /home/……./inc/vam_db_query.inc.php on line 34
Warning: mysqli_errno() expects parameter 1 to be mysqli, resource given in /home/……./inc/vam_db_query.inc.php on line 34
Warning: mysqli_error() expects parameter 1 to be mysqli, resource given in /home/……./inc/vam_db_query.inc.php on line 34
Warning: include(DIR_WS_LANGUAGESrussian/russian_db_error.php) [function.include]: failed to open stream: No such file or directory in /home/……./inc/vam_db_error.inc.php on line 26
Warning: include(DIR_WS_LANGUAGESrussian/russian_db_error.php) [function.include]: failed to open stream: No such file or directory in /home/……./inc/vam_db_error.inc.php on line 26
Warning: include() [function.include]: Failed opening ‘DIR_WS_LANGUAGESrussian/russian_db_error.php’ for inclusion (include_path=’.:/usr/lib/php:/usr/local/lib/php’) in /home/……./inc/vam_db_error.inc.php on line 26
DB_ERR_MSG

До этого удачно прошла лишь загрузка базы.

Что делать дальше ниже:

1.  Файлы includes/config.php и admin/includes/config.php остались девственно чистыми. Заполняем их нужным кодом. Вот такое должно быть содержимое includes/config.php:

<?php
/* --------------------------------------------------------------
 
  VamShop - open source ecommerce solution
  http://vamshop.ru
  http://vamshop.com
 
   Copyright (c) 2012 VamShop
  --------------------------------------------------------------
  based on:
  (c) 2000-2001 The Exchange Project  (earlier name of osCommerce)
  (c) 2002-2003 osCommerce (configure.php,v 1.13 2003/02/10); www.oscommerce.com
  (c) 2004 xt:Commerce (configure.php,v 1.13 2003/02/10); xt-commerce.com
 
  Released under the GNU General Public License
  --------------------------------------------------------------*/
 
// Define the webserver and path parameters
// * DIR_FS_* = Filesystem directories (local/physical)
// * DIR_WS_* = Webserver directories (virtual/URL)
  define('HTTP_SERVER', 'http://ваш_домен.ru'); // eg, http://localhost - should not be empty for productive servers
  define('HTTPS_SERVER', 'http://ваш_домен.ru'); // eg, https://localhost - should not be empty for productive servers
  define('ENABLE_SSL', false); // secure webserver for checkout procedure?
  define('DIR_WS_CATALOG', '/'); // absolute path required
  define('DIR_FS_DOCUMENT_ROOT', '/home/...../public_html/');
  define('DIR_FS_CATALOG', '/home/...../public_html/');
  define('DIR_WS_IMAGES', 'images/');
  define('DIR_WS_ORIGINAL_IMAGES', DIR_WS_IMAGES .'product_images/original_images/');
  define('DIR_WS_THUMBNAIL_IMAGES', DIR_WS_IMAGES .'product_images/thumbnail_images/');
  define('DIR_WS_INFO_IMAGES', DIR_WS_IMAGES .'product_images/info_images/');
  define('DIR_WS_POPUP_IMAGES', DIR_WS_IMAGES .'product_images/popup_images/');
  define('DIR_WS_ICONS', DIR_WS_IMAGES . 'icons/');
  define('DIR_WS_INCLUDES',DIR_FS_DOCUMENT_ROOT. 'includes/');
  define('DIR_WS_FUNCTIONS', DIR_WS_INCLUDES . 'functions/');
  define('DIR_WS_CLASSES', DIR_WS_INCLUDES . 'classes/');
  define('DIR_WS_MODULES', DIR_WS_INCLUDES . 'modules/');
  define('DIR_WS_LANGUAGES', DIR_FS_CATALOG . 'lang/');
 
  define('DIR_WS_DOWNLOAD_PUBLIC', DIR_WS_CATALOG . 'pub/');
  define('DIR_FS_DOWNLOAD', DIR_FS_CATALOG . 'download/');
  define('DIR_FS_DOWNLOAD_PUBLIC', DIR_FS_CATALOG . 'pub/');
  define('DIR_FS_INC', DIR_FS_CATALOG . 'inc/');
 
  define('DIR_FS_FORUM_ROOT', '');
  define('DIR_FS_SITE_ROOT', '');
  define('VAM_COOKIE_NAME', 'VAMCookie');
 
  define('SESSION_WRITE_DIRECTORY', DIR_FS_CATALOG . 'tmp/');
 
// define our database connection
  define('DB_SERVER', 'localhost'); // eg, localhost - should not be empty for productive servers
  define('DB_SERVER_USERNAME', 'db_user');
  define('DB_SERVER_PASSWORD', 'password');
  define('DB_DATABASE', 'db_name');
  define('USE_PCONNECT', 'false'); // use persistent connections?
  define('STORE_SESSIONS', ''); // leave empty '' for default handler or set to 'mysql'
?>

А вот такое должно быть содержимое admin/includes/config.php:

<?php
/* --------------------------------------------------------------
 
  VamShop - open source ecommerce solution
  http://vamshop.ru
  http://vamshop.com
 
   Copyright (c) 2012 VamShop
  --------------------------------------------------------------
  based on:
  (c) 2000-2001 The Exchange Project  (earlier name of osCommerce)
 
 
 
  (c) 2002-2003 osCommerce (configure.php,v 1.14 2003/02/21); www.oscommerce.com
  (c) 2004 xt:Commerce (configure.php,v 1.13 2003/02/10); xt-commerce.com
 
  Released under the GNU General Public License
  --------------------------------------------------------------*/
 
// Define the webserver and path parameters
// * DIR_FS_* = Filesystem directories (local/physical)
// * DIR_WS_* = Webserver directories (virtual/URL)
  define('HTTP_SERVER', 'http://ваш_домен.ru'); // eg, http://localhost or - https://localhost should not be empty for productive servers
  define('HTTP_CATALOG_SERVER', 'http://ваш_домен.ru');
  define('HTTPS_CATALOG_SERVER', 'http://ваш_домен.ru');
  define('ENABLE_SSL_CATALOG', 'false'); // secure webserver for catalog module
  define('DIR_FS_DOCUMENT_ROOT', '/home/...../public_html/'); // where the pages are located on the server
  define('DIR_WS_ADMIN', '/admin/'); // absolute path required
  define('DIR_FS_ADMIN', '/home/...../public_html/admin/'); // absolute pate required
  define('DIR_WS_CATALOG', '/'); // absolute path required
  define('DIR_FS_CATALOG', '/home/....../public_html/'); // absolute path required
  define('DIR_WS_IMAGES', 'images/');
  define('DIR_FS_CATALOG_IMAGES', DIR_FS_CATALOG . 'images/');
  define('DIR_FS_CATALOG_ORIGINAL_IMAGES', DIR_FS_CATALOG_IMAGES .'product_images/original_images/');
  define('DIR_FS_CATALOG_THUMBNAIL_IMAGES', DIR_FS_CATALOG_IMAGES .'product_images/thumbnail_images/');
  define('DIR_FS_CATALOG_INFO_IMAGES', DIR_FS_CATALOG_IMAGES .'product_images/info_images/');
  define('DIR_FS_CATALOG_POPUP_IMAGES', DIR_FS_CATALOG_IMAGES .'product_images/popup_images/');
  define('DIR_WS_ICONS', DIR_WS_IMAGES . 'icons/');
  define('DIR_WS_CATALOG_IMAGES', DIR_WS_CATALOG . 'images/');
  define('DIR_WS_CATALOG_ORIGINAL_IMAGES', DIR_WS_CATALOG_IMAGES .'product_images/original_images/');
  define('DIR_WS_CATALOG_THUMBNAIL_IMAGES', DIR_WS_CATALOG_IMAGES .'product_images/thumbnail_images/');
  define('DIR_WS_CATALOG_INFO_IMAGES', DIR_WS_CATALOG_IMAGES .'product_images/info_images/');
  define('DIR_WS_CATALOG_POPUP_IMAGES', DIR_WS_CATALOG_IMAGES .'product_images/popup_images/');
  define('DIR_WS_INCLUDES', 'includes/');
  define('DIR_WS_BOXES', DIR_WS_INCLUDES . 'boxes/');
  define('DIR_WS_FUNCTIONS', DIR_WS_INCLUDES . 'functions/');
  define('DIR_WS_CLASSES', DIR_WS_INCLUDES . 'classes/');
  define('DIR_WS_MODULES', DIR_WS_INCLUDES . 'modules/');
  define('DIR_WS_LANGUAGES', DIR_FS_CATALOG. 'lang/');
  define('DIR_FS_LANGUAGES', DIR_FS_CATALOG. 'lang/');
  define('DIR_FS_CATALOG_MODULES', DIR_FS_CATALOG . 'includes/modules/');
  define('DIR_FS_BACKUP', DIR_FS_ADMIN . 'backups/');
  define('DIR_FS_INC', DIR_FS_CATALOG . 'inc/');
  define('DIR_WS_FILEMANAGER', DIR_WS_MODULES . 'fckeditor/editor/filemanager/browser/default/');
 
  define('DIR_FS_FORUM_ROOT', '');
  define('DIR_FS_SITE_ROOT', '');
  define('VAM_COOKIE_NAME', 'VAMCookie');
 
  define('SESSION_WRITE_DIRECTORY', DIR_FS_CATALOG . 'tmp/');
 
// define our database connection
  define('DB_SERVER', 'localhost'); // eg, localhost - should not be empty for productive servers
  define('DB_SERVER_USERNAME', 'db_user');
  define('DB_SERVER_PASSWORD', 'password');
  define('DB_DATABASE', 'db_name');
  define('USE_PCONNECT', 'false'); // use persistent connections?
  define('STORE_SESSIONS', ''); // leave empty '' for default handler or set to 'mysql'
?>

Обратите внимание, что пути и доступ к базе должны быть Ваши, а не те, что я тут указал для образца.

2. После этого магазин подымается. Но админ создан не был, содаем его. Регистрируемся в магазине обычным пользователем. Дальше открываем нашу базу в phpMyAdmin, находим таблицу customers. Для первой записи, а это наш созданный пользователь, меняем значение customers_status с 2 на 0. Тем самым мы его переводим в категорию администраторов и можем зайти в админку.

3. Создаем в корне магазина файл .htaccess с таким содержимым:

AddDefaultCharset utf-8
 
RewriteEngine On
RewriteBase /
 
RewriteRule ^product_reviews_write\.php\/info\/p(.*)_.*\.html product_reviews_write\.php\?products_id=$1 [L]
RewriteRule ^product_reviews_write\.php\/action\/process\/info\/p([0-9]*)_.*\.html product_reviews_write\.php\?action=process\&products_id=$1 [L]
 
RewriteRule ^product_info\.php\/info\/p(.*)_.*\/action\/add_product product_info\.php\?products_id=$1\&action=add_product\ [L]
RewriteRule ^shopping_cart\.php\/products_id\/([0-9]*)\/info\/p([0-9]*)_.*\.html shopping_cart\.php\?products_id=$1 [L]
 
RewriteRule ^(product_info|index|shop_content|news|faq|articles|article_info).php(.*)$ redirector.php [L]
 
RewriteRule ^.*\.gif|\.jpg|\.jpeg|\.png|\.css|\.php|\.js$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-l
RewriteRule ^(.*).html(.*)$ manager.php [L]
 
# PHP 5, Apache 1 and 2.
<IfModule mod_php5.c>
php_value magic_quotes_gpc                0
php_value register_globals                0
php_value session.auto_start              0
php_value mbstring.http_input             pass
php_value mbstring.http_output            pass
php_value mbstring.encoding_translation   0
php_value default_charset UTF-8
php_value mbstring.internal_encoding UTF-8
</IfModule>

4. Еще остался один момент — настроить e-mail’ы в админке. Открываем «Настройки — Настройка E-Mail». И вписываем нужные значения «Свяжитесь с нами — E-Mail адрес», «Служба поддержки — E-Mail адрес» и т.д.

На этом все.

Метки:
2 комментария читателей статьи "Проблема с установкой vamshop 1.70 и её решение"
  • Вадим пишет:

    День добрый!

    Подскажите пожалуйста. У нас есть интернет-магазин на вамшопе 1.61. Возникла необходимость обновиться до 1.70. Пробовал обновляться поэтапно, сайт теряет функциональность… нельзя авторизоваться, попасть в админку, ошибки… Попробовал поставить 1.7 демо и сделать восстановление из резервной копии, а также подложил images и шаблон. Также пропадает форма авторизации, не работает ajax корзина и т.п.
    Вопрос: а как же всё таки правильно обновляться, чтобы функционал сайта не пострадал?

    • Евгений Молодецкий пишет:

      Во-первых, шаблон тоже нужно обновлять. А судя как минимум по пропавшим формам логина, это не делалось.
      Во-вторых, если делались доработки функционала, то обновление нужно делать не переписывая файлы по верху, а внося изменения в код.

Добавить комментарий

Ваш e-mail не будет опубликован.