Примітка: Ця проблема, схоже, стосується всіх версій Magento, які отримали патч SUPEE-6788. У моїй відповіді ви побачите, що для успіху виправлення потрібно відновити і те, і інше ..htaccess
.htaccess.sample
Я працюю над застосуванням патчу SUPEE-6788 до сайту CE 1.7.0.2, використовуючи сценарій оболонки, наданий magentocommerce.com/downloads . На сайті застосовано всі попередні виправлення безпеки.
У імені сценарію PATCH_SUPEE-6788_CE_1.7.0.2_v1-2015-10-27-12-00-16.sh
є md5сум cfc0cf533fe36a5f573414f0feeb1590
(цей патч був незвичним тим, що він був випущений нестисненим - хоча файл не видається пошкодженим або усіченим).
Під час запуску цього скрипту з'являється вихід консолі, який вказує на те, що принаймні один із включених патчів не вдався або був пропущений, але що багато частин виправлення були успішними, проте git
не показує змін. Сценарій був протестований у двох різних середовищах з однаковою базою даних коду - одна робоча станція Ubuntu GNOME 14.04 LTS, інша спільний сервер nexcess.com (працює CentOS).
Цікавим є той факт, що вихід у двох середовищах дещо відрізняється. Зверніть увагу на лінії, що починаються з "перевірки" проти "виправлення".
Зразок виходу з середовища Ubuntu:
bash PATCH_SUPEE-6788_CE_1.7.0.2_v1-2015-10-27-12-00-16.sh [19:27:10]
Checking if patch can be applied/reverted successfully...
ERROR: Patch can't be applied/reverted successfully.
checking file .htaccess
Hunk #1 FAILED at 207.
1 out of 1 hunk FAILED
can't find file to patch at input line 38
Perhaps you used the wrong -p or --strip option?
The text leading up to this was:
--------------------------
|diff --git .htaccess.sample .htaccess.sample
|index 546f18e..3e79c77 100644
|--- .htaccess.sample
|+++ .htaccess.sample
--------------------------
File to patch:
Skip this patch? [y]
Skipping patch.
1 out of 1 hunk ignored
checking file app/code/core/Mage/Admin/Model/Block.php
checking file app/code/core/Mage/Admin/Model/Resource/Block.php
checking file app/code/core/Mage/Admin/Model/Resource/Block/Collection.php
checking file app/code/core/Mage/Admin/Model/Resource/Variable.php
checking file app/code/core/Mage/Admin/Model/Resource/Variable/Collection.php
checking file app/code/core/Mage/Admin/Model/Variable.php
...
Зразок із середовища CentOS:
bash PATCH_SUPEE-6788_CE_1.7.0.2_v1-2015-10-27-12-00-16.sh
Checking if patch can be applied/reverted successfully...
ERROR: Patch can't be applied/reverted successfully.
patching file .htaccess
Hunk #1 FAILED at 207.
1 out of 1 hunk FAILED -- saving rejects to file .htaccess.rej
can't find file to patch at input line 38
Perhaps you used the wrong -p or --strip option?
The text leading up to this was:
--------------------------
|diff --git .htaccess.sample .htaccess.sample
|index 546f18e..3e79c77 100644
|--- .htaccess.sample
|+++ .htaccess.sample
--------------------------
File to patch:
Skip this patch? [y]
Skipping patch.
1 out of 1 hunk ignored
patching file app/code/core/Mage/Admin/Model/Block.php
patching file app/code/core/Mage/Admin/Model/Resource/Block.php
patching file app/code/core/Mage/Admin/Model/Resource/Block/Collection.php
patching file app/code/core/Mage/Admin/Model/Resource/Variable.php
...
Я буду розбиратися в помилці у верхній частині результату і, можливо, застосувати виправлення вручну - але сподівався, що хтось може зрозуміти причину чи порівняно просте виправлення.
.htaccess
у файлу -файла є рівно 1 порожній новий рядок в кінці файлу після #FileETag none
. А у .htaccess.sample
Файлі має бути два порожніх рядки на кінці файлу.