0

We have two servers running identical instances of an EE 5.2.4, using PHP 7.x via IIS. Our production machine works fine, no issues. Our backup server is the issue.

On the backup server: I can log into CP with no issues, and once logged in, I can view the site and all's well. If I'm not logged in / authenticated, I get the white screen of death. I've enabled debugging, and set $debug = 2 in index.php, so that everyone can see any errors (nothing shown), checked all debug options in CP, I've checked PHP logs, MySql logs, Event Viewer, everything I can think of. No errors are shown. Today I started commenting out template sections out of desperation, with no luck.

Clearly, something is different between the two servers. Is there anything obvious that I'm overlooking that would be bypassed when an admin is logged in, while viewing the site that would trigger for a non-authenticated user? Has anyone else dealt with this issue?

  • $debug = 1 is how you show all errors from your index.php. To my knowledge, $debug = 2 won't set anything; look at the bottom of your index.php file where it references Set the error reporting level. Ref: github.com/ExpressionEngine/ExpressionEngine/blob/5.3.0/… – jrothafer Mar 24 at 8:07
  • I tried that last week. It was one of my first steps to figure this out. I can't recall why I tried $debug = 2 at this point, but I did that over the weekend. Do you know of any process that would pertain only to non-authenticated users and would not readily throw an error? – Poultry in Motion Mar 24 at 8:33
  • Have you tried disabling all extensions? Just shooting in the dark here a little, I don't work with IIS professionally so I can't comment on running on a Windows environment. – jrothafer Mar 24 at 9:05
  • I once accidentally set a template group to the site default, and this happened to me (its index template was blank). Probably not your issue, but worth a look. – jphansen Mar 29 at 1:23
  • @jphansen, thanks! I inherited this site, so definitely worth a look. I'm still digging into it. I'm curious as to how/if EE limits the domain names that can be directed to it. For instance, if I access an EE site at a.com, but then point b.com to the same IP address, what should the outcome be? Will that white screen as well? I'll keep testing. Thanks for your response! – Poultry in Motion Mar 30 at 3:01
1

After digging as deeply as I knew how, I eventually took a backup sql script of the production and backup databases, along with the site files from both servers and used WinMerge to compare both. I found entries in the table "exp_template_no_access" in the backup server db, but not in production.

Those entries lead me to discover that there were no permissions assigned to a particular template used throughout the site, only on the backup server. We're unsure if someone mis-clicked or if this can occur when/if someone updates the physical template file rather than going through the EE admin dashboard. You can find this by accessing the template, then the "Access" tab.

Rather than displaying "Access Denied", or perhaps something similar like "You don't have access to this template", EE just shows the infamous White Screen of Death. No errors, no helpful tips to help me dig through the myriad of settings to track this down, in spite of error settings being turned on. I couldn't get a template access notification. Perhaps I missed something in my debug efforts. Fun times.

Thanks to @jphansen and @jrothafer for all of your help! Hopefully this answer will help someone else if they run into a similar issue.

| improve this answer | |
  • This helped a lot thanks - some additional info on the issue is in my answer. – Kenny Fraser Apr 10 at 9:10
0

Thanks for the earlier answer, this just expands on it slightly. I had the same issue which also had me tearing my hair out for a while with the unhelpful White Screen of Death.

This is looking like an EE issue that arises when restoring a backed-up database. In this case, the database was migrated from one functioning v5.3.0 installation (PHPv7.1 / CentOS6) to an upgraded server (PHPv7.3.16 / CentOS7).

As described, the exp_template_no_access table in the destination db displayed entries not found in the source db:

PHPMyAdmin view of exp_template_no_access table

This is displayed in the Control Panel as unchecked Allowed member groups entries:

EE Control Panel view of Access settings for default layout template

Once re-checked, the frontend pages appear again.

We're unsure if someone mis-clicked or if this can occur when/if someone updates the physical template file rather than going through the EE admin...

In this case the only update made to this template was to the code in the browser Control Panel entry (the EE admin). The non-logged-in view may have already been broken, or broke immediately after the template update - it wasn't being monitored. Because this template was the default master layout for the site, all pages appeared blank except to a Super Admin.

Other templates updated in the same way subsequently did not seem to have their Access permissions altered. This may suggest a one-off issue manifesting after restoration of the database.

A quick test Export of the source db and then Import into a new db (using PHPMyAdmin on the same CentOS6 server) did not show any population of the exp_template_no_access table.

| improve this answer | |

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.