Support » Plugins » Plugin Verzeichnis nicht beschreibbar nach PHP 8 Upgrade

  • Hallo,

    meine Kundin hat mich kontaktiert, dass nach dem Upgrade von PHP 5.x auf PHP 8 ihre Webseite nicht mehr richtig angezeigt wird.

    VOR dem Upgrade wurden beide Seiten „komplett weiß“ angezeigt – also der klassische „white screen of death“. Nehme an, das hing mit der PHP Version zusammen.

    Ich habe mir das genauer angesehen. Die Situation ist folgende:
    Die Plugin-Seite ist komplett leer. Daher wird die Webseite natürlich jetzt völlig falsch dargestellt.

    Das Plugins-Verzeichnis wird von WordPress (Werkzeuge -> Website Zustand) als „nicht beschreibbar“ angezeigt. Beim Webhost hat das Verzeichnis allerdings die Berechtigung 755.

    Ich habe 777 getestet – kein Erfolg.

    Ich habe getestet, ein Plugin zu installieren. Meldung: „Installation fehlgeschlagen: Verzeichnis konnte nicht angelegt werden.“

    Die Plugin Ordner sind alle noch da und die Datenbank sieht in Ordnung aus.

    Es handelt sich um eine Multi-Site mit 2 Webseiten.

    Ich nehme an, dass die Plugins wieder auftauchen werden, wenn das Verzeichnis von WordPress als „beschreibbar“ gelesen wird.

    Wie kann ich vorgehen?

    Vielen Dank schonmal!

