d0ublezer0
Мой дом здесь!
- Регистрация
- 21 Май 2009
- Сообщения
- 367
- Реакции
- 201
Поделюсь наблюдением и решением одной проблемы, которая лично мне доставила немало хлопот, т.к. ее хрен продиагностируешь.
Если у вас при попытке экспорта товара возникает ошибка Nginx 502 (server bad gateway) или просто при экспорте рушится страница (вкладки и поля в кучу собираются), то возможно вам поможет мое решение.
На хостинге я этого сделать не мог, но как только перенес сайт к себе, посмотрел в логи NGINX, там обнаружилось что
Но это мало информации дает. Апач навернулся там обо что-то и неправильные заголовки отдал. А в логах апача ничего "больного" не видно.
Отключаем Nginx, перегружаем сервер, идем на страницу, вызывающую ошибку и видим что-то такое:
Таблицы виртуемарта, ответственные за английский язык не были созданы, и это вызывает ошибку, т.к. CSVI в первую очередь обращается к ним, чтобы считать доступные данные о полях. Возникнуть такая ситуация может в случае, если вы изначально устанавливали Вирт в русской локализации, т.е. он не предполагал, что ваш сайт может быть в EN_GB.
В старых версиях вирта (1 линейка) помогало такое решение - сайт переключаем в английский язык, и создаем любой новый товар. Вирт создаст таблицы автоматически.
Но в моем случае это не произошло - после переключения языка упал и сам вирт, наивно ткнувшись в несуществующие таблицы.
В общем дело исправить можно так: скачал дамп таблиц вирта с русским языком (ru_ru), переименовал их в английский вариант (en_gb) и залил обратно через phpMyAdmin, создав необходимые таблицы.
Теперь всё работает как положено - и вирт, и экспорт. Не забудьте вернуть русский язык в настройках сайта, если поменяли. Ну и, можно NGINX включать обратно.
Файлы с дампом приложены к этому посту на случай, если проблема настигнет кого-то ещё (для обоих вариантов, RU и EN). Единственное, что вам нужно будет сделать дополнительно перед импортом - это поменять префикс таблиц (0000_) на свой, посмотрите в настройках сайта -> сервер -> префикс таблиц базы данных
Надеюсь, помог кому-то сохранить кучу нервов. А, возможно, и денег.
P.S. Решение актуально для Virtuemart 3.0.9 (думаю, и вся третья линейка) и кодировки сайта UTF8
Если у вас при попытке экспорта товара возникает ошибка Nginx 502 (server bad gateway) или просто при экспорте рушится страница (вкладки и поля в кучу собираются), то возможно вам поможет мое решение.
На хостинге я этого сделать не мог, но как только перенес сайт к себе, посмотрел в логи NGINX, там обнаружилось что
upstream sent invalid header while reading response header from upstream
Но это мало информации дает. Апач навернулся там обо что-то и неправильные заголовки отдал. А в логах апача ничего "больного" не видно.
Отключаем Nginx, перегружаем сервер, идем на страницу, вызывающую ошибку и видим что-то такое:
Обнаружена ошибка.
1146 Table 'kaskad.dt8s6_virtuemart_categories_en_gb' doesn't exist SQL=SELECT x.category_parent_id AS parent_id, x.category_child_id AS id, l.category_name AS catname FROM dt8s6_virtuemart_categories c LEFT JOIN dt8s6_virtuemart_category_categories x ON c.virtuemart_category_id = x.category_child_id LEFT JOIN dt8s6_virtuemart_categories_en_gb l ON l.virtuemart_category_id = c.virtuemart_category_id
Таблицы виртуемарта, ответственные за английский язык не были созданы, и это вызывает ошибку, т.к. CSVI в первую очередь обращается к ним, чтобы считать доступные данные о полях. Возникнуть такая ситуация может в случае, если вы изначально устанавливали Вирт в русской локализации, т.е. он не предполагал, что ваш сайт может быть в EN_GB.
В старых версиях вирта (1 линейка) помогало такое решение - сайт переключаем в английский язык, и создаем любой новый товар. Вирт создаст таблицы автоматически.
Но в моем случае это не произошло - после переключения языка упал и сам вирт, наивно ткнувшись в несуществующие таблицы.
В общем дело исправить можно так: скачал дамп таблиц вирта с русским языком (ru_ru), переименовал их в английский вариант (en_gb) и залил обратно через phpMyAdmin, создав необходимые таблицы.
Теперь всё работает как положено - и вирт, и экспорт. Не забудьте вернуть русский язык в настройках сайта, если поменяли. Ну и, можно NGINX включать обратно.
Файлы с дампом приложены к этому посту на случай, если проблема настигнет кого-то ещё (для обоих вариантов, RU и EN). Единственное, что вам нужно будет сделать дополнительно перед импортом - это поменять префикс таблиц (0000_) на свой, посмотрите в настройках сайта -> сервер -> префикс таблиц базы данных
Надеюсь, помог кому-то сохранить кучу нервов. А, возможно, и денег.
P.S. Решение актуально для Virtuemart 3.0.9 (думаю, и вся третья линейка) и кодировки сайта UTF8