hello, i would like to post a few ideas on why some pages may give random fatal errors.
we came around a few extensions, templates or plugins which were loading it's license validation scripts once upon a certain time, seemingly randomly. sometimes when the 3rd parties server is down, connection is not working, DNS is not set up within the php process, or other reasons, some extensions can give various errors.
Recently we came around this issue on an expired Virtuemart Email Manager lincense which did so many checks for it's license valiadation, that the site returned in 25% of impressions a blank screen / fatal error.
Also icetheme templates are known to use a similar license check towards their remote servers and once their server is not reachible, the site will be down. One nice day we found that about 5 of our client sites were down due to this problem even though we always purchase developer unlimited subscriptions at such theme companies. Icetheme denied using this sort of logic, but after decrypting theme's helper files we had discovered this remote calls.
Also it seems that one of such extensions had passed the checks at JED (
http://extensions.joomla.org/extensions ... nnels/3659) which also includes a remote calls to remote servers which can make your site slow or broken during connection problems.
It's very complicated to troubleshoot this sort of issues, but generally this is what can be done depending on your skills of linux administration:
1. when you set up to run php-fpm in chroot but you don't link the appropriate libraries for DNS checks and thus localhost DNS resolver is not available you can make your php to emulate problems with the connection. This however can lead to other problems such as email malfunctioning or localhost name resolution. To make joomla work without DNS you will probably need to link (with bind command) mysql socket to your fpm installation and make the mysql connnection address empty (so the socket is used instead of tcp/ip). Secondly you still may need to copy all the timezone files needed for the php to run (/usr/share/zoneinfo).
2. Second approach is to run dnstop command linked to an interface where the site is being run (php-fpm usually runs on loopback interface lo ). You may want to create a new loopback interfece for the investigated site and log dns queries from this interface with bind if needed.
The last step is to search every single php file on your site to see which one loads this external site. Many times the files are encrypted with base64 or other encoding and it may be complicated to find them.
In matters to OPC
- OPC does not load external URLs unless it's the shipping plugin which requires it (overrided zasilkovna).
- OPC backend does version checks over javascripts in a non-blocking way so even our servers would be down, your site would still work without delayes
In case you get blank screens on VM pages and disabling OPC fixes it:
OPC on every singe page loads (if enabled)
- it's affiliate tracking plugin which checks order status changes of the order linked with the cookie hash at the browser (if enabled and if the cookie is created)
- OPC sets shopper groups on system level if enabled (per joomla language, per geo ip, etc...)
If you find that disabling OPC system plugin, or OPC affiliate tracking plugin fixes your issue, let us know and we will investigate immidiately.
Best Regards,
Stan