Magentoバックアップを試みた-500内部サーバーエラーページがスローされるようになった


7

MagentoのバックアップをAdmin-> System-> Toolsで撮ってみましたが、System Backupをクリックすると、ウェブサイトに表示されました-

内部サーバーエラー

サーバーで内部エラーまたは設定ミスが発生し、リクエストを完了できませんでした。

サーバー管理者(webmaster@dnuvo.com)に連絡して、エラーが発生した時刻と、エラーの原因となった可能性があることを通知してください。

このエラーの詳細については、サーバーエラーログを参照してください。

さらに、ErrorDocumentを使用してリクエストを処理しようとしたときに、500内部サーバーエラーエラーが発生しました。

***。comポート80のApacheサーバー

現在、すべてのページが同じエラーをロードしています。

助けてください。


1
発生したエラーを提供します(/var/log/apache2/error.logなどのapache / phpログを確認してください)

回答:


8

注: 問題を引き起こすMagentoコードの詳細と、ここでクリーンアップする方法...

1.6以降のMagentoバックアップシステムには、SuExec、SuPHP、cPanel WHM設定などのセキュリティ対策に違反する可能性のある特定のファイル/フォルダーの権限を変更するという残念な機能があります。

500エラーページを引き起こすルートエラーは、サーバーログに表示されます。サーバーエラーログは、cPanelまたはアカウントフォルダーのログフォルダーにあります。そうでない場合は、ホスティングプロバイダーに連絡して、500エラーのどのエラーが記録されているかを伝えることができます。

多くの場合、500エラーのクリアは、WinSCPを使用してアクセス許可を変更するのと同じくらい簡単です。Magentoのルートフォルダーには、システムのセキュリティチェックに違反しない644または664のアクセス許可ではなく、666(すべてのユーザーが読み取りおよび書き込み可能)のアクセス許可が与えられるというindex.php、下品で愚かな変更がよくあります。また、呼び出されたmagentoルートのファイルを確認して削除します。maintenance.flag

最悪のシナリオでは、バックアップによってすべてのファイル/フォルダーのアクセス許可が変更される可能性があるため、スクリプトを実行してフォルダーのアクセス許可を755に、ファイルのアクセス許可を644に変更する必要があります。

ファイルの権限を設定するためのMagentocommerceヘルプページ

ことを考えるとMagentoのAnはE-ベイ株式会社当社は、リンク腐朽証拠に、ここで対象の肉を転送し、一部のページが自分のウェブサイト上で存在を中止することができました。Magento 1.5以降の場合:

PHPがFastCGI、suPHP、またはLSAPIを介して実行されている場合に、ファイルとディレクトリの権限をリセットする方法は次のとおりです。

find . -type f -exec chmod 644 {} \;
find . -type d -exec chmod 755 {} \;
chmod 550 mage

YMMVホスティングプロバイダによっては、ファイル664とディレクトリ775はMAY必要とします

PHPがモジュール(DSO)として実行されている場合は、次のようにする必要があります。

sudo find . -type f -exec chmod 644 {} \;
sudo find . -type d -exec chmod 755 {} \;
sudo chmod o+w var app/etc
sudo chmod 550 mage
sudo chmod -R o+w media

そのページには、phpスクリプトとして実行されるMagento Cleanup Tool(まだ使用可能な場合)が記載されています。Magento管理パネルのシステムバックアップのたびに実行することを推奨する人もいます。

もちろん、それを回避する方法は、Magentoシステムバックアップを修正してそれを修正し、tarball / mysqldumpを組み合わせたバックアップを手動のスクリプト操作として使用するか、別のシステムをセットアップしてrsyncを使用し、cronスクリプトでgzipped mysqlダンプを実行することです。 rsyncバックアップの実行時にプルされます。


を使用findする場合は、次の+代わりに使用することで、このプロセスを高速化できます(ファイルの量により)\;-例:find . -type f -exec chmod 0644 {} +
ash

<b> 100%ソリューション</ b>バックアップ後に500内部サーバーエラーが表示された後、管理者バックアップを使用しました。rootアクセス権があるので、これらのコマンドを実行して検索します。-type f -exec chmod 644 {} \; 見つける -type d -exec chmod 755 {} \; chmod 550メイジ
Sourav

2

この問題の原因は、ほとんどの場合、ファイルとディレクトリの変更によるファイル許可の問題です。この問題を克服する非常に迅速で簡単な方法は、Magentoクリーンアップスクリプトを実行することです。それが機能しない場合は、ファイルの権限を手動で設定する必要があります。

