]> git.mjollnir.org Git - moodle.git/commitdiff
Adding this back again to help brand-new installations and to keep
authormoodler <moodler>
Sun, 29 Dec 2002 15:06:31 +0000 (15:06 +0000)
committermoodler <moodler>
Sun, 29 Dec 2002 15:06:31 +0000 (15:06 +0000)
some old links alive.

doc/install.html [new file with mode: 0755]

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