Skip to main content

System Health Check

Joomdle includes a built-in diagnostic tool to verify that all prerequisites are met and that the integration between Joomla and Moodle is working correctly.

Running the System Check

  1. Log in to your Joomla admin panel.
  2. Go to Components → Joomdle → System check.
  3. Joomdle will run a series of tests and display the results.

What the System Check Tests

allow_url_fopen

Confirms that the PHP setting allow_url_fopen is enabled on your server. This check only applies if Joomdle is configured to use file_get_contents for HTTP requests in the Joomdle configuration.

If this fails:

  • On a dedicated server, set allow_url_fopen = On in your php.ini.
  • On shared hosting, contact your hosting provider to enable this setting.

cURL Enabled

Checks that the PHP cURL extension is installed and enabled. This check only applies if Joomdle is configured to use cURL for HTTP requests in the Joomdle configuration.

If this fails:

  • On a dedicated server, install or enable the php-curl extension and restart your web server.
  • On shared hosting, contact your hosting provider to enable cURL.

Note: In the Joomdle configuration you can choose whether HTTP requests are made using cURL or file_get_contents. Only the check relevant to your chosen method needs to pass.


Joomdle User Plugin

Checks whether the Joomdle User Plugin is activated in Joomla.

If this fails:

  • Go to Extensions → Manage → Plugins in your Joomla admin panel.
  • Search for the Joomdle plugin and enable it.

Joomla to Moodle HTTP Connectivity

Tests whether your Joomla server can establish an HTTP connection to Moodle.

Note: A failure here does not always indicate a critical problem — if the Web Services check below passes, this can be ignored. Failures are sometimes caused by server-side security rules.


Moodle to Joomla HTTP Connectivity

Tests whether Moodle can connect back to your Joomla site.

If this test fails and you are using cURL in Joomdle configuration in Moodle, check that the IP address used by your server for Joomdle communications is not listed under Site administration → Security → HTTP Security → cURL blocked hosts list. Please note that your server may be using an internal IP address for Joomdle communications, like 192.168.1.x or similar.

Note: As above, if web services are functioning correctly this failure can be ignored. Check firewall rules and DNS if you want to resolve it.


Joomdle Web Services

This is the most important check. It verifies that Moodle web services are correctly configured for Joomdle. Several specific errors can appear here:

Joomdle Auth Plugin Not Enabled

  • In Moodle, go to Site administration → Users → Authentication → Manage authentication and enable the Joomdle plugin.

Joomla URL Not Configured in Moodle

  • In Moodle, go to Site administration → Users → Authentication → Joomdle and enter your Joomla site URL.

Empty Response from Moodle

This indicates that Joomla cannot properly access Joomdle web services in Moodle.

If Joomla to Moodle HTTP connectivity check is failling, you will probably need to fix that first. If that check is passing:

  • Verify that the Moodle URL in Components → Joomdle → Configuration exactly matches $CFG->wwwroot in your moodle/config.php.
  • Ensure Web services and the REST protocol are enabled in Moodle.
  • Check for firewall, DNS, or connectivity issues between the two servers.

cURL call was blocked in Moodle. Please check cURL blocked hosts list setting in Moodle.

This indicates that the cURL calls are blocked in Moodle by the cURL blocked hosts list setting, in Site administration → Security → HTTP Security -> cURL blocked hosts list.

You will need to find the entry that is blocking the connections and remove it.

Joomla URL seems to be misconfigured in Joomdle auth plugin in Moodle

This indicates that Moodle cannot properly access Joomdle web services in Joomla.

If Moodle to Joomla HTTP connectivity check is failling, you will probably need to fix that first. If that check is passing:

  • Ensure the URL includes the protocol (http:// or https://).
  • Check your Joomla multi-language settings.
  • Verify that Apache mod_security or any Joomla security extensions are not blocking requests — temporarily disable them to test, then whitelist your server IP if needed.
  • Disable any Joomla SEF (Search Engine Friendly) extensions and retest.

Sorry, but you do not currently have permissions to do that (View the site administration tree (but not all the pages in it)).

If you upgraded a long time running site to Joomdle 3.1.1+, you may need to do some manual tasks, because your role and service names may be different from the ones used by the Joomdle automatic install process.

If you are getting this error, you will need to:

  • In Moodle, go to Site admininstration → Users → Permissions → Define roles

  • Find the role for Joomdle web service, and add some things there:

Manage roles tab, add capabilities:

  • mod/forum:viewdiscussion
  • moodle/calendar:manageentries
  • moodle/user:create
  • moodle/user:delete
  • moodle/user:viewdetails
  • moodle/user:viewalldetails
  • moodle/course:view
  • moodle/course:viewhiddencourses
  • moodle/category:viewcourselist
  • moodle/course:viewparticipants
  • moodle/site:viewparticipants
  • moodle/grade:viewall
  • moodle/site:configview
  • moodle/category:viewhiddencategories
  • moodle/role:assign
  • moodle/role:review
  • moodle/course:enrolreview
  • enrol/manual:enrol
  • enrol/manual:unenrol
  • enrol/manual:manage
  • moodle/cohort:manage
  • moodle/grade:managegradingforms
  • moodle/course:managegroups
  • moodle/badges:viewotherbadges
  • report/completion:view
  • moodle/user:update

Allow Role assignments tab, for the web service role on the left, check this columns:

  • Teacher
  • Non-editing teacher
  • Student

E_DEPRECATED Errors Enabled

PHP deprecated error reporting can interfere with Joomdle responses. Edit your php.ini and set:

error_reporting = E_ALL & ~E_DEPRECATED

On shared hosting, contact your provider to apply this change.


Something is Wrong with Joomdle Web Services Setup

Check Site administration → Notifications in Moodle for error details. If you see duplicate key errors in the database, run the following queries and then revisit the Notifications page:

DELETE FROM mdl_config_plugins WHERE plugin LIKE '%joomdle%';
DELETE FROM mdl_mnet_host2service WHERE hostid=0 AND serviceid=4;
DROP TABLE mdl_joomdle_dummytable;

Diagnostic Log Files

When the System Check runs, Joomdle writes diagnostic XML files that can help identify problems:

  • <joomla_folder>/logs/joomdle_system_check.xml
  • <moodledata_folder>/temp/joomdle_system_check.xml

Inspect these files for unexpected HTML tags (such as <head>) embedded in the XML — this indicates that something on either site is injecting output before the response. If found in the Moodle-side file, investigate your Joomla installation:

  • Temporarily switch to a default Joomla front-end template and retest.
  • Disable non-core plugins, particularly system-type plugins, one by one.

Re-running the Check

You can run the System Check at any time — for example, after changing configuration settings or upgrading Joomdle — to confirm everything is still working as expected.