OLPC XS installation
Note: You are currently viewing documentation for Moodle 1.9. Up-to-date documentation for the latest stable version is available here: OLPC XS installation.
OLPC XS (One Laptop per Child School Server)is designed to complement the XO laptop. It is a Linux-based OS (a Fedora-based distribution) engineered to be installed on generic low-end servers.
- 1 Install Moodle from the OLPC XS Image
- 2 Download and burn ISO image
- 3 Assign password and disable dhcp server
- 4 Optional -- Set up Static IP Address
- 5 Optional -- Set up SSH to operate remotely
- 6 Install php, MySQL and other needed components
- 7 Setup MySQL Database
- 8 Get Moodle from CVS
- 9 Create a data directory and set Moodle directory permissions
- 10 Change Apache to use Moodle as the web site
- 11 Setup Moodle
- 12 Install cron
- 13 Other recommended settings
- 14 Next steps
- 15 See also
Install Moodle from the OLPC XS Image
Download and burn ISO image
Download the latest image from http://xs-dev.laptop.org/xs/OLPC_XS_LATEST.iso and burn it to a CD with your favorite disk burning program. These instructions are written from build 160 available since March 11, 2008. You will find a limited amount of information at http://wiki.laptop.org/go/XS_Installing_Software. They specifically say that third party software like Moodle should be installed according to other installation instructions, so this is the attempt to provide those instructions. Note that Moodle Guru Martin Langhoff is now architect of the XS Server software, so Moodle will probably have a more central role in the OLPC project in the future.
Boot from the image to create the server on a fresh hard drive. If you have enough memory you can load the image to RAM first to speed installation. You may need to use fdisk to delete (DANGER) any old Windows partitions if you are creating a server from an old Windows machine.
You will install the software with the command:
The whole installation process may take 10 minutes. You will need to enter a root password. If it displays a bunch of weird characters during installation, ignore that and just let it complete the installation.
Reboot to load from the hard drive and to load the appropriate network hardware, etc.
Assign password and disable dhcp server
When the booted from the hard drive (this may take a longer time if you have a static IP address to set -- it is expected to be assigned an address), login using root as the user and your password that you set at installation. Because of a bug, you will need to reset the root password using this command:
Also, the XS is set up as a dhcdp server to assign network addresses to XO laptops. Unless you need such a server, disable it with this command so it does not mess up your development network.
chkconfig dhcpd off
Optional -- Set up Static IP Address
The server will be connected to the network locally by getting an IP address through your network which will allow you to download the additional installation files. If you connect directly to the Internet through a static IP address, you will want to set up your information with the following interface:
With a static address, you will probably also need to provide DNS information from your Internet Service Provider. Edit this file with your appropriate information.
Optional -- Set up SSH to operate remotely
There is a more secure way to get a special key file to get access to the terminal on the server, but commenting out line "PasswordAuthentication no" lets you get access easily from a remote machine. You can then get access to the server through a ssh client like putty.
Comment out the second "PasswordAuthentication" as below. You should find it under "To disable tunneled clear text passwords, change to no here!"
reboot to take effect
Install php, MySQL and other needed components
Now we download and install other required software for Moodle (about 25 MB)
yum install mysql-server php php-mysql php-mbstring php-gd php-eaccelerator php-xmlrpc php-imap cvs
Setup MySQL Database
First, start the MySQL database
service mysqld start
Set a secure root password for the database
/usr/bin/mysqladmin -u root password 'mySecurePassword'
Note that on a secure production server, you will want to create a different user than root to access the database.
Now log in
mysql -u root -p
Enter your password
Create the Moodle database
mysql> CREATE DATABASE moodle CHARSET 'utf8'; mysql> exit;
Have mysql start when booted
chkconfig mysqld on
Get Moodle from CVS
Go to the directory where Moodle will be installed.
Get the latest version of Moodle 1.9 (check for the most recent released version or the version you are most comfortable with. It may be earlier or later than 1.9 stable. Use the European Union CVS server (you can replace eu with uk, es, or us in this step)
cvs -z3 -d:pserver:firstname.lastname@example.org:/cvsroot/moodle co -r MOODLE_19_STABLE moodle
Create a data directory and set Moodle directory permissions
Create a directory for user and course files (you should still be in the /var/www directory)
Set permissions so that Apache can access the files
chown -R apache:apache moodle chown -R apache:apache moodledata
On a production server, you will want to tighten up privileges further.
Change Apache to use Moodle as the web site
Note that the server comes with Apache running and looking at /var/www/html. But there is nothing in that folder, so one just gets a redirect. Edit as follows to have it point at Moodle instead:
On about line 280 of /etc/httpd/conf, change DocumentRoot "/var/www/html" to
On about line 305 of /etc/httpd/conf, change <Directory "/var/www/html"> to
You can change other values like ServerAdmin and ServerName if appropriate. For all changes, you should restart Apache for the new settings to take effect.
service httpd restart
If you are only going to test Moodle on your internal network, just enter the local IP address as the web address. You can find the local IP address under DHCP by typing
If you have a web address that points to your server, use that instead.
From a browser on another machine, enter
http:// ----- your web address -----
- For the database user, enter root
- For Password, enter the password for the database that you created earlier
Continue through the dialogs and select Unattended operation and set up the Moodle server.
Moodle needs a periodic call to do maintenance work like sending out emails, cleaning up the database, updating feeds, etc. To run the cron every 10 minutes, do the following
Rather than learning vi, use the nano editor
Edit the cron file
Add this line and save.
*/10 * * * * wget -q -O /dev/null http://localhost/admin/cron.php
Use CNTL-X to save
Other recommended settings
A few standard settings should be adjusted to take full advantage of server memory and hard drive space. These recommendations assume at least 1GB of RAM and plenty of hard drives space for all your users.
First, change the amount of memory for caching scripts in eaccelerator. Experience dictates that this should be between 40 and 60 megabytes.The OS default is only about 32 MB, so if you do not change this setting, some of your scripts will not be cached in memory.
Change the size of "0" (which uses the default) to about 64.
eaccelerator.shm_size = "64"
Next, make three changes to php.ini
This will allocated more memory and allow files to be uploaded up to 80MB. This should be enough for most multi-media files. Hard drive space is cheap and the default is only 2MB. It is recommended that you change the settings to the following values:
memory_limit = 40M post_max_size = 80M upload_max_filesize = 80M
You will probably want to install additional software like mediawiki etc. But this will give you a complete Moodle installation for use with the OLPC server.