Magento-Sicherungsversuch - Wirft jetzt eine Fehlerseite für 500 interne Server

7

Ich habe versucht, eine Sicherungskopie von Magento über Admin-> System-> Tools zu erstellen. Als ich auf Systemsicherung klickte, zeigte mir die Website Folgendes:

interner Serverfehler

Der Server hat einen internen Fehler oder eine Fehlkonfiguration festgestellt und konnte Ihre Anforderung nicht ausführen.

Bitte wenden Sie sich an den Serveradministrator, [email protected], und informieren Sie ihn über den Zeitpunkt des Fehlers und über alles, was Sie möglicherweise getan haben, um den Fehler zu verursachen.

Weitere Informationen zu diesem Fehler finden Sie möglicherweise im Serverfehlerprotokoll.

Darüber hinaus ist beim Versuch, ein ErrorDocument zur Bearbeitung der Anforderung zu verwenden, ein Fehler mit 500 internen Servern aufgetreten.

Apache Server bei ***. Com Port 80

Jetzt lädt jede Seite den gleichen Fehler.

Bitte helfen Sie.

7ochem
quelle
1
Geben Sie den aufgetretenen Fehler an (überprüfen Sie Ihre Apache / PHP-Protokolle, z. B. /var/log/apache2/error.log)

Antworten:

8

Hinweis: Weitere Informationen zum Magento-Code, der das Problem verursacht, und zur Bereinigung finden Sie hier ...

Das Magento-Sicherungssystem ab Version 1.6 verfügt über eine unglückliche Funktion, mit der bestimmte Datei- / Ordnerberechtigungen geändert werden, die dann möglicherweise gegen Sicherheitsmaßnahmen wie SuExec-, SuPHP- oder cPanel WHM-Einstellungen verstoßen.

Der Root-Fehler, der eine 500-Fehler-Seite verursacht, wird im Server-Protokoll angezeigt. Das Serverfehlerprotokoll sollte in Ihrem cPanel oder in einem Protokollordner in Ihrem Kontoordner verfügbar sein. Wenn nicht, können Sie sich an Ihren Hosting-Anbieter wenden, um zu erfahren, welche Fehler für den 500-Fehler aufgezeichnet werden.

Das Löschen des 500-Fehlers ist häufig so einfach wie das Verwenden von WinSCP zum Ändern von Berechtigungen. Die abscheuliche und dumme Änderung besteht häufig darin, dass index.phpin Ihrem Magento-Stammordner Berechtigungen von 666 (von allen lesbar und beschreibbar) anstelle der Berechtigungen 644 oder 664 erteilt werden, die die Systemsicherheitsprüfungen nicht verletzen. Suchen Sie auch nach einer Datei in Ihrem Magento-Stammverzeichnis maintenance.flagund löschen Sie sie.

Im schlimmsten Fall kann die Sicherung alle Datei- / Ordnerberechtigungen ändern. Anschließend müssen Sie ein Skript ausführen, um die Ordnerberechtigungen auf 755 und die Dateiberechtigungen auf 644 zu ändern.

Magentocommerce-Hilfeseite zum Festlegen von Dateiberechtigungen

Angesichts der Tatsache, dass Magento An e-Bay Inc. Company zugelassen hat, dass einige Seiten auf ihrer Website nicht mehr existieren, wird das Fleisch des betreffenden Themas hier auf Link-Rot-Proof übertragen. Für Magento 1.5+ wie folgt:

So setzen Sie Ihre Datei- und Verzeichnisberechtigungen zurück, wenn PHP über FastCGI, suPHP oder LSAPI ausgeführt wird:

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

YMMV je nach Hosting - Provider, Dateien und Verzeichnisse 664 775 KöNNTEN benötigt werden

Wenn PHP als Modul (DSO) ausgeführt wird, müssen Sie Folgendes tun:

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

Auf dieser Seite wird das Magento Cleanup Tool (solange es noch verfügbar ist) erwähnt, das als PHP-Skript ausgeführt wird. Mehrere Personen empfehlen, es nach jeder Magento Admin Panel-Systemsicherung auszuführen.

Der Weg dahin besteht natürlich darin, auf die Magento-Systemsicherung zu verzichten, bis sie behoben ist und eine kombinierte Tarball- / MySQLDump-Sicherung als manuelle Skriptoperation verwendet wird, oder ein anderes System einzurichten und Rsync zu verwenden und einen Cron-Skript-MySQL-Dump mit Cron-Skript auszuführen wird überfahren, wenn die rsync-Sicherung ausgeführt wird.

Fiasko-Labore
quelle
Bei der Verwendung können findSie diesen Vorgang (aufgrund des Dateivolumens) beschleunigen, indem Sie +anstelle von \;- Zum Beispiel:find . -type f -exec chmod 0644 {} +
ash
<b> 100% ige Lösung </ b> Ich habe die Administrationssicherung nach der Sicherung verwendet und 500 interne Serverfehler angezeigt. Ich habe Root-Zugriff Ich führe diese Befehle zu finden. -Typ f -exec chmod 644 {} \; finden . -Typ d -exec chmod 755 {} \; chmod 550 Magier
Sourav
2

Die Ursache für dieses Problem sind höchstwahrscheinlich Probleme mit Dateiberechtigungen aufgrund der Änderungen in Dateien und Verzeichnissen. Eine sehr schnelle und einfache Möglichkeit, dieses Problem zu beheben, besteht darin, das Magento-Bereinigungsskript auszuführen. Wenn dies nicht funktioniert, müssen Sie die Dateiberechtigungen manuell festlegen.

Speichern Sie den Code als PHP-Datei im Stammverzeichnis von Magento und führen Sie ihn aus.

<?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/>";

Manuelle Methode:

Manuelle Methode zum Festlegen von Dateipermossionen durch Magento

Fabian Blechschmidt
quelle
1
Bitte geben Sie den Inhalt des Pastebins in der Antwort an, da der Pastebin wahrscheinlich irgendwann verschwinden wird.
Philwinkle
2

In einigen Fällen haben Sie keinen Zugriff (oder keinen ROOT (sudo)). SSHIch habe also Folgendes getan:

Gehen Sie zu Ihrem cPanel -> File Managerund ändern Sie alle Dateien und Ordner in 755, dann können Sie arbeiten.

Laden Sie dann das herunter Magento cleanup tool, laden Sie es in Ihr rootVerzeichnis hoch und greifen Sie über Ihren Browser darauf zu. Es werden alle Permisionen gereinigt.

Hoffe es wird helfen.

Prost :)

Artur Regen
quelle
2

Danke für all die Hilfe. Ich habe es einfach mit FileZilla FTP behoben. Ich habe gerade den Stammordner für Magento ausgewählt und die Berechtigungen für alle Dateien geändert, und es wurde automatisch ausgeführt. Keine Ausführung von Skripten erforderlich.

FileZilla bietet auch die Möglichkeit, alle Ordnerberechtigungen automatisch zu ändern.

Ich hoffe es hilft.

Fahad
quelle
-1

Vielleicht irre ich mich, aber bitte versuchen Sie es.

Löschen Sie einfach die Temperamentdatei "wartung.flag" aus dem Stammverzeichnis, dann funktioniert Ihre Website wieder.

Hoffe das wird dir helfen :)

Mustafa
quelle