From 3cae82fe5245df99c8f0280e7a1d3a6ea26be284 Mon Sep 17 00:00:00 2001
From: moodler This guide explains how to install Moodle for the first time. It goes into some detail
+ about some of the steps, in order to cover the wide variety of small differences between
+ web server setups, so this document may look long and complicated. Don't be put off by this
+ - I usually set Moodle up in a few minutes! Take your time and work through this document carefully - it will save you time later on. Sections in this document: Moodle is primarily developed in Linux using PHP, Apache and MySQL, and regularly
+ tested with PostgreSQL and in Windows XP and Mac OS X environments. All you should need are: On a Windows platform, the quickest way to satisfy these requirements is
+ to download FoxServ,
+ or EasyPHP which will install Apache,
+ PHP, and MySQL for you. Make sure you enable the GD module so Moodle can process
+ images - you may have to edit php.ini and remove the comment (;) from this
+ line: 'extension=php_gd.dll'. On Mac OS X I highly recommend the fink
+ project as a way to download easily-maintainable packages for all of this. If you're on Linux or another Unix then I'll assume you can figure all this out for yourself! ;-) There are two ways to get Moodle, as a compressed package and via CVS. These
+ are explained in detail on the download page on http://moodle.com/ After downloading and unpacking the archive, or checking out the files via
+ CVS, you will be left with a directory called "moodle", containing
+ a number of files and folders. You can either place the whole folder in your web server documents directory,
+ in which case the site will be located at http://yourwebserver.com/moodle,
+ or you can copy all the contents straight into the main web server documents
+ directory, in which case the site will be simply http://yourwebserver.com. Here is a quick summary of the contents of the Moodle folder, to help get
+ you oriented: config.php - the only file you need to edit to get started Moodle will also need some space on your hard disk to store uploaded files,
+ such as course documents and user pictures. Create a directory for this purpose somewhere. For security, it's best that
+ this directory is NOT accessible directly via the web. The easiest way to do this
+ is to simply locate it OUTSIDE the web directory, otherwise protect it
+ by creating a file in the data directory called .htaccess, containing this line:
+ To make sure that Moodle can save uploaded files in this directory, check that
+ the web server software (eg Apache) has permission to write
+ to this directory. On Unix machines, this means setting the owner of the directory
+ to be something like "nobody" or "apache". On many shared hosting servers, you will probably need to restrict all file access
+ to your "group" (to prevent other webhost customers from looking at or changing your files),
+ but provide full read/write access to everyone else (which will allow the web server
+ to access your files). Speak to your server administrator if you are having
+ trouble setting this up securely. You need to create an empty database (eg "moodle") in your database system
+ along with a special user (eg "moodleuser") that has access to that database
+ (and that database only). You could use the "root" user if you wanted to, but
+ this is not recommended for a production system: if hackers manage to discover
+ the password then your whole database system would be at risk, rather than
+ just one database.
+ Example command lines for MySQL: Example command lines for PostgreSQL: (For MySQL I highly recommend the use of phpMyAdmin
+ to manage your databases). As of version 1.0.8, Moodle now supports table prefixes, and so can safely share
+ a database with tables from other applications. Firstly, make sure that your web server is set up to use index.php as a default
+ page (perhaps in addition to index.html, default.htm and so on). In Apache, this is done using a DirectoryIndex parameter in your httpd.conf
+ file. Mine usually looks like this: Just make sure index.php is in the list (and preferably towards the start
+ of the list, for efficiency). Secondly, Moodle requires a number of PHP settings to be active for it to
+ work. On most servers these will already be the default settings.
+ However, some PHP servers (and some of the more recent PHP versions) may
+ have things set differently. These are defined in PHP's configuration
+ file (usually called php.ini): If you don't have access to httpd.conf or php.ini on your server, or you
+ have Moodle on a server with other applications that require different
+ settings, then you can OVERRIDE all of the default settings.
+
+ To do this, you need to create a file called .htaccess in Moodle's
+ main directory that contains definitions for these settings.
+ This only works on Apache servers and only when Overrides have been allowed.
+ You can also do things like define the maximum size for uploaded files:
+ The easiest thing to do is just copy the sample file from lib/htaccess
+ and edit it to suit your needs. It contains further instructions. For
+ example, in a Unix shell:
+ Now you can edit the configuration file, config.php, using a
+ text editor. This file is used by all other files in Moodle. To start with, make a copy of config-dist.php and call it config.php. We
+ do this so that your config.php won't be overwritten in case you upgrade Moodle
+ later on. Edit config.php to specify the database details that you just defined (including
+ a table prefix - notice this is REQUIRED for PostgreSQL), as
+ well as the site address, file system directory and data directory.
+ The config file has detailed directions. For the rest of this installation document we will assume your site is at:
+ http://example.com/moodle The admin page should now be working at: http://example.com/moodle/admin.
+ If you try and access the front page of your site you'll be taken there automatically
+ anyway. The first time you access this admin page, you will be presented with
+ a GPL agreement with which you need to agree before you can continue with the setup. (Moodle will also try to set some cookies in your browser. If you have
+ your browser set up to let you choose to accept cookies, then you must
+ accept the Moodle cookies, or Moodle won't work properly.)
+ Now Moodle will start setting up your database and creating tables to store data.
+ Firstly, the main database tables are created. You should see a number of SQL statements followed by
+ status messages (in green or red) that look like this: CREATE TABLE course ( id int(10) unsigned NOT NULL auto_increment, category
+ int(10) unsigned NOT NULL default '0', password varchar(50) NOT NULL default
+ '', fullname varchar(254) NOT NULL default '', shortname varchar(15) NOT
+ NULL default '', summary text NOT NULL, format tinyint(4) NOT NULL default
+ '1', teacher varchar(100) NOT NULL default 'Teacher', startdate int(10)
+ unsigned NOT NULL default '0', enddate int(10) unsigned NOT NULL default
+ '0', timemodified int(10) unsigned NOT NULL default '0', PRIMARY KEY (id))
+ TYPE=MyISAM SUCCESS ...and so on, followed by: Main databases set up
+ successfully. If you don't see these, then there must have been some problem with the database
+ or the configuration settings you defined in config.php. Check that PHP isn't
+ in a restricted "safe mode" (commercial web hosts often have safe mode turned
+ on). You can check PHP variables by creating a little file containing <?
+ phpinfo() ?> and looking at it through a browser. Check all these and try
+ this page again. Scroll down the very bottom of the page and press the "Continue"
+ link. Next you will see a similar page that sets up all the tables required by
+ each Moodle module. As before, they should all be green. Scroll down the very bottom of the page and press the "Continue"
+ link. You should now see a form where you can define more configuration variables
+ for your installation, such as the default language, SMTP hosts and so on.
+ Don't worry too much about getting everything right just now - you can always
+ come back and edit these later on using the admin interface. Scroll down
+ to the bottom and click "Save changes". If (and only if) you find yourself getting stuck on this page or the next
+ page, unable to continue, then your server probably has what I call the
+ "buggy referrer" problem. This is easy to fix: just edit
+ your config.php and set the variable buggy_referrer to true, then
+ try the page again. The next page is a form where you can define parameters for your Moodle site and the
+ front page, such as the name, format, description and so on.
+
+ Fill this out (you can always go back and change these later) and then press
+ "Save changes". Finally, you will then be asked to create a top-level administration user
+ for future access to the admin pages. Fill out the details with your own name,
+ email etc and then click "Save changes". Not all the fields are
+ required, but if you miss any important fields you'll be re-prompted for them.
+ Make sure you remember the username and password you chose
+ for the administration user account, as they will be necessary to
+ access the administration page in future. Once successful, you will be returned to the main admin page, which contain
+ a number of links arranged in a menu (these items also appear on the home
+ page when you are logged in as the admin user). All your further administration
+ of Moodle can now be done using this menu, such as: Some of Moodle's modules require continual checks to perform tasks. For example,
+ Moodle needs to check the discussion forums so it can mail out copies of posts
+ to people who have subscribed. The script that does all this is located in the admin directory, and is called
+ cron.php. However, it can not run itself, so you need to set up a mechanism
+ where this script is run regularly (eg every five minutes). This provides
+ a "heartbeat" so that the script can perform functions at periods
+ defined by each module. Note that the machine performing the cron does not need to be the same
+ machine that is running Moodle. For example, if you have a limited web hosting
+ service that does not have cron, then you can might choose to run cron on another
+ server or on your home computer. All that matters is that the cron.php file is
+ called every five minutes or so. First, test that the script works by running it directly from your browser: Now, you need to set up some of way of running the script automatically and
+ regularly. You can call the page from the command line just as you did in the example
+ above. For example, you can use a Unix utility like 'wget': Note in this example that the output is thrown away (to /dev/null). The same thing using lynx: Alternatively you could use a standalone version of PHP, compiled to be run
+ on the command line. The advantage with doing this is that your web server
+ logs aren't filled with constant requests to cron.php. The disadvantage is
+ that you need to have access to a command-line version of php. On Unix systems: Use cron. Edit your cron settings from the commandline
+ using "crontab -e" and add a line like: On Windows systems: The simplest way is to use my package moodle-cron-for-windows.zip
+ which makes this whole thing very easy. You can also explore using the built-in
+ Windows feature for "Scheduled Tasks".Installing Moodle
+
+
+1. Requirements
+
+
+
+
+
+
+2. Download
+
+
+3. Site structure
+
+
+
+
+
+ version.php - defines the current version of Moodle code
+ index.php - the front page of the site
+
+ 4. Create a data directory
+
+
+
+
+
+ deny from all
+ 5. Create a database
+
+
+
+ # mysql -u root -p
+ > CREATE DATABASE moodle;
+ > GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP,INDEX,ALTER ON moodle.*
+ TO moodleuser@localhost IDENTIFIED BY 'yourpassword';
+ > quit
+ # mysqladmin -p reload
+
+
+ # su - postgres
+ > psql -c "create user moodleuser createdb;" template1
+ > psql -c "create database moodle;" -U moodleuser template1
+ > psql -c "alter user moodleuser nocreatedb;" template1
+
+ 6. Check your web server settings
+
+
+
+
+ DirectoryIndex index.php index.html index.htm
+
+
+ file_uploads = 1
+magic_quotes_gpc = 1
+short_open_tag = 1
+session.auto_start = 0
+
+
+
+DirectoryIndex index.php index.html index.htm
+php_value magic_quotes_gpc 1
+php_value file_uploads 1
+php_value short_open_tag 1
+php_value session.auto_start 0
+
+
+php_value upload_max_filesize 2M
+php_value post_max_size 2M
+
+
+
+cp lib/htaccess .htaccess
+ 7. Edit config.php
+
+
+8. Go to the admin page
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+9. Set up cron
+
+
+
+ http://example.com/moodle/admin/cron.php
+ Running the script from a command line
+
+
+ wget -q -O /dev/null http://example.com/moodle/admin/cron.php
+
+
+ lynx -dump http://example.com/moodle/admin/cron.php > /dev/null
+
+
+ /opt/bin/php /web/moodle/admin/cron.php
+
+
+(Windows) C:\apache\php\php.exe C:\apache\htdocs\moodle\admin\cron.php
+
+
+ Automatically running the script every 5 minutes
+
+
+ */5 * * * * wget -q -O /dev/null http://example.com/moodle/admin/cron.php
+
++Now that Moodle is running properly, you can create a course.
+Select "Create a new course" from the Admin page (or the admin + links on the home page).
+Fill out the form, paying special attention to the course format. You don't + have to worry about the details too much at this stage, as everything can + be changed later by the teacher.
+Press "Save changes", and you will be taken to a new form where + you can assign teachers to the course. You can only add existing user accounts + from this form - if you want to create a new teacher account then either ask + the teacher to create one for themselves (see the login page), or create one + for them using the "Add a new user" on the Admin page.
+Once done, the course is ready to customise, and is accessible via the "Courses" + link on the home page.
+See the "Teacher Manual" for more details + on course-building.
+
+ +
Version: $Id$
+ + -- 2.39.5