NEW INSTALLS 0 Check to see if webapp-config automatically installed moodle for you in /var/www/localhost/htdocs. You should see a directory in there called moodle. If it didn't install it manually: webapp-config -d moodle -I moodle X.Y.Z Replace X.Y.Z with whatever version you just emerged. 1 Edit the config.php file found at /var/www/localhost/htdocs/moodle/config.php You should probably change the database password, $CFG->dbpass = 'moodle_pass' to something more obscure. Also, if your system has a FQDN, change the $CFG->wwwroot = 'http://localhost/moodle' to match the URL of your moodle installation. IF YOU ARE USING MYSQL, do step 2a IF YOU ARE USING POSTGRESQL, do step 2b 2a Create a new mysql database and account with the appropriate privileges. Make sure the username, password and database match their values in config.php from step 1. Connect to your mysql server using mysql -p -u root and at the mysql> prompt issue the following commands CREATE DATABASE moodle_db; GRANT ALL ON moodle_db.* TO moodle_user@localhost IDENTIFIED BY 'moodle_pass'; flush privileges; 2b Issue the following commands at a shell, making sure the username, password and database match their values in config.php from step 1. su - postgres psql -c "create user moodle_user createdb;" template1 psql -c "alter user moodle_user with encrypted password 'moodle_pass';" template1 psql -c "create database moodle_db with encoding 'unicode';" -U moodle_user template1 psql -c "alter user moodle_user nocreatedb;" template1 su - root /etc/init.d/postgresql-X.Y reload Replace X.Y with your version postgresql. NOTE: Moodle docs say that moodle only works with postgresql-7, but I've used it with 8 no problems. 3 Direct your browser to the URL in step 1. You should see the license agreement. Click "Yes" to continue. 4 You are now about to install. Click the checkbox for "Unattended operation" and "Continue" to start. Follow the wizard as you "Setup administrator account" and configure the "Front Page settings". 5 You now have a working installation. Before putting it into production, you'll probably want to check that everything is sane. In the "Site Administration" block, click on Server -> Environment Make sure that you've got the green okay on all the Server Checks. If you don't, click on the ? icons for popup help. 6 Add a cron-job to root's crontab. su - root crontab -e # fcrontab -e if you use fcron then add the line */30 * * * * root php -q /var/www/localhost/htdocs/moodle/admin/cron.php > /dev/null 7 For more information on installing moodle, see http://docs.moodle.org/en/Installing_Moodle For information on working with moodle, see http://moodle.org/support/ ================================================================= UPGRADES 0 Before any upgade you should backup your database in case you have to roll back. The moodle dirroot directory ($CFG->dirroot in the config.php file) isn't as critical since you can always reinstall that with web-apps. The moodle data root ($CFG->dataroot in config.php), where files are uploaded, will not be touched. But the upgrade will probably change your db schema, and the new format may not be backward compatible. For mysql use mysqldump -u moodle_user -p -C -Q -e --create-options moodle_db > moodle-backup.sql or for postgresql use su - postgres pg_dump moodle_db > moodle-backup.sql If you have to fall back, you can do so using mysql -p -u moodle_user moodle_db < moodle-backup.sql or su - postgres psql moodle_db < moodle-backup.sql TEST THIS! PRACTICE THIS! Make sure it will work for you if you have to fall back. 1 Emerge the new moodle ebuild. Be prepared to add USE flags for php and re-emerge it since upgrades may require new functionality from php. Remember to restart apache after re-emerging php! 2 If the ebuild didn't do it for you, update using webapp-config -d moodle -U moodle X.Y.Z 3 Aim your browser to the URL in the config.php file defined by $CFG->wwwroot. You will get a message that you are about to automatically upgrade your server and cannot go back. This is why you backed up your db in step 1. You can go back if you use webapp-config to install the older version AND drop the new db and restart the old one. You did practice restoring, right? 4 Click "Continue" and follow through with the upgrade. ================================================================= UNINSTALL 1 Make sure you really want to do this. I mean REALLY! After step 3 you will be past the point of no return. 2 If you just want to uninstall the webapp, do the following and no more! emerge --unmerge moodle Your data is still in the db and in the moodledata dir. !!!!!!!!! POINT OF NO RETURN !!!!!!!!! 3 Uninstall the uploaded files rm -rf /var/lib/moodledata IF YOU ARE USING MYSQL, do step 4a IF YOU ARE USING POSTGRESQL, do step 4b 4a Connect to your mysql server using 'mysql -p -u root' and at the mysql> prompt issue the following commands: DROP DATABASE moodle_db; DROP USER moodle_user@localhost ; 4b Issue the following commands su - postgres psql -c "drop database moodle_db;" template1 psql -c "drop user moodle_user;" template1 5 Remove the root cron-job su - root crontab -e # fcrontab -e if you use fcron and delete the line added above. ================================================================= ADDITIONAL PHP REQUIREMENTS Moodle allows for many method of authentication. To see what these are, in the "Site Administration" block, click on Users -> Authentication -> Manage Authentication Moodle will try to authenticate by each method in order until it either succeeds or exhausts the list and fails. In order to use some of these methods, you need to make sure PHP was compiled with the correct support. You will know that you do not have the correct support compiled in if authentication by all previous methods fails, and you encounter a method for which PHP does not have support. An error will be thrown and reported in the web page. Currently, the ebuild has support for the following Auth Method USE flag IMAP(S) or POP3(S) imap LDAP or CAS ldap External database odbc RADIUS radius