Вот краткое изложение того, с чем я (и другие) сталкивался до сих пор, я пытаюсь сохранить его сортированным, не стесняйтесь добавлять или связывать все, что отсутствует, пост вики-сообщества:
Причины неудачного патча
Если вы видите «ОШИБКА: исправление не может быть успешно применено / отозвано», найдите в сообщениях журнала «Hunk # 1 FAILED», чтобы проверить, в каком файле произошел сбой исправления.
- Очевидно, v2 патча для Magento 1.7 ожидает появления SUPEE-3941, хотя он существует только для Magento 1.8 и 1.9 . Если вы используете Magento 1.7 и видите ошибки, связанные с файлами
downloader
, загрузите SUPEE-3941 для 1.8 и примените его на 1.7, это должно работать. Смотрите ветку комментариев здесь: Security Patch SUPEE 8788 проблема
В версиях Magento, в которых ранее применялся SUPEE-1533, исправление не выполняется, app/code/core/Mage/Adminhtml/controllers/DashboardController.php
поскольку на файл влияют оба исправления, а SUPEE-8788 (неверно!) Предполагает наличие незапатченной версии. Это все еще верно для версии 2 патча! Версия 2 включает в себя изменения по сравнению с SUPEE-1533, поэтому, если вы установили его ранее, вам все равно придется отменить его, но впоследствии вам не придется применять его снова вручную.
Если вы удалили или переименовали каталог «Загрузчик», исправление не будет выполнено, так как оно исправляет файл в Загрузчике. Самый простой обходной путь - восстановить исходный каталог загрузчика, применить исправление, а затем снова удалить каталог. Кроме того, вы также можете удалить инструкции для downloader/lib/Mage/HTTP/Client/Curl.php
патча.
Другие сообщения «Hunk FAILED» обычно связаны с изменениями в основных файлах или отсутствием предыдущих исправлений. Убедитесь, что все предыдущие исправления для вашей версии Magento установлены, и вы не вносили изменения в основные файлы.
Другая распространенная проблема заключается в том, что исправление не может удалить .swf
файлы из-за их двоичного содержимого. Ошибка будет выглядеть так:
checking file skin/adminhtml/default/default/media/uploaderSingle.swf
Reversed (or previously applied) patch detected! Assume -R? [n]
Apply anyway? [n]
Skipping patch.
1 out of 1 hunk ignored
или как это
Patching file skin/adminhtml/default/default/media/uploader.swf using Plan A...
No such line 2 in input file, ignoring
Empty context always matches.
Hunk #1 failed at 0.
1 out of 1 hunks failed while patching skin/adminhtml/default/default/media/uploader.swf
Hmm... The next patch looks like a unified diff to me...
The text leading up to this was:
--------------------------
или вот так:
Checking if patch can be applied/reverted successfully...
/bin/patch: **** malformed patch at line 5790: ?rM]M??????&X㔮??v??Q;r?N?qJ??Y???I0?Y??4??'?????9?.??X?Ǒ?{??ax!G???I???q?u|????թ??????|
h??o?V@??|? ?g?H aꪭ??Ю???,I"?ğ????.?? yI?I\????)?X?
?p???*?e?q?K8<DqD?H;|?
ERROR: Patch can't be applied/reverted successfully.
Возможные решения приведены в этом ответе @infabo. Загрузка патча непосредственно в систему, где я хочу его применить, с помощью curl, как описано в https://gist.github.com/piotrekkaminski/9bc45ec84028611d621e, всегда работала для меня, за исключением случаев, когда я пробовал его на Cygwin.
Усовершенствованный способ справиться с ошибочными исправлениями: @PeterOCallaghan предложил закомментировать строку пробного запуска и вручную обработать файлы * .rej. Таким образом, исправление может быть применено частично, и если не удастся удалить SWF-файлы, вы можете сделать это вручную. Или, если не удается обновить файлы, downloader
потому что вы удалили этот каталог, вы можете просто проигнорировать это.
vi PATCH_SUPEE-8788_CE_1.8.1.0_v1-2016-10-11-06-54-44.sh
(или аналогичное имя файла) изменить, _apply_revert_patch dry-run
чтобы выглядеть как
#_apply_revert_patch dry-run
запустите патч, выполнив ./PATCH_SUPEE-8788_CE_1.8.1.0_v1-2016-10-11-06-54-44.sh
Это будет исправлять ваши файлы
Комментарий _apply_revert_patch
к#_apply_revert_patch
запустите патч снова, чтобы добавить app/etc/app/etc/applied.patches.list
запись
grep для всех файлов .rej с
git status | grep *.rej
вручную работать в этих изменениях
Проблемы после применения патча
Ключи формы
Для версий Magento до 1.8 есть изменения в frontend/base/default
шаблонах. Убедитесь, что вы вручную применяете те же изменения в своей теме, если она переопределяет эти файлы
Более конкретно, ключ формы был добавлен для таких действий внешнего интерфейса, как:
- Удаление элемента из списка желаний
- Удаление адреса клиента из представления магазина
- Обновление цитаты в вашей корзине
Посмотрите этот ответ @LukeRogers, если у вас возникнут проблемы с этими действиями.
Пользовательский загрузчик
Unirgy_Rapidflow и другие расширения с пользовательскими формами загрузки больше не работают.
Смотрите этот ответ @mpchadwick и комментарий @lloiacono
Я установил его, заменив $this->getUploader()->getConfig()
с $this->getUploader()->getUploaderConfig()
вUnirgy_RapidFlow_Block_Adminhtml_Profile_Edit_Tab_Upload
Чтобы выяснить, использует ли это какое-либо из ваших расширений, вы можете запустить в командной строке следующее:
grep -R 'getUploader()->getConfig();' app/code/community
Сообщения об ошибках
Неустранимая ошибка PHP: вызов неопределенной функции hash_equals ()
произойдет , если вы находитесь на версии PHP до 5.6 и переопределить code/core/Mage/core/functions.php
в code/local/Mage/core/functions.php
(который может быть случай , если вы используете расширения Fishpig). Смотрите этот ответ @ClaudiuCreanga
Проблемы, решаемые в v2 патча
Если вы столкнулись с какой-либо из этих проблем, вы, вероятно, используете версию 1 патча («v1» в имени файла). Загрузите патч снова, чтобы получить «v2», который исправляет эти проблемы:
Возникла проблема совместимости с SUPEE-3941 и downloader/lib/Mage/HTTP/Client/Curl.php
«Исключение» с сообщением «Неподдерживаемый тип данных N» в /lib/Unserialize/Reader/ArrValue.php
Патч для EE 1.14.2.0 случайно содержит новый файл test_oauth.php, который вы должны удалить! Смотрите этот ответ @MatthiasZeis