Good news, everyone!
Понадобилось перенести сайт с одного сервера на другой. Хостер REG.RU предоставляет услугу создания полного бэкапа, именно ей я и воспользовался. Затем залил файлы на новый хостинг, поправил файл конфигурации /includes/configure.php и импортировал базу данных через phpMyAdmin. Сайт заработал, но заботы были еще впереди.
Отключение аутентификации Apache

В файле /admin/.htaccess удалите следующие строки:
##### OSCOMMERCE ADMIN PROTECTION - BEGIN ##### AuthType Basic AuthName "osCommerce Online Merchant Administration Tool" AuthUserFile /web/htdocs/YOUR PATH TO ADMIN DIRECTORY/.htpasswd_oscommerce Require valid-user ##### OSCOMMERCE ADMIN PROTECTION - END #####Правда, у меня все выглядело несколько иначе, но принцип понятен.
Сброс пароля администратора
Открыть phpMyAdmin и выбрать таблицу administrators. Из консоли выполнить следующий скрипт:
INSERT INTO `administrators` VALUES (1, 'admin', '55340159dccd929e0cd2abd72cfe799a:14');В результате добавится новый пользователь с логином "admin" и паролем "admin". После успешного входа не забыть сменить пароль.
После добавления товара его невозможно отредактировать

Кроме того, в режиме отображения всех товаров на новом товаре все просто зависало.
В моем случае проблема возникла в файле /admin/includes/applications/products/pages/main.php из-за этой стоки:
newCell = newRow.insertCell(2); newCell.innerHTML = htmlSpecialChars(record.products_last_modified);А все из-за того, что
record.products_last_modified после добавления нового товара равен null;
Я исправил эту ошибку следующим образом:
if (record.products_last_modified !== null) newCell.innerHTML = htmlSpecialChars(record.products_last_modified); else newCell.innerHTML = htmlSpecialChars(record.products_date_added);
Неудобный порядок сортировки

Порядок сортировки общего списка товаров можно изменить в файле /admin/includes/applications/products/classes/products.php.
Мне нравится, когда новые товары отображаются первыми. Для этого нужно просто заменить все вхождения order by pd.products_name на order by pd.products_id desc.
Не создаются изображения предпросмотра

С этой ошибкой я ковырялся особенно долго. Проблема была в том, что на новом хостинге стоял запрет на использование функции exec. Видимо, дело обычное для виртуальных хостингов. Кстати, из этого можно предположить, что раньше сайт хостился на выделенном сервере.
Вот, что я обнаружил в логе:
PHP Warning: exec() has been disabled for security reasons in /admin/includes/classes/image.php on line 52
Кстати, лог находится в файле /includes/work/oscommerce_errors.log.
Рекомендую его регулярно проверять и удалять.
Как оказалось, ошибка кроется в функции resize (см. /admin/includes/classes/image.php).
Давайте рассмотрим эту функцию более подробно:
function resize($image, $group_id) {
if (osc_empty(CFG_APP_IMAGEMAGICK_CONVERT) || !file_exists(CFG_APP_IMAGEMAGICK_CONVERT)) {
return $this->resizeWithGD($image, $group_id);
}
...
exec(escapeshellarg(CFG_APP_IMAGEMAGICK_CONVERT) . ' -resize ' ...
}
В случае если скрипт находит программу конвертации изображений, путь к которой расположен в константе CFG_APP_IMAGEMAGICK_CONVERT, то он пытается запустить эту программу. Если команда exec отключена, то происходит ошибка.
Вот исправленный вариант:
function resize($image, $group_id) {
if (exec('echo EXEC') != 'EXEC' || osc_empty(CFG_APP_IMAGEMAGICK_CONVERT) || !file_exists(CFG_APP_IMAGEMAGICK_CONVERT)) {
return $this->resizeWithGD($image, $group_id);
}
...
}
На этом, пожалуй, пока все.
ЗЫ Оставайтесь голодными. Оставайтесь безрассудными. Всем большое спасибо (C)
