注: この問題は、SUPEE-6788パッチを受け取ったMagentoのすべてのバージョンに当てはまるようです。私の答えでは、パッチを成功させるには両方 .htaccess
を.htaccess.sample
復元する必要があることがわかります。
magentocommerce.com/downloadsが提供するシェルスクリプトを使用して、CE 1.7.0.2サイトにSUPEE-6788パッチを適用する作業を行っています。このサイトには、以前のセキュリティパッチがすべて適用されています。
スクリプトの名前はPATCH_SUPEE-6788_CE_1.7.0.2_v1-2015-10-27-12-00-16.sh
md5sumですcfc0cf533fe36a5f573414f0feeb1590
(このパッチは、圧縮されていない状態でリリースされたという点で異常でしたが、ファイルは破損または切り捨てられていないようです)。
このスクリプトを実行すると、含まれているパッチの少なくとも1つが失敗したかスキップされたが、パッチの多くの部分が成功したが、git
変更が表示されていないことを示すコンソール出力が表示されます。このスクリプトは、同じコードベースを持つ2つの異なる環境でテストされています。1つはUbuntu GNOME 14.04 LTSワークステーション、もう1つはnexcess.com共有サーバー(CentOSを実行)です。
興味深いのは、2つの環境での出力がわずかに異なることです。「checking」と「patching」で始まる行に注意してください。
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
-Fileの後にファイルの末尾に正確に1つの空の改行があることを確認します#FileETag none
。また、.htaccess.sample
ファイルの最後には2つの空の改行が必要です。