Debugging (WordPress)

Uit De Vliegende Brigade
Naar navigatie springen Naar zoeken springen

Debugging, troubleshooting, storingen of errors: Dit artikel is het uitgangspunt om problemen te verhelpen, geïnspireerd op artikel Storingen (Drupal).

Waar ligt het probleem?

Dit is een kritieke eerste stap: Vaststellen waar in de keten tussen webserver en gebruiker, het probleem ligt. Een bloemlezing:

  • Client-computer
  • Netwerk
  • DNS
  • WordPress
  • PHP, CSS (HTML, meer?)
  • MySQL
  • Apache
  • Server

Voorbeelden

Een WSOD (White Screen of Death) duidt meestal op een PHP-storing. In dit geval kon ik wel inloggen in het admin-gedeelte van de site. Dat duidt vaak op een WordPress-theme of -plugin-storing. Ik vond geen bijzondere meldingen in the beheer-interface

Client-computer & netwerk

  • Wat krijg je als je de URL ping'ed?
  • Kun je de site zien mbv. Lynx op de betreffende server?

WordPress

  • Zie log-file in wp-content/debug.log. Wel eerst aanzetten! - Wat me niet wil lukken (feb. 2019): De betreffende variabele (WP_DEBUG_LOG is al gedefineerd, en ik weet zo snel niet hoe ik 'm van waarde kan veranderen)

PHP

  • Bekijk het PHP error log: tail /var/log/php/error.log.
  • Geen log? Misschien eerst configureren in php.ini. Geen idee welk php.ini-bestand? → locate php.ini. Toevoeging aan php.ini + chmod o+rwx (feb. 2019) - Dit werkt. Ik denk alleen dat dat chmod-commando iets te wild is:
;;;;;;;;;;;;;;;;;;;;;;
; Strompf - Feb. 2019
;;;;;;;;;;;;;;;;;;;;;;;;
;
error_log = "/var/log/php/error.log"

Losse dingen

  • WordPress Debugging Mode. Zie Debugging Mode (WordPress) & CSS-storing na migratie (WordPress)
  • Interessante plugin: wp plugin install query-monitor.
  • wp_memory: Op een server met 16GB geheugen, is 2GB een prima getal - Kan zelfs nog iets hoger. Deze instelling kun je oa. zien via WooCommerce » Status » WordPress environment
  • PHP: Max input vars: 1.000 is een gebruikelijke waarde.

Je kunt instellen waar en hoe een WordPress debugging informatie presenteert; de zogenaamde debugging mode.

De gebruikelijke manier om debugging mode te configureren, is in bestand wp-config.php.

Voorbeeld van een productiesite (KNL, mei 2021) waar debugging is uitgezet. Dit is onderaan het bestand:

/**
 * For developers: WordPress debugging mode.
 *
 * Change this to true to enable the display of notices during development.
 * It is strongly recommended that plugin and theme developers use WP_DEBUG
 * in their development environments.
 */
define('WP_DEBUG', false);
define( 'WP_DEBUG_LOG', true );

Casus: Hoe Gijs een gare site debugde (dec. 2021)

Hier stond ooit een webwinkel. Wat nu? Ik zou denken dat er iets mis is met CSS of anderszins met vormgeving. 's Kijken hoe Gijs dit doet...
  • In wp-config.php: Verander define('WP_DEBUG', false); in define('WP_DEBUG', true);
  • Nu verscheen er een waarschuwing, maar geen serieuse fout
  • Rechtermuisknop » Inspect (Google Chrome): Het bleek dat alleen de header werd geladen, tot een bepaald punt: De taalwissel
  • Daarna wist Gijs vrij snel waar het probleem lag: De taalwissel crashet de site, als er een lege regel in zit
  • Vervolgens in wp-config.php de debugging-mode weer uitgezet.

Casus: Uitgerekte CSS? (Jan. 2022)

Een site had na migratie dat de CSS in de header 'uitgerekt' leek te zijn. Tevens was er een waarschuwing over een PHP-commando dat veroudert was.

  • Oorzaak: Die waarschuwing zorgde voor het 'uitrekken'
  • Oplossing: Waarschuwing uitzetten (zie casus dec. 2021 hierboven).

Zie ook

Bronnen