Support » Installation » manuelles Update funktioniert nicht

  • Gelöst yazzys

    (@yazzys)


    Hallo,

    ich habe ein WordPress-Update durchgeführt, hat auch, soweit ich mich erinnere, funktioniert. Aber dann war oben in der Seite ein Button, das ein automatisches Update nicht funktioniert hat. Ich habe auf den Button geklickt und danach war meine Seite nicht mehr aufrufbar.
    Nun habe ich nach dieser Anleitung https://pixolin.de/alte-wordpress-installation-manuell-aktualisieren/ eine manuelle WordPressinstallation vorgenommen, bis Punkt 9. Ich kann weiterhin nicht auf meine Seite zugreifen. In den Errorfiles beim Hoster stand was wegen der htaccess-Datei. Also habe ich diese neu erstellt nach dieser Anleitung und ausgetauscht.
    Ich kann immer noch nicht auf mein WordPress zugreifen, jetzt lautet die Fehlermeldung in den Errorfiles: `[autoindex:error] [pid 26829] [client 2001:4dd6:2e3e:0:3160:fc99:6517:c3fd] [host http://www.zwickerbussi.de] AH01276: Cannot serve directory /is/htdocs/wp1168671_31VU1V3TXY/www/: No matching DirectoryIndex (index.html,index.htm,index.shtml,index.php,index.php4,index.php5,index.wml) found, and server-generated directory index forbidden by Options directive
    [Sat Feb 12 20:33:17 2022] [php7:error] [pid 26974] [client 37.75.131.172] [host zwickerbussi.de] script ‚/is/htdocs/wp1168671_31VU1V3TXY/www/xmlrpc.php‘ not found or unable to stat`
    Was ist jetzt noch falsch? Zu dem Thema finde ich leider nichts.
    Ich freue mich sehr über jeden Tipp.

    Die Seite, für die ich Hilfe brauche: [Anmelden, um den Link zu sehen]

