Reading Time: 2minutes
One of the contact forms running on a FreeBSD server configured to work on top of Apache+MySQL suddenly stopped working.
The errors that appeared on the webpage during a page request to the form url was:
Fatal error: Class 'SimpleXMLElement' not found in /var/www/joomla/plugins/system/plugin_googlemap2_helper.php on line 2176 Fatal error: Class 'JLoader' not found in /var/www/joomla/plugins/libraries/loader.php on line 161
As you see in the output the website which was causing the issues was running a Joomla version 1.5.23 Stable configured with RSForm!ver 1.5.x (as a contact form solution) and Google Maps version 2.13b plugins.
The Google Map from Google Maps plugin and the RSform were configured to appear on one physical configured article in Joomla and seemed to work just until now. However yesterday suddenly the error messages:
Fatal error: Class ‘SimpleXMLElement’ not found
Fatal error: Class ‘JLoader’ not found
came out of nothing, it’s really strange as I don’t remember doing any changes to either Joomla or the PHP installation on this server.
There is one more guy who has access to the Joomla installation which I suspect might have changed something in the Joomla, but this scenario is not very likely.
Anyways as the problem was there I had to fix it up. Obviously as the error message Fatal error: Class ‘SimpleXMLElement’ not found reported the server php simplexml was missing!
Just to assure myself the php simplexml extension is not present on the server I used the classical method of setting up a php file with phpinfo(); in it to check all the installed php extensions on the server.
Finally to solve the issue I had to install the module from ports php5-simplexml , e.g.:
freebsd# cd /usr/ports/textproc/php5-simplexml
freebsd# make install clean
Afterwards to make the new settings take place I did restart of my Apache server:
freebsd# /usr/local/etc/rc.d/apache2 restart
Waiting for PIDS: 63883.
Performing sanity check on apache2 configuration:
Now my Joomla contact form is back to normal 😉
If someone has any idea why this error occured without any php or server modifications, and how comes that all worked fine beforehand even though I did not have the simplexml module instlaled on the server o_O, I would be enormously greatful.