Support » Allgemeine Fragen » PHP Fatal Errors

  • Gelöst michaelxxx

    (@michaelxxx)


    Hi,

    ich bräuchte mal bitte Euere Hilfe oder Einschätzung.

    ich sehe bei mir im PHP Error Log sehr viele Warning und Fatal Error. Wir dachten erst, dass es einen Konfikt wegen dem Memcache & WP Rocket gibt, aber ich habe den Mamcache gestern deaktiviert.

    Wie man sieht, laufen trotzdem PHP Fehler auf.

    Was ich nicht verstehe: ein Fatal Error bedeutet doch eigentlich (so kenne ich es zumindest), dass die Seite ab dann nicht mehr erreichbar ist, bis man den Error beseitigt. Ich merke aber keine Ausfälle und habe selber nichts geändert. Und die Seite ist immer live.

    Und wie kommt es überhaupt zu einem Fatal Error, wenn laut Beschreibung nur eine Klasse fehlt?
    Uncaught Error: Class „WP_Widget“ not found

    Hier auch nochmal ein Screenshot von den Logs.

    Weiß jemand, was es damit auf sich haben kann und vor allem, wie ich es beheben kann?

    Viele Grüße
    Michael

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

Ansicht von 15 Antworten - 1 bis 15 (von insgesamt 35)
  • Moderator Bego Mario Garde

    (@pixolin)

    Da läuft ja einiges schief … 

    Die Konstante ABSPATH (der „absolute Pfad zur WordPress-Installation“) wird am Ende der wp-config.php gesetzt. Wenn der Wert dieser Konstante nicht richtig ausgelesen werden kann, müsste es aber grundsätzlich Probleme geben. Vielleicht magst du mal den Inhalt der Datei wp-config.php posten (und dabei natürlich Zugangsdaten und SALT-Keys vor dem Absenden aus der Antwort entfernen)?

    Wir werden nicht müde darauf hinzuweisen, dass wir Fehler nur beurteilen können, wenn wir hinreichend mit Informationen versorgt werden. Das steht auch in unserem angehefteten Beitrag Bevor du ein neues Thema (Thread) erstellst – also, bitte unter Werkzeuge > Website-Zustand > Bericht den Button anklicken und dann den Bericht unverändert in deiner Antwort anhängen. Die meisten Benutzer schaffen das.

    Eine erneute Aktualsierung von WordPress hast du schon probiert?

    bscu

    (@bscu)

    @pixolin
    Da ist was mit deinem Link schief gelaufen 😀

    Moderator Bego Mario Garde

    (@pixolin)

    @bscu – stimmt. Ist korrigiert.

    Thread-Starter michaelxxx

    (@michaelxxx)

    Danke für Euer erstes Feedback.

    Hier erstmal der Inhalt meiner wp-config:

    <?php
    //Begin Really Simple SSL session cookie settings
    @ini_set('session.cookie_httponly', true);
    @ini_set('session.cookie_secure', true);
    @ini_set('session.use_only_cookies', true);
    //END Really Simple SSL
    define( 'WP_CACHE', true ); // Added by WP Rocket
    define('FORCE_SSL_ADMIN', true);
    define( 'WP_DEBUG', false);
    define( 'WP_DEBUG_LOG', false);
    define( 'WP_DEBUG_DISPLAY', false );
    define( 'DISALLOW_FILE_EDIT',true);
    define( 'WP_MEMORY_LIMIT', '768M' );
    define( 'WP_MAX_MEMORY_LIMIT', '2G' );
    define( 'DISABLE_WP_CRON', true);
     define( 'WPML_TAXONOMY_TRANSLATION_MAX_TERMS_RESULTS_SET' , 8000);
     /**
     * Grundeinstellungen für WordPress
     *
     * Zu diesen Einstellungen gehören:
     *
     * * MySQL-Zugangsdaten,
     * * Tabellenpräfix,
     * * Sicherheitsschlüssel
     * * und ABSPATH.
     *
     * Mehr Informationen zur wp-config.php gibt es auf der
     * {@link https://codex.wordpress.org/Editing_wp-config.php wp-config.php editieren}
     * Seite im Codex. Die Zugangsdaten für die MySQL-Datenbank
     * bekommst du von deinem Webhoster.
     *
     * Diese Datei wird zur Erstellung der wp-config.php verwendet.
     * Du musst aber dafür nicht das Installationsskript verwenden.
     * Stattdessen kannst du auch diese Datei als wp-config.php mit
     * deinen Zugangsdaten für die Datenbank abspeichern.
     *
     * @package WordPress
     */
    // ** MySQL-Einstellungen ** //
    /**   Diese Zugangsdaten bekommst du von deinem Webhoster. **/
    /**
     * Ersetze datenbankname_hier_einfuegen
     * mit dem Namen der Datenbank, die du verwenden möchtest.
     */
    define( 'DB_NAME', "XXX" );
    /**
     * Ersetze benutzername_hier_einfuegen
     * mit deinem MySQL-Datenbank-Benutzernamen.
     */
    define( 'DB_USER', "XXX" );
    /**
     * Ersetze passwort_hier_einfuegen mit deinem MySQL-Passwort.
     */
    define( 'DB_PASSWORD', "XXX" );
    /**
     * Ersetze localhost mit der MySQL-Serveradresse.
     */
    define( 'DB_HOST', "localhost" );
    /**
     * Der Datenbankzeichensatz, der beim Erstellen der
     * Datenbanktabellen verwendet werden soll
     */
    define( 'DB_CHARSET', 'utf8mb4' );
    /**
     * Der Collate-Type sollte nicht geändert werden.
     */
    define('DB_COLLATE', '');
    /**#@+
     * Sicherheitsschlüssel
     *
     * Ändere jeden untenstehenden Platzhaltertext in eine beliebige,
     * möglichst einmalig genutzte Zeichenkette.
     * Auf der Seite {@link https://api.wordpress.org/secret-key/1.1/salt/ WordPress.org secret-key service}
     * kannst du dir alle Schlüssel generieren lassen.
     * Du kannst die Schlüssel jederzeit wieder ändern, alle angemeldeten
     * Benutzer müssen sich danach erneut anmelden.
     *
     * @since 2.6.0
     */
    define( 'AUTH_KEY',         'XXX' );
    define( 'SECURE_AUTH_KEY',  'XXX' );
    define( 'LOGGED_IN_KEY',    'XXX' );
    define( 'NONCE_KEY',        'XXX' );
    define( 'AUTH_SALT',        'XXX' );
    define( 'SECURE_AUTH_SALT', 'XXX' );
    define( 'LOGGED_IN_SALT',   'XXX' );
    define( 'NONCE_SALT',       'XXX' );
    /**#@-*/
    /**
     * WordPress Datenbanktabellen-Präfix
     *
     * Wenn du verschiedene Präfixe benutzt, kannst du innerhalb einer Datenbank
     * verschiedene WordPress-Installationen betreiben.
     * Bitte verwende nur Zahlen, Buchstaben und Unterstriche!
     */
    $table_prefix = 'omp_';
    /**
     * Für Entwickler: Der WordPress-Debug-Modus.
     *
     * Setze den Wert auf „true“, um bei der Entwicklung Warnungen und Fehler-Meldungen angezeigt zu bekommen.
     * Plugin- und Theme-Entwicklern wird nachdrücklich empfohlen, WP_DEBUG
     * in ihrer Entwicklungsumgebung zu verwenden.
     *
     * Besuche den Codex, um mehr Informationen über andere Konstanten zu finden,
     * die zum Debuggen genutzt werden können.
     *
     * @link https://codex.wordpress.org/Debugging_in_WordPress
     */
    /* Das war’s, Schluss mit dem Bearbeiten! Viel Spaß. */
    define( 'MEDIA_TRASH', true );
    /* That's all, stop editing! Happy publishing. */
    /** Der absolute Pfad zum WordPress-Verzeichnis. */
    if ( ! defined( 'ABSPATH' ) ) {
    	define( 'ABSPATH', dirname( __FILE__ ) . '/' );
    }
    /** Definiert WordPress-Variablen und fügt Dateien ein.  */
    require_once( ABSPATH . 'wp-settings.php' );

    Und hier seht ihr noch der Bericht:

    
    ### wp-core ###
    
    version: 5.9.1
    site_language: de_DE
    user_language: de_DE
    permalink: /%category%/%postname%
    https_status: true
    user_registration: 0
    default_comment_status: open
    multisite: false
    user_count: 2
    dotorg_communication: true
    
    ### wp-paths-sizes ###
    
    wordpress_path: XXX
    wordpress_size: 657,99 MB (689952169 bytes)
    uploads_path: XXX/wp-content/uploads
    uploads_size: 47,49 GB (50996262254 bytes)
    themes_path: XXX/wp-content/themes
    themes_size: 14,34 MB (15033538 bytes)
    plugins_path: XXX/wp-content/plugins
    plugins_size: 273,58 MB (286870065 bytes)
    database_size: 842,63 MB (883556352 bytes)
    total_size: 49,24 GB (52871674378 bytes)
    
    ### wp-dropins (1) ###
    
    advanced-cache.php: true
    
    ### wp-active-theme ###
    
    name: X – Child Theme (x-child)
    version: 1.0.0
    author: Themeco
    author_website: http://theme.co/
    parent_theme: X (x)
    theme_features: core-block-patterns, cornerstone, cornerstone-theming, cornerstone-legacy-portfolio, cornerstone-legacy-sidebars, widgets-block-editor, post-thumbnails, title-tag, automatic-feed-links, post-formats, woocommerce, wc-product-gallery-zoom, wc-product-gallery-lightbox, wc-product-gallery-slider, align-wide, wp-block-styles, widgets, menus, editor-style
    theme_path: XXX/wp-content/themes/x-child
    
    ### wp-parent-theme ###
    
    name: X (x)
    version: 9.1.4
    author: Themeco
    author_website: https://theme.co
    theme_path: XXX/wp-content/themes/x
    
    ### wp-mu-plugins (2) ###
    
    Health Check Troubleshooting Mode: author: (undefined), version: 1.7.2
    Perfmatters MU: version: 1.8.6, author: forgemedia
    
    ### wp-plugins-active (37) ###
    
    Advanced Custom Fields Multilingual: version: 1.9.5, author: OnTheGoSystems
    Advanced Custom Fields PRO: version: 5.11.4, author: Delicious Brains
    Ajax Search Pro: version: 4.21.12, author: Ernest Marcinko
    Cornerstone: version: 6.1.4, author: Themeco
    Custom 404: version: 2.0.5, author: Themeco
    Custom Upload Dir: version: 3.4.6, author: Ulf Benjaminsson
    Disable Gutenberg: version: 2.6, author: Jeff Starr
    Easy Table of Contents: version: 2.0.17, author: Steven A. Zahm
    Elite Video Player: version: 6.7.3, author: _CreativeMedia_
    Fixed Widget: version: 6.0.5, author: Thomas Maier, Max Bond
    Health Check & Troubleshooting: version: 1.4.5, author: The WordPress.org community
    Jetpack: version: 10.7, author: Automattic
    Justified Image Grid: version: 4.2.1, author: Firsh
    Perfmatters: version: 1.8.6, author: forgemedia
    Permalink Manager Pro: version: 2.2.16, author: Maciej Bis
    Prosodia VGW OS: version: 3.25.3, author: Prosodia – Verlag für Musik und Literatur
    Rank Math SEO: version: 1.0.83, author: Rank Math
    Rank Math SEO PRO: version: 3.0.7, author: Rank Math
    Real Cookie Banner: version: 2.16.1-9813, author: devowl.io
    Really Simple SSL: version: 5.2.3, author: Really Simple Plugins
    Really Simple SSL pro: version: 5.3.0, author: Really Simple Plugins
    Real Media Library: version: 4.17.11, author: devowl.io
    Redirection: version: 5.2.3, author: John Godley
    Shortcoder: version: 5.6, author: Aakash Chakravarthy
    ShortPixel Image Optimizer: version: 4.22.8, author: ShortPixel
    ThirstyAffiliates: version: 3.10.4, author: Caseproof
    Widget Options: version: 3.7.14, author: Widget Options Team
    wp-jquery-lightbox: version: 1.4.8.3, author: Ulf Benjaminsson
    WP-Matomo Integration: version: 1.0.27, author: André Bräkling
    WP External Links: version: 2.51, author: WebFactory Ltd
    WPForms Lite: version: 1.7.2.1, author: WPForms
    WPML Media: version: 2.7.0, author: OnTheGoSystems
    WPML Multilingual CMS: version: 4.5.5, author: OnTheGoSystems
    WPML SEO: version: 2.0.1, author: OnTheGoSystems
    WPML String Translation: version: 3.2.1, author: OnTheGoSystems
    WP Rocket: version: 3.10.8, author: WP Media
    
    ### wp-plugins-inactive (2) ###
    
    Cache Master: version: 2.1.1, author: Terry Lin
    wpDiscuz: version: 7.3.12, author: gVectors Team
    
    ### wp-media ###
    
    image_editor: WP_Image_Editor_Imagick
    imagick_module_version: 1687
    imagemagick_version: ImageMagick 6.9.7-4 Q16 x86_64 20170114 http://www.imagemagick.org
    imagick_limits: 
    	imagick::RESOURCETYPE_AREA: 251 GB
    	imagick::RESOURCETYPE_DISK: 1.84467440737E+19
    	imagick::RESOURCETYPE_FILE: 49152
    	imagick::RESOURCETYPE_MAP: 251 GB
    	imagick::RESOURCETYPE_MEMORY: 126 GB
    	imagick::RESOURCETYPE_THREAD: 1
    gd_version: 2.2.5
    ghostscript_version: 9.26
    
    ### wp-server ###
    
    server_architecture: Linux 5.4.0-100-generic x86_64
    httpd_software: Apache/2.4
    php_version: 8.0.16 64bit
    php_sapi: fpm-fcgi
    max_input_variables: 5000
    time_limit: 6000
    memory_limit: 2G
    max_input_time: 1800
    upload_max_size: 512M
    php_post_max_size: 128M
    curl_version: 7.58.0 OpenSSL/1.1.1
    suhosin: false
    imagick_availability: true
    server-headers: 
    	server: openresty
    	date: Thu, 03 Mar 2022 13:31:20 GMT
    	content-type: text/html; charset=UTF-8
    	vary: Array
    	x-lima-id: ar3U3Yaoi2fgWbbDEW
    	x-powered-by: PHP/8.0.16
    	expires: Wed, 11 Jan 1984 05:00:00 GMT
    	cache-control: no-cache, must-revalidate, max-age=0
    	link: <https://one-million-places.com/wp-json/>; rel="https://api.w.org/", <https://one-million-places.com/wp-json/wp/v2/pages/21>; rel="alternate"; type="application/json"
    	strict-transport-security: max-age=63072000; includeSubDomains; preload
    	content-security-policy: upgrade-insecure-requests
    	x-xss-protection: 1; mode=block
    	x-content-type-options: nosniff
    	referrer-policy: no-referrer-when-downgrade
    	expect-ct: max-age=7776000, enforce
    	x-frame-options: SAMEORIGIN
    	content-encoding: gzip
    htaccess_extra_rules: true
    
    ### wp-database ###
    
    extension: mysqli
    server_version: 8.0.25-15
    client_version: mysqlnd 8.0.16
    
    ### wp-constants ###
    
    WP_HOME: undefined
    WP_SITEURL: undefined
    WP_CONTENT_DIR: XXX/wp-content
    WP_PLUGIN_DIR: XXX/wp-content/plugins
    WP_MAX_MEMORY_LIMIT: 2G
    WP_DEBUG: false
    WP_DEBUG_DISPLAY: false
    WP_DEBUG_LOG: true
    SCRIPT_DEBUG: false
    WP_CACHE: true
    CONCATENATE_SCRIPTS: undefined
    COMPRESS_SCRIPTS: undefined
    COMPRESS_CSS: undefined
    WP_LOCAL_DEV: undefined
    
    ### wp-filesystem ###
    
    wordpress: writable
    wp-content: writable
    uploads: writable
    plugins: writable
    themes: writable
    mu-plugins: writable
    
    ### jetpack ###
    
    site_id: 77861108
    ssl_cert: No
    time_diff: undefined
    version_option: 10.7:1646148312
    old_version: 10.6:1644504892
    public: Public
    master_user: #1 onemillionplaces
    current_user: #1 onemillionplaces
    tokens_set: Blog User
    blog_token: XXX
    user_token: XXX
    version: 10.7
    jp_plugin_dir: XXX/wp-content/plugins/jetpack/
    plan: free
    protect_header: {"trusted_header":"REMOTE_ADDR","segments":1,"reverse":false}
    full_sync: {"started":"Fri, 25 Feb 2022 12:18:30 +0000","finished":"Fri, 25 Feb 2022 12:18:38 +0000","progress":{"options":{"finished":true},"functions":{"finished":true},"constants":{"finished":true},"users":{"total":"1","sent":1,"finished":true,"last_sent":"1"},"network_options":{"finished":true}},"config":{"options":true,"functions":true,"constants":true,"users":[1],"network_options":true}}
    sync_size: undefined
    sync_lag: 0 seconds
    full_sync_size: undefined
    full_sync_lag: 0 seconds
    idc_urls: {"home":"https:\/\/one-million-places.com","siteurl":"https:\/\/one-million-places.com","WP_HOME":"","WP_SITEURL":""}
    idc_error_option: false
    idc_optin: true
    cxn_tests: All Pass.
    
    ### wpforms ###
    
    version: 1.7.2.1
    lite: Apr 19, 2020 @ 11:38pm
    upload_dir: Beschreibbar
    db_tables: omp_wpforms_db, omp_wpforms_tasks_meta
    total_forms: 2
    total_submissions: 81
    

    Eine erneute Aktualsierung von WordPress hast du schon probiert?

    Nein, bisher noch nicht. Einfach unter Aktualisierungen den Button „Version 5.9.1-de_DE erneut installieren“ ausführen?

    Vielleicht noch als Info:

    Ich hatte meine Webseite zum testen zu einem neuen Host übertragen, habe dort die Seite erstmal unter eine kostenlosen Domain laufen lassen und noch ein paar Änderungen/Anpassungen vorgenommen. Als ich soweit fertig war, habe ich den A Record auf den neuen Host umgestellt und im WordPress (Einstellungen › Allgemein) die kostenlos Domain gegen meine richtige Domain ausgetauscht.

    Aber ich habe auch mit Search & Replace in der Datenbank gesucht und noch ein paar Einträge mit der „falschen“ kostenlosen Domain gefunden. Die habe ich per SQL Update ausgetauscht.

    Kann es sein, dass die Fehler durch die Miragtion und eine nicht vollständige Änderung der URL kommen?

    • Diese Antwort wurde geändert vor 2 Jahren von michaelxxx.
    Moderator Hans-Gerd Gerhards

    (@hage)

    Hallo,
    da sind so einige Dinge, die nicht ok sind:

    • offenbar hast du die wp-config.php mit einem Editor bearbeitet, der nicht geeignet ist (siehe Umlaute, etc.). Ein geeigneter Editor ist z. B. Notepad++. Das könnte schon die genannten Probleme verursachen
    • Jetpack ist in der Regel nicht datenschutzkonform. Am besten deinstallierst du das Plugin
    • Deine WordPress-Instanz ist mit 49,24 GB ziemlich groß. Überprüfe doch bitte mal, ob du da noch alte Sicherungen hast, die du löschen könntest.
    • Really Simple SSL ist bei korrekter Umsetzung von SSL überflüssig
    • Es gibt einige Plugins und Themes, die mit PHP 8.x nicht zurecht kommen. Stelle bitte sicherheitshalber mal auf PHP 7.4 um

    Viele Grüße
    Hans-Gerd

    Thread-Starter michaelxxx

    (@michaelxxx)

    Hallo @hage,

    Danke für Dein Feedback.

    Ich hab die wp-config nochmal mit Notepad++ geöffnet, da sieht alles ok aus. Warum das hier so komisch aussieht mit den Umlauten usw. weiß ich grad nicht. Die sind in der Original php aber alle ok 😉

    Hab mal auf PHP 7.4 umgestellt.

    Und Danke für die anderen Hinweise, wobei daran sich ja noch nicht der Fatal Error wie dieser erklärt, oder?

    Die Konstante ABSPATH (der „absolute Pfad zur WordPress-Installation“) wird am Ende der wp-config.php gesetzt. Wenn der Wert dieser Konstante nicht richtig ausgelesen werden kann, müsste es aber grundsätzlich Probleme geben.

    • Diese Antwort wurde geändert vor 2 Jahren von michaelxxx.
    Moderator Bego Mario Garde

    (@pixolin)

    Einfach unter Aktualisierungen den Button „Version 5.9.1-de_DE erneut installieren“ ausführen?

    Ja. Damit könnten wir zumindest ausschließen, dass beim letzten Update Dateien nicht richtig übertragen wurden.

    Ich hab die wp-config nochmal mit Notepad++ geöffnet, da sieht alles ok aus.

    Darum geht es nicht. Die Frage ist vielmehr, ob PHP das richtig einlesen kann. Dazu muss die Datei in der richtigen Zeichenkodierung „UTF-8 (ohne Byte Order Mark)“ gespeichert werden – Programmiereditoren machen das eigentlich automatisch, während Windows Notepad es automatisch falsch macht.

    Und Danke für die anderen Hinweise, wobei daran sich ja noch nicht der Fatal Error wie dieser erklärt, oder?

    Das versuchen wir gerade im Ausschlußprinzip herauszufinden. Wenn du beim Arzt bist und gefragt wirst, wann denn die Probleme auftauchen, wirst du wohl auch nicht antworten „Wieso, Sie sind doch der Arzt?“ 😀

    Was fällt dir an diesen beiden Zeilen auf?

    /* Das war’s, Schluss mit dem Bearbeiten! Viel Spaß. */
    define( 'MEDIA_TRASH', true );

    😉 (ist aber für das Problem irrelevant)

    Thread-Starter michaelxxx

    (@michaelxxx)

    Was fällt dir an diesen beiden Zeilen auf?

    Da hab ich doch geschrieben, dass das nicht so aussieht, wenn ich die wp-config mit Notepad++ öffnet. Das ist nur beim rauskopieren und bearbeiten für das Einstellen hier im Forum passiert 😉

    Das versuchen wir gerade im Ausschlußprinzip herauszufinden.

    Ich hab ja auf 7.4 umgestellt und seitdem laufen zumindest keine mehr Fehler ein. Kann Zufall sein, aber vielleicht lag es ja schon daran.

    Die Konstante ABSPATH (der „absolute Pfad zur WordPress-Installation“) wird am Ende der wp-config.php gesetzt.

    Aber nochmal zurück zum Ursprung. Hier jetzt nochmal die „ordentliche“ wp-config. Sieht da alles normal und richtig aus? Oder gibt es da irgendwas, was den Fehler mit dem ABSPATH erklären würde?

    <?php
    define( 'WP_CACHE', true );
    
    //Begin Really Simple SSL session cookie settings
    @ini_set('session.cookie_httponly', true);
    @ini_set('session.cookie_secure', true);
    @ini_set('session.use_only_cookies', true);
    
    // Added by WP Rocket
    define( 'WP_ROCKET_LASTVERSION', '3.10.6' );
    define( 'FORCE_SSL_ADMIN', true );
    define( 'WP_DEBUG', false );
    define( 'WP_DEBUG_LOG', true );
    define( 'WP_DEBUG_DISPLAY', false );
    define( 'DISALLOW_FILE_EDIT', true );
    define( 'DISABLE_WP_CRON', true );
    define( 'WPML_TAXONOMY_TRANSLATION_MAX_TERMS_RESULTS_SET' , 8000);
    
    define( 'DB_NAME', "XXX" );
    define( 'DB_USER', "XXX" );
    define( 'DB_PASSWORD', "XXX" );
    define( 'DB_HOST', "localhost" );
    define( 'DB_CHARSET', 'utf8mb4' );
    define('DB_COLLATE', '');
    
    define( 'AUTH_KEY',         'XXX' );
    define( 'SECURE_AUTH_KEY',  'XXX' );
    define( 'LOGGED_IN_KEY',    'XXX' );
    define( 'NONCE_KEY',        'XXX' );
    define( 'AUTH_SALT',        'XXX' );
    define( 'SECURE_AUTH_SALT', '(XXX' );
    define( 'LOGGED_IN_SALT',   'XXX' );
    define( 'NONCE_SALT',       'XXX' );
    
    $table_prefix = 'XXX_';
    
    define( 'MEDIA_TRASH', true );
    if ( ! defined( 'ABSPATH' ) ) {
    	define( 'ABSPATH', dirname(__FILE__) . '/' );
    }
    require_once( ABSPATH . 'wp-settings.php' );
    bscu

    (@bscu)

    Da sollte eigentlich u.a. sowas drin stehen:

    /** Absolute path to the WordPress directory. */
    if ( !defined('ABSPATH') )
    	define('ABSPATH', dirname(__FILE__) . '/');
    • Diese Antwort wurde geändert vor 2 Jahren von bscu.
    Thread-Starter michaelxxx

    (@michaelxxx)

    Da sollte eigentlich u.a. sowas drin stehen:

    Aber so wie Du es gepostet hast, steht es doch auch in meiner php? Nur das // Kommentar Feld hatte ich zur besseren Übersicht rausgenommen.

    bscu

    (@bscu)

    Aber so wie Du es gepostet hast, steht es doch auch in meiner php?

    Sorry, da habe ich wohl nicht richtig hingesehen.

    Moderator Hans-Gerd Gerhards

    (@hage)

    @michaelxxx
    so wie ich das sehe, scheint das jetzt so weit alles ok zu sein.
    Schau doch mal bitte, ob du noch Fehler erhältst. Falls nicht, wäre es schön, wenn du das Thema als gelöst markierst.

    Moderator Bego Mario Garde

    (@pixolin)

    Da hab ich doch geschrieben, dass das nicht so aussieht, wenn ich die wp-config mit Notepad++ öffnet.

    Das war ja auch nicht gemeint.

    Die Core-Entwickler haben in ihrer Weisheit in der wp-config.php eine Zeile
    /* That's all, stop editing! Happy blogging. */ eingefügt, die in der deutschsprachigen Version zusätzlich mit
    /* Das war's, Schluss mit dem Bearbeiten! Viel Spaß. */
    übersetzt wurde. Wofür ist das gut? Es soll Anwendern signalisieren, dass unterhalb dieser Zeile kein Code mehr eingefügt werden soll. Hast du dich dran gehalten? Nein:

    /* Das war's, Schluss mit dem Bearbeiten! Viel Spaß. */
    define( 'MEDIA_TRASH', true );
    /* That's all, stop editing! Happy publishing. */

    Kann aber auch sein, dass ein Plugin tatsächlich nach der Zeile /* That's all, stop editing! Happy publishing. */ gesucht und den Eintrag selbständig hinzugefügt hat. Wie gesagt auch nicht wirklich tragisch. 🙂

    Ich hab ja auf 7.4 umgestellt und seitdem laufen zumindest keine mehr Fehler ein.

    Gut möglich, da noch längst nicht alle Plugins auf PHP8 umgestellt sind. Dass dann eine Konstante ABSPATH nicht gefunden wird, finde ich trotzdem komisch.

    Wenn neue Fehlermeldungen auftauchen, müssen wir eben weitersuchen. Ansonsten ist das Problem doch gelöst? Markierst du den Thread dann bitte noch als „gelöst“?

    Thread-Starter michaelxxx

    (@michaelxxx)

    Wenn neue Fehlermeldungen auftauchen, müssen wir eben weitersuchen.

    Aktuell sieht es so aus, als würden keine neuen Fehlermeldungen reinkommen. Dann lag es wohl an PHP 8.0…

    Hat Ihr vielleicht noch eine Info oder Anmerkung zu meiner Eingangsfrage?

    Was ich nicht verstehe: ein Fatal Error bedeutet doch eigentlich (so kenne ich es zumindest), dass die Seite ab dann nicht mehr erreichbar ist, bis man den Error beseitigt. Ich merke aber keine Ausfälle und habe selber nichts geändert. Und die Seite ist immer live.

    • Diese Antwort wurde geändert vor 2 Jahren von michaelxxx.
    Moderator Bego Mario Garde

    (@pixolin)

    Ein Fatal Error ist ein Programmierfehler, der so schwerwiegend ist, dass die Ausführung abgebrochen und im Browser nur eine leere Seite angezeigt wird („White Screen of Death“), um Angreifern keine Informationen über das Problem zu liefern.

    Ein Fatal Error legt aber nicht zwingend die gesamte Website lahm. Nehmen wir an, ich erstelle ein Plugin, das bei Aufruf des Backend-Headers eine Funktion aufrufen soll. Diese Funktion verwendet eine PHP-Class, die es nicht gibt, führt also bei Öffnen von wp-admin zu einem fatalen Fehler:

    add_action('admin_head', 'pix_fatal_error');
    function pix_fatal_error(){
            echo 'line 1';
            $a = new FakeClass(); // fatal error. Class doesn't exist so PHP aborts
            echo 'line 2'; // <- never executed
    
    }

    Das Front End ist davon nicht betroffen, weil die Funktion dort gar nicht ausgeführt wird. Es gibt also einen Fatal Error, der sich nur in einem Teil meiner Website bemerkbar macht (hier im Backend).

    (Das Code-Beispiel habe ich diesem Thread entnommen, um rascher ein Beispiel zur Hand zu haben: https://stackoverflow.com/a/38670763/12490449)

Ansicht von 15 Antworten - 1 bis 15 (von insgesamt 35)
  • Das Thema „PHP Fatal Errors“ ist für neue Antworten geschlossen.