Fatal Error - Class 'SimpleXMLElement' not found

About

Until version 1.12, Combostrap mades use of the SimpleXml library to manipulate SVG and HTML code

This library is installed by default and is therefore part of most of the installation.

If you don't have it, you may got the following error and this article is a step by step on how to resolve it.

Steps

PHP Fatal error: Uncaught Error: Class 'SimpleXMLElement' not found

The error that you will see in your log.

PHP Fatal error:  Uncaught Error: Class 'SimpleXMLElement' not found in /usr/share/dokuwiki/lib/plugins/combo/class/XmlUtility.php:110
Stack trace:
#0 /usr/share/dokuwiki/lib/plugins/combo/class/LinkUtility.php(228): ComboStrap\\XmlUtility::isXml('<a href="https:...')
#1 /usr/share/dokuwiki/lib/plugins/combo/syntax/link.php(161): ComboStrap\\LinkUtility->render(Object(Doku_Renderer_xhtml))
#2 /usr/share/dokuwiki/inc/parser/renderer.php(117): syntax_plugin_combo_link->render('xhtml', Object(Doku_Renderer_xhtml), Array)
#3 /usr/share/dokuwiki/inc/parserutils.php(673): Doku_Renderer->plugin('combo_link', Array, 5, '[[https://www.r...')
#4 /usr/share/dokuwiki/inc/parserutils.php(142): p_render('xhtml', Array, NULL)
#5 /usr/share/dokuwiki/inc/parserutils.php(89): p_cached_output('/var/lib/dokuwi...', 'xhtml', 'index')
#6 /usr/share/dokuwiki/inc/html.php(305): p_wiki_xhtml('index', 0, true, '')
#7 /usr/share/dokuwiki/inc/Action/Show.php(33): html_show()
#8 /usr/share/dokuwiki/inc/template.php(99): dokuwiki\\Action\\Show->tplContent()
#9 in /usr/share/dokuwiki/lib/plugins/combo/class/XmlUtility.php on line 110

Is SimpleXml Enabled

To check your installation, in a php environment, you make use of the phpinfo output.

You can the output:

  • via the command line
php -m
  • via a php page, created at the root of your server. If you create the phpinfo.php with the below code, it will be accessible at http://host/phpinfo.php
<?php
phpinfo();

The php info will show if SimpleXml is enabled as extension:


If the extensions is not enabled, you need to enable it.

Enabling the SimpleXml Extension

Due to the complexity of server installation, we are giving below some tips but we can't help more without having access to the server.

Windows

For windows, you should install a php that was compiled with SimpleXml (which should be the default)

Linux

On Linux, it may be:

  • not installed by default:
# ubuntu, ...
sudo apt-get install php-xml
# centos, redhat
sudo yum install php-xml
  • not configured in the php.ini. Make sure that you see it in the extension.

Powered by ComboStrap