Installation FAQ



System information needed for Installation problems forum

When posting questions to the Installation problems forum, try to provide as much background information as possible about your Moodle system. Consider providing some or all of the following:

Make sure you provide a sensible description (never HELP! or URGENT!) and a full description of what you did and what happened. Copy and paste any error messages accurately in full. 'Nothing' is not a symptom, even a blank page is something!


PHP - is it installed and what version do I have?

Make a new file on your web site called info.php, containing the following text, and call it from your browser:

<?PHP phpinfo() ?>

If nothing happens then you don't have PHP installed or your webserver is not configured to handle .php files properly. See the installation docs for some information about where to download it for your computer. See the phpinfo page for details about the content of this page.


I am being told that I need the intl php plugin to continue to install Moodle 2.x

The intl.dll from Zend is part of the PHP 5.2.8 release and later. It is aimed at improving the internationalization of php pages and Moodle 2.x uses it as part of this process. If your install is on a local machine or network, then we can download the latest version of PHP and update your PHP. You then have to uncomment all the required dynamic extensions you need, including the php_intl.dll extension. The problem is then solved. If the install is on a host server, then you need to contact your host and ask them to do the same, As an alternative, we can unzip/untar the download file, copy and paste the intl.dll file to your php/ext folder and include the line:


in the Dynamic Extensions section of your php.ini file.

We can also set the error level using:

 intl.error_level = E_WARNING 

but this is not essential

If we are using a Linux install, use your system package manager or specify compilation flag.

   * Debian 5.0 (& Ubuntu) use: apt-get install php-intl or apt-get install php5-intl 
   * CentOS 5.5 (& RedHat) you should (probably) be using php 5.3 from remi and then use: yum install php-intl

This technique can be applied to any updated dynamic extension from Zend. You may want to use later dll files in your php/ext folder, we can do so by doing the same as above, but be careful, your version may not be able to take full advantage of the extension, or some very new extensions may cause an unexpected instability. The best option is still to update on a regular basis, perhaps once a year or so for the PHP.


What Dynamic Extensions do I really need uncommented in my php.ini file? What else do I need to change?

This assumes you have complete control over the installation and running of your server, if your Moodle is hosted, you need to do something different, which is also discussed below. In the php.ini you need to delete the semi-colon, the ;, from the start of any line to uncomment it. For Moodle, you really should only need to change some values, and make sure the extensions you require are available. These are:

Resource Limits

 memory_limit = 128M     //This is the maximum it requires and on a shared server you may get much less. 

Data Handling

 post_max_size = 512M    //This allows postings of up to 512MB, but set it to suit yourself and your circumstances

Paths and Directories

 doc_root ="driveletter:\path\to\server\active\web\directory"  (e.g. d:\Apache\htdocs or e:\iis\wwwroot )
 extension_dir = "driveletter:\path\to\php\ext" (e.g. d:\php\ext or e:\iis\php\ext)

File Uploads

 upload_max_filesize = 512M    (This is different from the post_max_size this is for file uploads.)

Dynamic Extensions (Windows Only)

PHP 5.3.x
 extension=php_exif.dll      ; Must be after mbstring as it depends on it

These edits and Dynamic extensions cover a range of options here, there are a number of other possibilities, but these listed are the most common ones. Unless you have a specific need, there may not be any reason to deviate from these settings, but if you do, make sure you know what is going to happen. These extensions will also allow us to successfully install and run many other PHP applications.

One example is the Oracle extensions are not shown here, but Oracle can be used for the Moodle database. Another area people often get themselves into trouble is using "Magic quotes". Magic quotes really should be set to off, they were only introduced early in the use of PHP to allow for some inexperienced scripting practices, (read poor, shoddy or dodgy here). If someone is still writing poor scripts, then they deserve to draw attention to themselves and their scripts deleted.


What & where are Moodle's configuration settings stored?

Configuration settings are stored in the config.php file stored in your moodle folder. This file is created during the installation process. If there is a problem and the installation cannot create the file, we can try creating it manually from the Configuration file docs. Top

Downloading previous releases of Moodle

Previous versions of Moodle that are not found on Moodle downloads may be downloaded from[version_number]/ where [version_number] is the number without a point. For example or

