In this lesson, we’ll show you how to enable debug in WordPress to help solve a white screen of death or internal server error message.
In our last lesson, we showed you how to solve the exhausted memory error. If you fail to get an email notifying you that this is the problem, you will need to follow this guide.
There may be certain times that you will need to enable debug mode to find the cause of faults and errors on your website. While WordPress now has inbuilt mechanisms to notify the website administrator of an error and the cause, there may be cases where you will be required to activate debug mode for WordPress. Such cases may be a critical error on the website but no email was received or when looking for a problem within a plugin that only happens sometimes. Another classic example is the dreaded white screen of death or internal server error. The good news is this is an easy task and we’ll show you how to enable debug mode in WordPress.
What is an internal server error and what causes it?
To new users who are using WordPress, this can be a deceiving warning message. When you first see this error you’ll at first assume that there is a problem with the hosting server. The reality is there is a problem with the website.
The internal server error is always caused by an error in the website PHP code, either from a theme, plugin or custom code. Essentially, what the server is saying is, it doesn’t know how to interpret the code because it hasn’t been correctly formatted. This coding error can result in a white screen of death, a message saying internal server error, or more recently a notice saying there has been a critical error on this website.
Why you might want to enable debug in WordPress
In some circumstances, you may not receive an email informing you of the problem, or the site will simply display a white screen. When this happens you have no way of determining the problem. I’ve also seen on some WooCommerce websites a conflict between plugins on the checkout page that is only triggered when the pay now button is clicked. Due to the way the checkout page uses Ajax the site has no way of displaying the critical error message, and it often simply displays a generic WooCommerce warning and scrolls to the top of the page. By learning how to enable debug in WordPress
How to enable debug in WordPress
1. Access the root install of your WordPress website through FTP, such as Filezilla, of through your hosting provider’s control panel file manager. The WordPress installation directory is normally found in the public_html folder. You will know that you are in the correct location when you see the folders wp-admin, wp-content and wp-includes as well as the wp-config file. This is the file we will need to access. It should look similar to below. Open the wp-config file to edit it
2. Now that wp-config is open and you can edit it, you will need to add a few lines to the file. This may seem intimidating, but it is safe. If you are concerned about making changes and breaking something, make a full copy of the contents. Simply download the wp-config file or copy the contents and paste it to a text editor.
3. Look for the following line
/* That's all, stop editing! Happy publishing. */
4. Just above that line enter the following line of code. This will enable debug in WordPress.
If the line currently exists but says false instead of true simply change the false to true
5. Click save. WordPress will now be in debug mode, but it will display all errors to frontend users. This isn’t ideal and you will undoubtedly want to avoid this.
6. Just below the last line you added add the following. This will stop the errors from displaying on the frontend
Click save. Now, as you can see, the errors have stopped displaying, but you no longer get to see what’s causing the problems. We need to enable logging of the errors.
7. Just below the last line add the following It will store the errors in a text file that you can access.
Right now your website will still be generating fatal errors and internal server error notices, but it will also be logging the faults and causes of them in a new log file. This log file can be found in the wp-content folder in a new file called debug.log
By default the script logging is disabled, but you can enable it with one more line of code. When it’s enabled the script debug logging will uncompress the WordPress JS and CSS files. Simply add the following line under the other lines of code and save the changes.
You can also enable database debugging. If you are experiencing problems with the database or database queries enabling database logging in WordPress can assist you in troubleshooting the problems
9. To enable database logging in WordPress simply add the following line below the others and click save.
Ensure you use this code sparingly and don’t leave it enabled for extended periods of time. Enabling this will impact your website performance, so only use it when you need to.
You can use the following example of code to output the error log to a page.
<?php global $wpdb; print_r( $wpdb->queries ); ?>
Once you have finished debugging it is highly recommended to set all values to false and delete the debug file. Leaving debug active can cause problems with storage resources and be a security issue.
You can find out more from the WordPress debugging page found here
We hope you found our guide on how to enable debug in WordPress useful. If you have any questions at all please leave a comment below