• Hallo,

    wir betreiben aktuell ca. 70 Websites mit WordPress und seit der Version 6.6 haben alle das gleiche Problem: Die automatischen Updates funktionieren nicht mehr, wenn eine SSH2-Verbindung genutzt wird (PHP-Version ist 8.2). Dabei ist es egal, ob wir die in WordPress integrierte Aktualisierung verwenden oder ein Drittanbietertool wie den Easy Updates Manager.

    Die Updates können problemlos manuell angestoßen werden. Nur die automatische Aktualisierung ist betroffen. An dem Punkt, wo die Aktualisierung eigentlich stattfinden müsste, wird der Counter wieder auf 12 Stunden zurückgesetzt, ohne dass etwas passiert ist.

    Wenn wir die WordPress-eigene Funktion nutzen, bekommen wir in den Logs keinerlei Error-Meldungen. Der Easy-Updates-Manager spuckt zumindest ein bisschen was aus:

    [16-Oct-2024 13:39:21 UTC] PHP Fatal error: Uncaught TypeError: ftp_nlist(): Argument #1 ($ftp) must be of type FTP\Connection, null given in /var/www/https/..at/wp/wp-admin/includes/class-wp-filesystem-ftpext.php:438

    Stack trace:
    #0 /var/www/https/***.***.at/wp/wp-admin/includes/class-wp-filesystem-ftpext.php(438): ftp_nlist()
    #1 /var/www/https/***.***.at/wp/wp-admin/includes/class-wp-filesystem-base.php(231): WP_Filesystem_FTPext->exists()
    #2 /var/www/https/***.***.at/wp/wp-admin/includes/class-wp-filesystem-base.php(58): WP_Filesystem_Base->find_folder()
    #3 /var/www/https/***.***.at/wp/wp-admin/includes/class-wp-upgrader.php(997): WP_Filesystem_Base->abspath()
    #4 /var/www/https/***.***.at/wp/wp-admin/includes/class-wp-automatic-updater.php(474): WP_Upgrader->maintenance_mode()
    #5 /var/www/https/***.***.at/wp/wp-admin/includes/class-wp-automatic-updater.php(676): WP_Automatic_Updater->update()
    #6 /var/www/https/***.***.at/wp/wp-includes/update.php(855): WP_Automatic_Updater->run()
    #7 /var/www/https/***.***.at/wp/wp-content/plugins/stops-core-theme-and-plugin-updates/includes/MPSUM_Admin_Ajax.php(1057): wp_maybe_auto_update()
    #8 /var/www/https/***.***.at/wp/wp-content/plugins/stops-core-theme-and-plugin-updates/includes/MPSUM_Admin_Ajax.php(144): MPSUM_Admin_Ajax->force_updates()
    #9 /var/www/https/***.***.at/wp/wp-includes/class-wp-hook.php(324): MPSUM_Admin_Ajax->ajax_handler()
    #10 /var/www/https/***.***.at/wp/wp-includes/class-wp-hook.php(348): WP_Hook->apply_filters()
    #11 /var/www/https/***.***.at/wp/wp-includes/plugin.php(517): WP_Hook->do_action()
    #12 /var/www/https/***.***.at/wp/wp-admin/admin-ajax.php(192): do_action() 13 {main} thrown in /var/www/https/***.***/wp/wp-admin/includes/class-wp-filesystem-ftpext.php on line 438

    Es wird also ein Wert nicht übergeben. Wir haben dann auch versucht define(‚FS_METHOD‘, ’ssh2′); zu nutzen. Aber auch da kommt es zu Fehlermeldungen:

    [16-Oct-2024 15:41:54 UTC] Automatic updates starting…
    [16-Oct-2024 15:41:54 UTC] Automatic plugin updates starting…
    [16-Oct-2024 15:41:54 UTC] Upgrading plugin ‚better-search-replace’…
    [16-Oct-2024 15:41:54 UTC] PHP Fatal error: Uncaught TypeError: ssh2_sftp_realpath(): Argument #1 ($sftp) must be of type resource, null given in /var/www/https/***.***/wp/wp-admin/includes/class-wp-filesystem-ssh2.php:304

    Stack trace:
    #0 /var/www/https/***.***.at/wp/wp-admin/includes/class-wp-filesystem-ssh2.php(304): ssh2_sftp_realpath()
    #1 /var/www/https/***.***.at/wp/wp-admin/includes/class-wp-filesystem-base.php(261): WP_Filesystem_SSH2->cwd()
    #2 /var/www/https/***.***.at/wp/wp-admin/includes/class-wp-filesystem-base.php(238): WP_Filesystem_Base->search_for_folder()
    #3 /var/www/https/***.***.at/wp/wp-admin/includes/class-wp-filesystem-base.php(58): WP_Filesystem_Base->find_folder()
    #4 /var/www/https/***.***.at/wp/wp-admin/includes/class-wp-upgrader.php(997): WP_Filesystem_Base->abspath()
    #5 /var/www/https/***.***.at/wp/wp-admin/includes/class-wp-automatic-updater.php(474): WP_Upgrader->maintenance_mode()
    #6 /var/www/https/***.***.at/wp/wp-admin/includes/class-wp-automatic-updater.php(676): WP_Automatic_Updater->update()
    #7 /var/www/https/***.***.at/wp/wp-includes/update.php(855): WP_Automatic_Updater->run()
    #8 /var/www/https/***.***.at/wp/wp-content/plugins/stops-core-theme-and-plugin-updates/includes/MPSUM_Admin_Ajax.php(1057): wp_maybe_auto_update()
    #9 /var/www/https/***.***.at/wp/wp-content/plugins/stops-core-theme-and-plugin-updates/includes/MPSUM_Admin_Ajax.php(144): MPSUM_Admin_Ajax->force_updates()
    #10 /var/www/https/***.***.at/wp/wp-includes/class-wp-hook.php(324): MPSUM_Admin_Ajax->ajax_handler() #11 /var/www/https/***.***.at/wp/wp-includes/class-wp-hook.php(348): WP_Hook->apply_filters()
    #12 /var/www/https/***.***.at/wp/wp-includes/plugin.php(517): WP_Hook->do_action()
    #13 /var/www/https/***.***.at/wp/wp-admin/admin-ajax.php(192): do_action() 14 {main} thrown in /var/www/https/***.***/wp/wp-admin/includes/class-wp-filesystem-ssh2.php on line 304

    Wir gehen inzwischen von einem Bug im WordPress-Core aus, aber wollen uns hier nochmal absichern, ob wir wirklich alle Möglichkeiten ausgeschöpft haben. Das Problem tritt auch auf, wenn wir WordPress auf einem Testserver komplett neu installieren.

    Die Nutzung von SSH2 ist uns sehr wichtig. Darauf wollen wir nicht verzichten und WordPress bietet das ja auch offiziell an. Wir haben das ganze nach dem Muster konfiguriert:

    define(‘FTP_METHOD’,’ssh2′);
    define(‘FTP_PUBKEY’,’/xxx/xxx/xxx.xx’);
    define(‘FTP_PRIKEY’,’/xxx/xxx/xxx.xx’);
    define(‘FTP_USER’,’xxxxxxxx’);
    define(‘FTP_PASS’,”);
    define(‘FTP_HOST’,’127.0.0.1:22′);

    An unserer Infrastruktur hat sich nichts geändert. Das Problem ist erst mit WordPress 6.6 aufgetaucht. Wir hatten auch schon ein Plugin installiert, mit dem man den Update-Lock raus nehmen kann. Auch das hat nichts gebracht.

    • Dieses Thema wurde geändert vor 2 Wochen, 2 Tage von srfg.
    • Dieses Thema wurde geändert vor 2 Wochen, 2 Tage von srfg.
Ansicht von 1 Antwort (von insgesamt 1)
Ansicht von 1 Antwort (von insgesamt 1)
  • Das Thema „Automatische Updates funktionieren nicht mehr mit SSH-Verbindung seit WP 6.6“ ist für neue Antworten geschlossen.