You'll see a directory tree with the files displayed. Click on the one you want and download as normal. If you require the latest update of the version, scroll to the end of the list and download the "moodle-latest" file.[version_number].zip[version_number].dmg[version_number}.dmg

For details of how to download a particular weekly version, see the post Looking for VERY specific release of older Moodle.


How to enable and check PHP error logs

PHP can be set up to log errors in a variety of different ways: two of these involve the use of the php.ini file and the ini_set command. See PHP_error_logs.

"Could not find a top level course"

If this appears immediately after you have attempted to install Moodle it almost certainly means that the installation did not complete. A complete installation will ask you for the administrator profile and to name the site just before it completes. Check your logs for errors. Then drop the database and start again. If you used the web-based installer try the command line one. Does your computer definitely have sufficient resource to run Moodle?

Email copies are not being sent from my forums

You must set up cron properly if you want Moodle to send out automatic email from forums, assignments etc. This same process also performs a number of clean-up tasks such as deleting old unconfirmed users, unenrolling old students . Please refer to the cron instructions.



I can't log in - I just stay stuck on the login screen

This may also apply if we are seeing "Your session has timed out. Please login again" or "A server error that affects your login session was detected. Please login again or restart your browser" and cannot log in.

The following are possible causes and actions we can take (in no particular order):

If we are still having problems, read the Cannot log in page. You could also try changing the admin password. Proceed as if you have lost it - see Administration FAQ.


I log in but the login link doesn't change. I am logged in and can navigate freely.

Make sure the URL in your
setting is exactly the same as the one we are actually using to access the site.


Uploaded files give "File not found"

For example: Not Found: The requested URL /moodle/file.php/2/myfile.jpg was not found on this server.

This indicates that slash arguments are not enabled on your web server. Please see Using slash arguments for details.


Why are all my pages blank?

Check the dirroot variable in config.php. You must use complete, absolute pathnames (e.g.)

$CFG->dirroot = "/var/www/moodle";

Another reason might be that PHP has not been configured to support MySQL (or whatever other database we are using). This is common on RedHat and OpenBSD installations. In this case, an error is generated, but since error displays are often disabled by default, all that is seen on the browser is a blank screen. To enable PHP error displays see How to enable and check PHP error logs.

To determine if database support is your problem, insert this as the second line in your config.php file


then reload the web page. Examine the output closely to see if you chosen database is supported. If not, look for a package we are missing.


Why is a particular page blank or incomplete?