MagentoのルートディレクトリにコードをPHPファイルとして保存して実行します。

<?php

## Function to set file permissions to 0644 and folder permissions to 0755

function AllDirChmod( $dir = "./", $dirModes = 0755, $fileModes = 0644 ){
   $d = new RecursiveDirectoryIterator( $dir );
   foreach( new RecursiveIteratorIterator( $d, 1 ) as $path ){
      if( $path->isDir() ) chmod( $path, $dirModes );
      else if( is_file( $path ) ) chmod( $path, $fileModes );
  }
}

## Function to clean out the contents of specified directory

function cleandir($dir) {

    if ($handle = opendir($dir)) {
        while (false !== ($file = readdir($handle))) {
            if ($file != '.' && $file != '..' && is_file($dir.'/'.$file)) {
                if (unlink($dir.'/'.$file)) { }
                else { echo $dir . '/' . $file . ' (file) NOT deleted!<br />'; }
            }
            else if ($file != '.' && $file != '..' && is_dir($dir.'/'.$file)) {
                cleandir($dir.'/'.$file);
                if (rmdir($dir.'/'.$file)) { }
                else { echo $dir . '/' . $file . ' (directory) NOT deleted!<br />'; }
            }
        }
        closedir($handle);
    }

}

function isDirEmpty($dir){
     return (($files = @scandir($dir)) && count($files) <= 2);
}

echo "----------------------- CLEANUP START -------------------------<br/>";
$start = (float) array_sum(explode(' ',microtime()));
echo "<br/>*************** SETTING PERMISSIONS ***************<br/>";
echo "Setting all folder permissions to 755<br/>";
echo "Setting all file permissions to 644<br/>";
AllDirChmod( "." );
echo "Setting pear permissions to 550<br/>";
chmod("pear", 550);

echo "<br/>****************** CLEARING CACHE ******************<br/>";

if (file_exists("var/cache")) {
    echo "Clearing var/cache<br/>";
    cleandir("var/cache");
}

if (file_exists("var/session")) {
    echo "Clearing var/session<br/>";
    cleandir("var/session");
}

if (file_exists("var/minifycache")) {
    echo "Clearing var/minifycache<br/>";
    cleandir("var/minifycache");
}

if (file_exists("downloader/pearlib/cache")) {
    echo "Clearing downloader/pearlib/cache<br/>";
    cleandir("downloader/pearlib/cache");
}

if (file_exists("downloader/pearlib/download")) {
    echo "Clearing downloader/pearlib/download<br/>";
    cleandir("downloader/pearlib/download");
}

if (file_exists("downloader/pearlib/pear.ini")) {
    echo "Removing downloader/pearlib/pear.ini<br/>";
    unlink ("downloader/pearlib/pear.ini");
}

echo "<br/>************** CHECKING FOR EXTENSIONS ***********<br/>";
If (!isDirEmpty("app/code/local/")) {
    echo "-= WARNING =- Overrides or extensions exist in the app/code/local folder<br/>";
}
If (!isDirEmpty("app/code/community/")) {
    echo "-= WARNING =- Overrides or extensions exist in the app/code/community folder<br/>";
}
$end = (float) array_sum(explode(' ',microtime()));
echo "<br/>------------------- CLEANUP COMPLETED in:". sprintf("%.4f", ($end-$start))." seconds ------------------<br/>";

手動による方法:

Magento設定ファイルのパーミッションの手動による方法


1
ペーストビンはいつかなくなる可能性があるため、回答にペーストビンの内容を記入してください。
philwinkle 2013年

2

場合によっては、へのアクセス権がない(またはROOT(sudo)がない)ためSSH、私がしたことは次のとおりです。

に移動し、cPanel -> File Managerすべてのファイルとフォルダをに変更すると755、作業できるようになります。

次に、をダウンロードMagento cleanup toolしてrootディレクトリにアップロードし、ブラウザからアクセスします。それはすべての許可をきれいにします。

お役に立てれば幸いです。

乾杯:)


2

助けてくれてありがとう。FileZilla FTPを使用して簡単に修正しました。magentoのルートフォルダーを選択し、すべてのファイルのアクセス許可を変更するだけで、自動的に実行されました。スクリプトの実行は必要ありません。

FileZillaには、すべてのフォルダーのアクセス許可を自動的に変更するオプションもあります。

それが役に立てば幸い。


-1

間違っているかもしれませんが、お試しください。

ルートディレクトリから一時ファイル "maintenance.flag"を削除するだけで、Webサイトが正常に動作します。

これがあなたに役立つことを願っています:)

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.