Note: You are currently viewing documentation for Moodle 3.9. Up-to-date documentation for the latest stable version of Moodle may be available here: Configuration file.

Configuration file: Difference between revisions

From MoodleDocs
m (Reverted edits by Vicentina (talk) to last revision by Helen Foster)
 
(18 intermediate revisions by 11 users not shown)
Line 1: Line 1:
{{Installing Moodle}}
The name for Moodle's configuration file is config.php. The file is located in the moodle directory. It is not included in the Moodle download packages and is created by the installation process from the template file config-dist.php (which is included in Moodle packages).
The name for Moodle's configuration file is config.php. The file is located in the moodle directory. It is not included in the Moodle download packages and is created by the installation process from the template file config-dist.php (which is included in Moodle packages).




==Sample config.php file==
==config-dist.php==
Although the installation process creates the config.php file for you, there may be times when you want to do this yourself. Here is a sample config.php file to work from.
Although the installation process creates the config.php file for you, there may be times when you want to do this yourself. A sample config file, called config-dist.php, is shipped with Moodle.


'''WARNING''': You may want to edit the config.php file directly if, for example, you change you database password or change servers completely. If you do so, be very careful that there are no spaces or line breaks after the final "?>" in the file. If there are such spaces, you may get blank pages.
To get started simply copy config-dist.php to config.php, then edit config.php with you favourite editor. The file is very well commented. The important options (which you must supply) are all nearer the top. Other less common options are further down.


<pre><?php  /// Moodle Configuration File
==Setting $CFG->wwwroot correctly==
This setting must be a fixed URL (a string constant) that points to your site. Do not try to set this with any PHP code that can generate a variable URL. This is not supported, can cause strange problems and will stop command line scripts working completely. If your site is accessed from different IP addresses this should be done with a split DNS, see [[Masquerading]]


unset($CFG);
If you change your site from http to https, you '''MUST''' update this setting. If you don’t, you will have problems - for example (but not limited to) css scripts won’t load properly and you will also experience problems with logging in to your site. Also see [[Transitioning_to_HTTPS]]
 
$CFG->dbtype    = 'mysql';
$CFG->dbhost    = 'localhost';
$CFG->dbname    = 'moodle17';
$CFG->dbuser    = 'moodleuser';
$CFG->dbpass    = 'xxxxxx';
$CFG->dbpersist =  false;
$CFG->prefix    = 'mdl_';
 
$CFG->wwwroot  = 'http://www.mymoodle.com/moodle';
$CFG->dirroot  = '/var/www/moodle';
$CFG->dataroot  = '/var/moodledata';
$CFG->admin    = 'admin';
 
$CFG->directorypermissions = 00777;  // try 02777 on a server in Safe Mode
 
$CFG->unicodedb = true;  // Database is utf8
 
require_once("$CFG->dirroot/lib/setup.php");
// MAKE SURE WHEN YOU EDIT THIS FILE THAT THERE ARE NO SPACES, BLANK LINES,
// RETURNS, OR ANYTHING ELSE AFTER THE TWO CHARACTERS ON THE NEXT LINE.
?></pre>


==Enabling password salting==
==Enabling password salting==
Line 39: Line 19:
==Including passwords in backups==
==Including passwords in backups==


Hashed user passwords are no longer saved in backup files containing user data in Moodle 1.8.11 and 1.9.7 onwards.
Hashed user passwords are no longer saved in backup files containing user data.


If you really need passwords to be saved (in the rare case of restoring a backup with user data to a different site), the following line may be added to config.php:
If you really need passwords to be saved (in the rare case of restoring a [[Backup of user data|backup with user data]] to a different site), the following line may be added to config.php:


  $CFG->includeuserpasswordsinbackups
  $CFG->includeuserpasswordsinbackup = true;
 
Note regarding restoring Moodle 2.5 backups to sites with old PHP versions:
 
Because bcrypt is not supported in PHP versions below 5.3.7, course backups made using the $CFG->includeuserpasswordsinbackup setting on a site using PHP version 5.3.7+ that are subsequently restored to a site with PHP version < 5.3.7 will require a password reset.


==Changing default block layout for new courses==
==Changing default block layout for new courses==
Line 49: Line 33:
See [[Block layout]].
See [[Block layout]].


==Changing default theme directory location==
==Adding extra theme directory location==
The location of theme directorys may be altered, using the variables ''$CFG->themewww'' and ''$CFG->themedir''. Themes from placed in the directory specified by these variables will then be available for selection using the theme selector.
It is possible to add an extra themes directory stored outside of $CFG->dirroot. This local directory does not have to be accessible from internet. Themes placed in the directory specified by these variables will then be available for selection using the theme selector.


