My host moved my site to another server and Drupal/CiviCRM are mainly working fine. However, the dashlets on the dashboard are no longer working. Each dashlet comes up as follows:

Not Found The requested URL /civicrm/report/instance/42 was not found on this server. Apache/2.2.16 (Debian) Server at XXXXXXXXXXXXXXX Port 80

I've tried clearing the caches, upgrading Civi to 4.6.10 and restarting the VPS, but it's not fixed it.

If I look in the Apache error log, it comes up with a version of this error for each dashlet:

File does not exist: /etc/apache2/htdocs/civicrm/report/instance/42

Does anyone have any idea what might have changed?

3 Answers 3


Please check your civicrm.settings.php and after that

  • Administer - System Settings - Directories
  • Administer - System Settings - Resource URLs
  • Administer - System Settings - Cleanup Caches and Update Paths

And then Clear Cache again

  • Thanks Catorghans. I've tried these steps, but still no joy. I've updated my civicrm.settings.php to the latest template too. Commented Nov 25, 2015 at 18:26
  • 2
    The weird thing is this: "File does not exist: /etc/apache2/htdocs/civicrm/report/instance/42" is a combination of filesystem ("/etc/apache2/htdocs") and url ("civicrm/report/instance/42"). So it still looks like a setting problem to me. You can also delete the file cache by removing the content in: "sites/default/files/civicrm/templates_c" and remove the file "sites/default/files/civicrm/ConfigAndLog/Config.IDS.ini"
    – Catorghans
    Commented Nov 25, 2015 at 20:41

Ok, my host support team have now fixed the problem. Here's what they did:

In /etc/hosts, your website XXXXXXXXXXXXX.co.uk was pointing to one server IP address, but the Civi website was running on the other IP address. I corrected that and things are working now.

Civi seems to be a little unusual in that it fetches sub-pages via php code running server side; this code was not able to access pages on it's own site.


Another case is when you use Geoip blocking on a server that is not located in one of the allowed IP addresses. For instance when you only allow access from France and the server is located in Germany. In that case you have to specifically allow access from the IP address of the webserver. In my case I used an Apache module and had to add the line "allow from server.ip.address". Without that you lock out the server from accessing itself.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

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