manuelles Update funktioniert nicht
-
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]
-
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 enthaltenenreadme.html
-Datei auf, bekomme ich einen Error 404 angezeigt – die Datei ist nicht da. Na sowas? Wo mag sie sein. dann habe ich einfach malwordpress/readme.html
eingegeben und … yes! da ist sie. Rufe ich hingegenwordpress/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:
- du hast früher auch die WordPress-Dateien in einem Unterverzeichnis
wordpress
gehabt, dann wäre es ja richtig, dass die Dateien jetzt auch inwordpress
liegen? Dann hättest du allerdings im darüberliegenden Web-Stammverzeichnis eine zusätzlicheindex.php
haben müssen, die auf das Verzeichniswordpress
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 Unterverzeichniswordpress
. Die Variante fällt also aus. - du hast statt die Dateien aus dem Verzeichnis
wordpress
zu übertragen, das ganze Verzeichniswordpress
übertragen. Ergebnis: Im Web-Stammverzeichnis liegen statt der WordPress-Dateien nur ein Verzeichniswordpress
, keineindex.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 Verzeichniswordpress
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.
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 Feldersiteurl
undhome
an die URL deiner lokalen Installation anpassen.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.
- du hast früher auch die WordPress-Dateien in einem Unterverzeichnis
- Das Thema „manuelles Update funktioniert nicht“ ist für neue Antworten geschlossen.