Environment
From MoodleDocs
An administrator can check that their site meets all system requirements for the current and future versions of Moodle in Settings > Site administration > Server > Environment. It is important to check system requirements prior to upgrading.
Note: some of the PHP extensions are included as standard in later distributions of PHP, depending on platform:
- Iconv is included in PHP from 5.0 onwards on Windows [1]
- Tokenizer is included in PHP from 4.3.0 onwards [2]
- Ctype is included by default from PHP 4.2.0 onwards http://uk.php.net/manual/en/ctype.installation.php
Hardware
- Disk Space: 160MB min
- Memory (RAM): 256 min, 1GB reccomnded, 50 users per 1GB RAM
Software
- Web server software. Such as Apache or IIS.
- PHP scripting language. The exact requirements for PHP in Moodle 2.0 are below.
PHP Configuration
- Version: 5.2.8 or later, it will not support any earlier version.
- PHP Settings. Check these settings in your php.ini or .htaccess file (if you're using Apache). For settings which use ON/OFF as their values, you can substitute 1 for ON and 0 for OFF if you prefer.
- register_globals MUST be OFF
- safe_mode needs to be OFF.
- memory_limit should be at least 128M. Large sites may need more than 128M. PHP 5.2.x requires higher memory_limit values than previous versions of PHP. 64bit operating systems require even more memory.
- session.save_handler needs to be set to FILES.
- magic_quotes_gpc should be OFF. Unlike earlier versions of Moodle.
- magic_quotes_runtime needs to be OFF.
- file_uploads needs to be ON.
- session.auto_start needs to be OFF.
- session.bug_compat_warn needs to be OFF.
- PHP Extensions and libraries
- The mbstring extension is recommended.
- The iconv extension is recommended
- GD library and the FreeType 2 library and extensions are needed to be able to look at the dynamic graphs that the logs pages make. (Freetype support is available as part of the GD extension for the 5.x versions of PHP)
- The mysql extension is required if you are using the MySQL database. Note that in some Linux distributions (notably Red Hat) this is an optional installation.
- The pgsql extension is required if you are using the PostgreSQL database.
- The pdo and pdo_sqlite extensions are required for the (experimental) SQLite 3 database support.
- The curl extension is recommended.
- The tokenizer extension is recommended.
- The curl and openssl extensions are required for the Moodle network functionality.
- The xmlrpc extension is required for the Moodle network functionality.
- The ctype extension is recommended.
- The intl extension is recommended. It is used to improve internationalization support, such as locale aware sorting.
- Other PHP extensions may be required to support optional Moodle functionality, especially external authentication and/or enrolment (e.g. LDAP extension for LDAP authentication and the sockets extension for Chat server).
- PHP Settings. Check these settings in your php.ini or .htaccess file (if you're using Apache). For settings which use ON/OFF as their values, you can substitute 1 for ON and 0 for OFF if you prefer.
Database
- A working database server: MySQL or PostgreSQL are completely supported and recommended for use with any version of Moodle. MySQL is the choice for many people because it is very popular, but there are some arguments in favour of PostgreSQL, especially if you are planning a large deployment.
- MySQL 5.0.25 or
- Postgres 8.3 or
- MSSQL 9.0 or
- Oracle 10.2
- SQLite 3 (experimental)