<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 under Windows XP and Mac OS X environments.</p>\r
+ tested with PostgreSQL and in Windows XP and Mac OS X environments.</p>\r
<p>All you should need are:</p>\r
- <ul>\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\r
- <LI>File uploading\r
+ <LI>File uploading allowed\r
</UL>\r
- <li>a working database server (<A HREF="http://www.mysql.com/">MySQL</A> for \r
- now, but soon it will support PostgreSQL, MSSQL, Oracle, Interbase, Foxpro, \r
- Access, ADO, Sybase, DB2 or ODBC).</li>\r
+ <li>a working database server (<A HREF="http://www.mysql.com/">MySQL</A> or <A HREF="http://www.postgresql.org/">PostgreSQL</A>. (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
</ul>\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
images - you may have to edit php.ini and remove the comment (;) from this \r
line: 'extension=php_gd.dll'.</p>\r
<p>On Mac OS X I highly recommend the <a href="http://fink.sourceforge.net/">fink</a> \r
- project.</p>\r
+ project as a way to download easily-maintainable packages for all of this.</p>\r
</blockquote>\r
<P> </P>\r
<H3><A NAME="downloading"></A>2. Download</H3>\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 via the web. The easiest way to do this\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
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 "nobody" or "apache".</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> </P>\r
<H3><A NAME="database"></A>5. Create a database</H3>\r
the password then your whole database system would be at risk, rather than \r
just one database.\r
</p>\r
- <p>eg for MySQL: </p>\r
+ <p>Example command lines for MySQL: </p>\r
<PRE>\r
# mysql -u root -p\r
> CREATE DATABASE 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>Note that Moodle currently does not yet support table name prefixes, and works best with a whole \r
- database to itself. If you do want to install Moodle in a database that already contains\r
- tables, and are SURE that Moodle tables will not conflict with any tables\r
- that you already have installed, then you can call this script in your moodle \r
- installation: admin/forcetables.php</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> </P>\r
<H3><A NAME="webserver" id="webserver"></A>6. Check your web server settings</H3>\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, as \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