Ansicht von 5 Antworten - 1 bis 5 (von insgesamt 5)
  • Fangen wir mal mit der Fehlermeldung an:

    No matching DirectoryIndex (index.html,index.htm,index.shtml,index.php,index.php4,index.php5,index.wml) found, and server-generated directory index forbidden by Options directive

    bedeutet, dass in deinem Verzeichnis mit den Web-Dateien (Web-Stammverzeichnis) keine index.php (oder ähnliche Index-Datei) gefunden wurde.

    Kleiner Ausflug in die Steinzeit des Internets: Universitäten wollten über das Internet mehrseitige Forschungsbegriffe veröffentlichen. Damit ein Besucher sich erst einmal einen Überblick verschaffen konnte, sollte jedes Verzeichnis eine Inhaltsangabe (englisch: Index) haben. Sollte jemand vergessen haben, eine Inhaltsangabe zu erstellen, sollte automatisch eine Auflistung aller Dateien erfolgen („server-generated directory index“). Das hat sich aber als problematisch erwiesen, weil Angreifer dann viel mehr Informationen sammeln können, als manchem Webseitenbetreiber lieb ist. Deshalb wird diese Funktionalität von den meisten Webhostern abgeschaltet. Gibt’s keine index.php, wird einfach eine Fehlermeldung ausgegeben.

    Bleibt also die Frage: wieso ist denn da keine index.php im Web-Stammverzeichnis. Fehlen vielleicht alle WordPress-Dateien? Rufe ich die in jeder WordPress-Installation enthaltenen readme.html-Datei auf, bekomme ich einen Error 404 angezeigt – die Datei ist nicht da. Na sowas? Wo mag sie sein. dann habe ich einfach mal wordpress/readme.html eingegeben und … yes! da ist sie. Rufe ich hingegen wordpress/index.php auf, erhalte ich einen „White Screen of Death“ (Webseite ist tot, verrät aber nicht warum).

    Jetzt gibt es zwei mögliche Szenarien:

    1. du hast früher auch die WordPress-Dateien in einem Unterverzeichnis wordpress gehabt, dann wäre es ja richtig, dass die Dateien jetzt auch in wordpress liegen? Dann hättest du allerdings im darüberliegenden Web-Stammverzeichnis eine zusätzliche index.php haben müssen, die auf das Verzeichnis wordpress verweist. Hast du das denn früher so gemacht? Schnell in Google nach der Website gesucht, die Website im „Cache“ aufgerufen, Quellcode untersucht – nee, da war nie ein Unterverzeichnis wordpress. Die Variante fällt also aus.
    2. du hast statt die Dateien aus dem Verzeichnis wordpress zu übertragen, das ganze Verzeichnis wordpress übertragen. Ergebnis: Im Web-Stammverzeichnis liegen statt der WordPress-Dateien nur ein Verzeichnis wordpress, keine index.php (siehe oben) und dein Webserver weiß nicht, was er damit anfangen soll. Lösung: per FTP auf dem Webserver alle Dateien und (Unter-)Verzeichnisse aus dem Verzeichnis wordpress in das Verzeichnis darüber verschieben.

    Bleibt noch die Frage, was du mit der .htaccess machst, die wohl fehlerhaft war. Lösung hier: löschen! Dann neue, leere Datei .htaccess anlegen, in WordPress anmelden, in Einstellungen > Permalinks die gewünschte Permalinkform auswählen und speichern. Achte darauf, ob du einen Hinweis bekommst, dass du etwas manuell in der .htaccess eintragen sollst (dann stimmen die Dateirechte der Datei nicht). In dem Fall solltest du die Dateirechte der .htaccess prüfen, auf 644 ändern und die Einstellung der Permalinks wiederholen.

    Zuletzt noch ein wichtiger Hinweis: Backups! Backups sind so wichtig, insbesondere bevor du Updates vornimmst. Wenn dann etwas schief läuft, kannst du zumindest erst einmal die Website wiederherstellen, ohne Panik zu bekommen. Bonus-Tipp: dein Webhoster hat mit großer Wahrscheinlichkeit ebenfalls ein Backup. Das hilft, wenn alle Stricke reißen.

    Thread-Starter yazzys

    (@yazzys)

    DANKE!!!!!!
    Hast du den Stein gehört, der von meinem Herzen gefallen ist?
    Niemals wäre ich darauf gekommen.
    Übrigens, Backups mache ich IMMER. Allerdings habe ich sie noch nie gebraucht und wie ich jetzt beim Stöbern sehe, mache ich sie wohl auch nicht richtig. Ich mache ein Backup aus WordPress heraus und sichere zusätzlich die wp-content Datei.

    Ein Backup, das sich nicht wiederherstellen lässt, ist kein Backup. 🙂

    Es gibt viele Anwender, die nur wp-content, wp-config.php und .htaccess sichern, weil sich (wie du gerade beim manuellen Update festgestellt hast) die WordPress-Dateien jederzeit neu herunterladen lassen. Und die Datenbank natürlich nicht vergessen!

    Bonus-Tipp: installiere eine lokale Testumgebung (z.B. Local-WP) und schau, ob es dort mit der Wiederherstellung eines Backup klappt. Du musst dann aber in der Datenbank-Tabelle wp_options die Felder siteurl und home an die URL deiner lokalen Installation anpassen.

    Thread-Starter yazzys

    (@yazzys)

    Danke für die Tipps.
    Jetzt werde ich mich erst mal um die weiteren Baustellen kümmern. Irgendwas stimmt mit dem Zertifikat nicht. Wobei ich weder weiß, was ein Zertifikat ist, noch was es tut. Und meine Mailadressen lassen sich auch nicht ändern. Na, für heute bin ich erst mal sehr zufrieden 🙂

    Wenn ich deine Webseite per http abrufe, werden alle Inhalte im Klartext übertragen. Nehmen wir an, du hast für Beiträge Kommentare erlaubt und ich nutze gerade das W-LAN in einem Fernzug. Mein Kommentar, meine E-Mail-Adresse, mein Name – kurz, alles, was ich eingebe – kann von jedem, der im selben W-LAN ist mit einem entsprechenden Programm mitgelesen werden. Das ist nicht schön.

    Überträgst du deine Webseiten per https (mit „s“ wie „secure“), wird alles verschlüsselt und jeder, der mal eben mitlesen will, was ich da so schreibe, sieht nur noch Buchstabensalat einer verschlüsselten Nachricht.

    Zu einer Verschlüsselung brauchst du zunächst einen (digitalen) Schlüssel. Das nennt sich bei Webservern SSL-Zertifikat (eine veraltete, aber immer noch übliche Bezeichnung für einen digitalen Schlüssel für die Übertragung mit „Transport Layer Security“ – es wird hier viel zu technisch …) und muss vom Webhoster im Webserver eingetragen werden. Früher waren solche Zertifikate teuer, inzwischen bieten viele Webhoster ein kostenloses Zertifikat von Let’s Encrypt an. Wurde das installiert, kannst du deine Webseiten auch mit https://… aufrufen.

    Damit deine gesamte Website auf https umgestellt wird, gehst du nach Einrichtung des SSL-Zertifikats auf Werkzeuge > Website-Zustand und folgst dem Hinweis, dass deine Website noch kein https verwendet. Button anklicken, fertig.

    Sicher möchtest du nun vermeiden, dass du dich versehentlich weiter per http anmeldest und so auf einmal die Zugangsdaten (!) in falsche Hände geraten. Dazu trägst du in der wp-config.php oberhalb von /* That's all, stop editing! Happy blogging. */ folgende Zeile ein:

    define( 'FORCE_SSL_ADMIN', true );

    Deine Webseitenbesucher können allerdings immer noch hartnäckig http eingeben und streng genommen sind deine Inhalte jetzt auch noch unter zwei verschiedenen URL erreichbar. Um Besucher (und Suchmaschinen) automatisch auf die sicherere, verschlüsselte URL umzuleiten, kannst du per FTP in der Datei .htaccess oberhalb des von WordPress eingefügten Blocks folgendes hinzufügen:

    RewriteEngine On
    RewriteCond %{HTTPS} off
    RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]

    Und das ist schon das ganze Geheimnis. Du brauchst dafür nicht mal ein Plugin.

Ansicht von 5 Antworten - 1 bis 5 (von insgesamt 5)
  • Das Thema „manuelles Update funktioniert nicht“ ist für neue Antworten geschlossen.