For example, should you wish to place themes in a subdirectory called 'my_moodle_themes', your config.php might look like this:
For example, should you wish to place extra themes in a subdirectory called 'my_moodle_themes', your config.php might look like this:
<pre>
<pre>
$CFG->wwwroot  = 'http://my.moodle.site.edu';
$CFG->wwwroot  = 'http://my.moodle.site.edu';
$CFG->dirroot  = '/var/www/my.moodle.site.edu/public_html';
$CFG->dirroot  = '/var/www/my.moodle.site.edu/public_html';
$CFG->themewww  = $CFG->wwwroot . '/my_moodle_themes';
$CFG->themedir  = $CFG->dirroot . '/my_moodle_themes';
$CFG->themedir  = $CFG->dirroot . '/my_moodle_themes';
</pre>
</pre>


==The config-dist.php file==
==Disabling update notifications==


The config-dist.php file http://cvs.moodle.org/moodle/config-dist.php?view=markup is the template file. It contains the usual settings of a config.php file, with lots of additional settings that don't currently have a UI for them. To use these settings you have to add them to the configuration file.
See [[Notifications]].
 
==Enabling debugging==
 
See [[Debugging]].
 
==Forcing the value of admin settings==
 
As explained in config-dist.php, it is possible to specify normal admin settings here, the point is that they can not be changed through the standard admin settings pages any more. Just set the value in config.php like:
 
<code php>
$CFG->showuseridentity = 'email,idnumber,username';
</code>


==See also==
==See also==


* Using Moodle [http://moodle.org/mod/forum/discuss.php?d=137889 Moodle Salting] forum discussion
* Using Moodle [http://moodle.org/mod/forum/discuss.php?d=137889 Moodle Salting] forum discussion
[[Category: Administrator]]


[[de:Konfigurationsdatei]]
[[de:Konfigurationsdatei]]
[[es:config.php]]
[[fr:Fichier de configuration]]
[[fr:Fichier de configuration]]
[[ja:設定ファイル]]
[[ja:設定ファイル]]

Latest revision as of 06:46, 15 May 2020

The name for Moodle's configuration file is config.php. The file is located in the moodle directory. It is not included in the Moodle download packages and is created by the installation process from the template file config-dist.php (which is included in Moodle packages).


config-dist.php

Although the installation process creates the config.php file for you, there may be times when you want to do this yourself. A sample config file, called config-dist.php, is shipped with Moodle.

To get started simply copy config-dist.php to config.php, then edit config.php with you favourite editor. The file is very well commented. The important options (which you must supply) are all nearer the top. Other less common options are further down.

Setting $CFG->wwwroot correctly

This setting must be a fixed URL (a string constant) that points to your site. Do not try to set this with any PHP code that can generate a variable URL. This is not supported, can cause strange problems and will stop command line scripts working completely. If your site is accessed from different IP addresses this should be done with a split DNS, see Masquerading

If you change your site from http to https, you MUST update this setting. If you don’t, you will have problems - for example (but not limited to) css scripts won’t load properly and you will also experience problems with logging in to your site. Also see Transitioning_to_HTTPS

Enabling password salting

See Password salting.

Including passwords in backups

Hashed user passwords are no longer saved in backup files containing user data.

If you really need passwords to be saved (in the rare case of restoring a backup with user data to a different site), the following line may be added to config.php:

$CFG->includeuserpasswordsinbackup = true;

Note regarding restoring Moodle 2.5 backups to sites with old PHP versions:

Because bcrypt is not supported in PHP versions below 5.3.7, course backups made using the $CFG->includeuserpasswordsinbackup setting on a site using PHP version 5.3.7+ that are subsequently restored to a site with PHP version < 5.3.7 will require a password reset.

Changing default block layout for new courses

See Block layout.

Adding extra theme directory location

It is possible to add an extra themes directory stored outside of $CFG->dirroot. This local directory does not have to be accessible from internet. Themes placed in the directory specified by these variables will then be available for selection using the theme selector.

For example, should you wish to place extra themes in a subdirectory called 'my_moodle_themes', your config.php might look like this:

$CFG->wwwroot   = 'http://my.moodle.site.edu';
$CFG->dirroot   = '/var/www/my.moodle.site.edu/public_html';
$CFG->themedir  = $CFG->dirroot . '/my_moodle_themes';

Disabling update notifications

See Notifications.

Enabling debugging

See Debugging.

Forcing the value of admin settings

As explained in config-dist.php, it is possible to specify normal admin settings here, the point is that they can not be changed through the standard admin settings pages any more. Just set the value in config.php like:

$CFG->showuseridentity = 'email,idnumber,username';

See also