Ansicht von 10 Antworten - 1 bis 10 (von insgesamt 10)
  • Du schreibst, dass eine Umstellung von PHP 5.x auf PHP 8.0 erfolgt ist, dass aber vor dem Upgrade ein Programmierfehler zu einem White Screen of Death geführt hat.

    Nun ist PHP 5.x wirlich inzwischen antiquiert und gut möglich, dass durch eine automatische Aktualisierung PHP-Skripte geladen wurden, die sich mit PHP 5.x nicht vertragen. Eine „Forensik“ ist hier ein wenig schwierig und vor allem wenig hilfreich, um die Website wieder flott zu machen. Scheinbar ist aber unter PHP8 eine Anmeldung im Backend möglich? Dann würde ich den White Screen of Death als interessantes Erlebnis abhaken. 🙂

    Dass das Menü Plugins nur eine leere Seite anzeigt wird vermutlich mit einem Programmierfehler in einem Plugin zusammenhängen, wobei wir zunächst nicht wissen, welches das ist. Deshalb ist der übliche Schritt, das Plugin-Verzeichnis z.B. in no.plugins umzubenennen, damit erst einmal alle Plugins (vorübergehend) deaktiviert werden. Danach sollte das Menü Plugins aufzurufen sein, aber keine Plugins anzeigen. Ist das so, kann das Plugin-Verzeichnis wieder in wp-content/plugins umbenannt werden. Gibt es Updates, sollten die zuerst ausgeführt werden. Danach können die Plugins einzeln wieder aktiviert werden. Tritt der Fehler erneut auf, lässt sich die Ursache auf das zuletzt aktivierte Plugin eingrenzen – also das Verzeichnis dieses Plugins umbenennen.

    Verzeichnisrechte auf 777 zu setzen ist eine ganz schlechte Idee. Mach das bitte schnellstmöglich rückgängig. Verzeichnisse sollten rekursiv auf 755, einzelne Dateien auf 644 gesetzt werden.

    Schau mal, wie weit du damit kommst und gib uns eine Rückmeldung, was so alles passiert ist. Ein Website-Bericht zu deiner Multisite wäre auch hilfreich. (Haupt-Website: Werkzeuge > Website-Zustand > Bericht > Button anklicken, Inhalt der Zwischenablage hier in eine Antwort einfügen, nix dran rumfummeln, absenden.)

    Thread-Starter ichbinmarty

    (@ichbinmarty)

    Danke für deine schnelle Antwort!

    Genau, mit PHP 8 kann ich mich im Backend einloggen. Ob das davor ging, müsste ich meine Kundin fragen. Aber wie du schon sagst, wird es wenig hilfreich sein.

    Ich hab das Plugin Verzeichnis temporär in no.plugins umbenannt. Keine Änderung.
    Auf der Plugin-Seite steht nach wie vor „Momentan sind keine Plugins verfügbar.“ Das Verzeichnis heißt jetzt wieder plugins.

    777 war natürlich nur ein Test – dass das keine Dauerlösung ist, weiß ich. 🙂 Steht längst wieder auf 755.

    Hier der Bericht:

    
    ### wp-core ###
    
    version: 6.1.1
    site_language: de_DE
    user_language: de_DE
    timezone: Europe/Berlin
    permalink: /blog/%postname%/
    https_status: true
    multisite: true
    user_registration: false
    blog_public: 1
    default_comment_status: open
    environment_type: production
    site_count: 2
    network_count: 1
    user_count: 1
    dotorg_communication: true
    
    ### wp-dropins (1) ###
    
    advanced-cache.php: true
    
    ### wp-active-theme ###
    
    name: Twenty Twenty-Three (twentytwentythree)
    version: 1.0
    author: WordPress-Team
    author_website: https://de.wordpress.org
    parent_theme: none
    theme_features: core-block-patterns, post-thumbnails, responsive-embeds, editor-styles, html5, automatic-feed-links, block-templates, widgets-block-editor
    theme_path: /homepages/37/d859176158/htdocs/wordpress-multisite/wp-content/themes/twentytwentythree
    auto_update: Deaktiviert
    
    ### wp-themes-inactive (2) ###
    
    Gesundheits-Theme: version: 1.0.0, author: Marty Baldus, Automatische Aktualisierungen deaktiviert
    Twenty Twenty-Two: version: 1.3, author: WordPress-Team, Automatische Aktualisierungen deaktiviert
    
    ### wp-mu-plugins (1) ###
    
    Elementor Safe Mode: version: 1.0.0, author: Elementor.com
    
    ### wp-media ###
    
    image_editor: WP_Image_Editor_GD
    imagick_module_version: Nicht verfügbar
    imagemagick_version: Nicht verfügbar
    imagick_version: Nicht verfügbar
    file_uploads: File uploads is turned off
    post_max_size: 64M
    upload_max_filesize: 64M
    max_effective_size: 64 MB
    max_file_uploads: 20
    gd_version: 2.2.5
    gd_formats: GIF, JPEG, PNG, WebP, BMP, XPM
    ghostscript_version: 9.27
    
    ### wp-server ###
    
    server_architecture: Linux 4.4.302-icpu-088 x86_64
    httpd_software: Apache
    php_version: 8.0.25 64bit
    php_sapi: cgi-fcgi
    max_input_variables: 5000
    time_limit: 50000
    memory_limit: -1
    max_input_time: -1
    upload_max_filesize: 64M
    php_post_max_size: 64M
    curl_version: 7.64.0 OpenSSL/1.1.1n
    suhosin: false
    imagick_availability: false
    pretty_permalinks: true
    htaccess_extra_rules: true
    
    ### wp-database ###
    
    extension: mysqli
    server_version: 5.7.38-log
    client_version: mysqlnd 8.0.25
    max_allowed_packet: 67108864
    max_connections: 3000
    
    ### wp-constants ###
    
    WP_HOME: undefined
    WP_SITEURL: undefined
    WP_CONTENT_DIR: /homepages/37/d859176158/htdocs/wordpress-multisite/wp-content
    WP_PLUGIN_DIR: /homepages/37/d859176158/htdocs/wordpress-multisite/wp-content/plugins
    WP_MEMORY_LIMIT: 64M
    WP_MAX_MEMORY_LIMIT: -1
    WP_DEBUG: false
    WP_DEBUG_DISPLAY: true
    WP_DEBUG_LOG: false
    SCRIPT_DEBUG: false
    WP_CACHE: true
    CONCATENATE_SCRIPTS: undefined
    COMPRESS_SCRIPTS: undefined
    COMPRESS_CSS: undefined
    WP_ENVIRONMENT_TYPE: Nicht definiert
    DB_CHARSET: utf8mb4
    DB_COLLATE: undefined
    
    ### wp-filesystem ###
    
    wordpress: writable
    wp-content: writable
    uploads: writable
    plugins: not writable
    themes: writable
    mu-plugins: writable
    
    • Diese Antwort wurde geändert vor 2 Monaten, 1 Woche von ichbinmarty.
    • Diese Antwort wurde geändert vor 2 Monaten, 1 Woche von ichbinmarty. Grund: Tippfehler + Genauigkeit Antwort

    Hast du mal geschaut, ob in wp-content/plugins eine .htaccess vorhanden ist? Falls ja, mit welchem Inhalt?

    Hast du die .htaccess im Web-Stammverzeichnis geprüft?

    Thread-Starter ichbinmarty

    (@ichbinmarty)

    Die .htaccess in wp-content/plugins:

    <FilesMatch "\.(?i:php)$">
      <IfModule !mod_authz_core.c>
        Order allow,deny
        Deny from all
      </IfModule>
      <IfModule mod_authz_core.c>
        Require all denied
      </IfModule>
    </FilesMatch>

    Und die .htaccess im Stammverzeichnis:

    # Really Simple SSL
    Header set Strict-Transport-Security "max-age=15768000; includeSubDomains" env=HTTPS
    Header always set Content-Security-Policy "upgrade-insecure-requests"
    Header always set X-Content-Type-Options "nosniff"
    Header always set X-XSS-Protection "1; mode=block"
    Header always set Expect-CT "max-age=7776000, enforce"
    Header always set Referrer-Policy: "no-referrer-when-downgrade"
    # End Really Simple SSL
    <IfModule mod_headers.c>
    #Umleitung http zu https
    RewriteEngine On
    RewriteCond %{HTTPS} !=on
    RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
    </IfModule>
    # BEGIN WordPress
    # Die Anweisungen (Zeilen) zwischen „BEGIN WordPress“ und „END WordPress“ sind
    # dynamisch generiert und sollten nur über WordPress-Filter geändert werden.
    # Alle Änderungen an den Anweisungen zwischen diesen Markierungen werden überschrieben.
    RewriteEngine On
    RewriteCond %{HTTP:Authorization} ^(.+)$
    RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
    RewriteBase /
    RewriteRule ^index\.php$ - [L]
    # add a trailing slash to /wp-admin
    RewriteRule ^wp-admin$ wp-admin/ [R=301,L]
    RewriteCond %{REQUEST_FILENAME} -f [OR]
    RewriteCond %{REQUEST_FILENAME} -d
    RewriteRule ^ - [L]
    RewriteRule ^(wp-(content|admin|includes).*) $1 [L]
    RewriteRule ^(.*\.php)$ $1 [L]
    RewriteRule . index.php [L]
    # END WordPress
    # Block Spam IP
    Order Deny,Allow
    Deny from 37.139.53.83
    # End Block Spam IP

    Keine Ahnung, woher die .htaccess im Plugin-Verzeichnis stammt. Könnte von einem Sicherheits-Plugin stammen … Benenn die Datei bitte mal in no.htaccess um – wie schaut’s dann aus?

    Thread-Starter ichbinmarty

    (@ichbinmarty)

    Keine Änderung.

    Hm, das überrascht mich. Du solltest den Support deines Webhosters nochmal draufschauen lassen.

    Thread-Starter ichbinmarty

    (@ichbinmarty)

    Habe ich, die konnten mir nicht helfen. Bin nicht sicher, ob ich überhaupt richtig verstanden wurde. Ich kann es allerdings nochmal (an einem anderen Tag) versuchen.

    War grade unter „Kommentare“ in WordPress und finde dort folgende Fehlermeldungen:

    Warning: Attempt to read property "labels" on null in /homepages/37/d859176158/htdocs/wordpress-multisite/wp-admin/includes/class-wp-comments-list-table.php on line 1050

    und

    Warning: Attempt to read property "view_item" on null in /homepages/37/d859176158/htdocs/wordpress-multisite/wp-admin/includes/class-wp-comments-list-table.php on line 1050

    Bin nicht sicher, woher das kommt oder ob es was mit dieser Sache hier zutun hat.

    Habe auch gesehen, dass die selbe .htaccess Datei im /wp-content Ordner ist:

    <FilesMatch "\.(?i:php)$">
      <IfModule !mod_authz_core.c>
        Order allow,deny
        Deny from all
      </IfModule>
      <IfModule mod_authz_core.c>
        Require all denied
      </IfModule>
    </FilesMatch>
    • Diese Antwort wurde geändert vor 2 Monaten, 1 Woche von ichbinmarty.
    • Diese Antwort wurde geändert vor 2 Monaten, 1 Woche von ichbinmarty.
    • Diese Antwort wurde geändert vor 2 Monaten, 1 Woche von ichbinmarty.
    • Diese Antwort wurde geändert vor 2 Monaten, 1 Woche von ichbinmarty.

    Das ist nur ein Warnhinweis, würde ich im Moment ignorieren.

    Thread-Starter ichbinmarty

    (@ichbinmarty)

    Okay, danke!

Ansicht von 10 Antworten - 1 bis 10 (von insgesamt 10)