If a particular page is blank or incomplete (it doesn't display the footer), before you do anything else switch on Debugging and check your PHP error logs. Having established that PHP error logging is working, reproduce the error. Immediately check the error log file right at the end. Hopefully we will see a PHP error message at or very near the end of the file. This may solve your problem directly or makes it a lot easier to diagnose the problem in the Moodle forums.

See also:

Installation hangs when setting-up database tables

Sometimes the installation will hang when setting up tables, where only half the page displayed in the browser and/or other outputs are removed. You may see truncated MySQL statements, or the "Scroll to continue" link is displayed but no "Continue" button is there.

See Unexpected installation halts for more about solutions that involve:


Why can't I upload a new image into my profile?

If you don't see anything on your user profile pages to let you upload user images then it's usually one of the following:

GD is a library that allows image processing. For example, when all is well with your system, and you upload a new profile image, GD compresses the image and produces two thumbnails, one is 100x100 pixels, and the other is 35x35 pixels.

If Moodle thinks GD is not installed, then we will need to install the GD library.

./configure --with-apxs=/usr/local/apache/bin/apxs --with-xml --with-gd 
--with-jpeg-dir=/usr/local --with-png-dir=/usr --with-ttf --enable-gd-native-ttf 
--enable-magic-quotes --with-mysql --enable-sockets --enable-track-vars 
--enable-versioning --with-zlib


Windows users should see the installation instructions for further help.

3. Remember to restart your webserver (if possible) and re-visit the Moodle configuration page after making any changes to PHP so it can pick up the correct version of GD.

See also: Using Moodle forum discussion Profile pictures for additional information.

Why doesn't my Moodle site display the time and date correctly?

Please check the timezone settings in settings in Administration > Site administration > Location > Location settings.

How do I uninstall Moodle?

Webhost/manual installation: If you have installed Moodle manually or have installed onto a webhost, follow these steps:

sql>DROP DATABASE moodle;

In the above example replace 'moodle' with the name of the moodle database you created when installing.

XAMPP windows installation: If you have installed Moodle on windows through the XAMPP package, follow these steps:


mysqladmin.exe -u USERNAME -p drop DATABASE

Migrating Moodle to a new site or server

Migrating Moodle means that you have to move the current installation to a new server, and so may have to change IP addresses or DNS entries. To do this we will need to change the $CFG->wwwroot value in the config.php on the new server. We will also have to change any absolute links stored in the database backup file (before restoring the file on the new server) either using the Search and replace tool, your text editor or another "search and replace" tool, e.g. sed. For more details see the Moodle Migration page.


Why does my new installation display correctly on the server, but when I view it from a different machine, styles and images are missing?

In the installation instructions, one of the suggested settings for 'webroot' is 'localhost'. This is fine if all you want to do is some local testing of your new Moodle installation. If, however, you want to view your new installation from another machine on the same local area network, or view your site on the internet, we will have to change this setting:


Maximum upload file size - how to change it?

There are several places to change the maximum file upload size. The first place to check is the Administration block. Security -> Site Policies -> and look for "Maximum Uploaded File Size". This is the "maxbyte" variable found in older versions of Moodle (under Admin > Variables). Teachers may also set the maximum file size by the course administration block.

If the above does not provide a large enough figure we will need to make changes in your server settings. The usual place is in your php.ini file (go to Site administration > Server > PHPinfo and check a few lines down for its location). Look for settings upload_max_filesize and post_max_size, setting them both to your desired new value (e.g. '64MB'). We will need to restart the web server for these changes to take effect - e.g. on Linux, /etc/init.d/apache2 force-reload. Check your documentation or just reboot the server. NGINX system administrators should also add client_max_body_size=XXX to the "http" section of their nginx main configuration file. (see more info)

For more help see:


Moodle claims PHP float handling is not compatible

The symptom is that when you try to install or upgrade your Moodle, you get a message "Detected unexpected problem in handling of PHP float numbers".

This forum thread and MDL-18253 have more information. In short, this problem should not happen, we can help us by telling posting information about exactly which version of PHP, and OS we are using. That may let us find a way to work around this problem.

You may be able to solve this issue by installing a more recent PHP versions. If you compile PHP yourself from source, changing the compilation options may help. However, since we don't understand the cause, we don't really know. If you do find a solution that works for you, please do tell us about it.

Update: we have a guess that the problem may be the 'precision' setting in your php.ini file. In a default PHP install this is set of 14. On at least one server that exhibited this problem it had been changed to a smaller value. So, if you see this problem, please try adding

ini_set('precision', 14);

to your config.php file, and report your success in MDL-18253.

When upgrading Moodle claims my MySQL database is not UTF8 when I'm sure it is

The UTF-8 detection for MySQL databases was finally fixed in Moodle 2.5, some incorrectly configured databases were previously reported as compatible.

Please note it is not enough to alter the charset and collation of the database, you must fix each text column in each database table!

Before going any further make sure you understand the difference between character encoding (how text is stored) and collations (the rules for comparing text strings). Collation problems will never cause this error but have a bunch of problems of their own.

See Converting your MySQL database to UTF8


How do I run multiple instances of Moodle without duplicating base code?

See this thread for a detailed explanation by Martin Langhoff.

What is FreeTDS and how can I use it in my installation?

FreeTDS is an open source implementation of the Tabular Data Stream protocol used by Microsoft SQL Server and Sybase for their databases. Unfortunately, Microsoft servers don't usually accept TDS 5.0 connections. FreeTDS allows your Unix/Linux applications to talk to these other database products and import and export data between different systems successfully.

How do I install a plugin?

Please see Installing plugins.

I can't enable a plugin on the Plugins overview page because the icon is not clickable

The open and closed eye icon on the Plugins overview page is simply there to show whether or not a plugin is enabled. We can't edit plugins from this screen. If you wish to enable a plugin, to to the appropriate page for managing the type of plugin you need, for instance Settings>Site administration>Plugins>Repositories>Manage repositories or Settings>Site administration>Plugins>Activity modules>Manage activities.

See also

Once your site is installed use these movies to inform your initial site setup;

Installing Moodle in a shared web hosting environment: