Note: You are currently viewing documentation for Moodle 1.9. Up-to-date documentation for the latest stable version is available here: Manual installation on Ubuntu.

Manual installation on Ubuntu

From MoodleDocs

The instructions herein refer to the installation of Moodle without using the Debian/Ubuntu package(s). This method, while acceptable on many Linux platforms, is neither consistent with (nor compatible with) Debian/Ubuntu packaged versions of Moodle. Use at your own risk and do not mix with Debian/Ubuntu packages. (These instructions are very old and may be well-outdated.)

Hardy Heron 8.04

Install Ubuntu

Start computer and boot from CD.

Select Install to hard drive.

Select your language, country, and keyboard layout (i.e. English, United States, American English)

Select manually configure and set an IP address (or autoconfig if you don't know).

Enter your servername (i.e. moodletest)

Select to manually edit the partition table. I’m doing my testing on a standard 40GB harddrive and will modify these sizes for production.

/bootext3200MBbootable (may need to be under cylinder 1024 on your harddrive to be bootable)
/ext310GB(files are relatively static)
swap4GB (4xRAM if you don't have much memory, down to 1xRAM if you have gobs of memory)
/varext326GB(variable content – uses rest of the drive)

Select your timezone. (i.e. Central)

Set clock to Universal Time.

Enter Administrators full name. (i.e. Joe Smith)

Enter account name. (i.e. joesmith)

Enter a secure password. (‘abcde’ is not a good one!)

Let the computer restart.

Log in your account.

Edit the /etc/apt/sources.list file. Remove the # mark on lines 22 and 38 to enable access to the universe package source and universe security updates. You will need to re-enter your account password when sudo asks for it.

sudo nano /etc/apt/sources.list  

Now to get all the security updates.

sudo apt-get update

sudo apt-get dselect-upgrade

Normally you would just use sudo apt-get upgrade.

And reboot to run on the new kernel!

sudo reboot

Install MySQL (skip Postgresql)

At this point we'll need to log in again to the server and type:

sudo apt-get install mysql-server php5-mysql

Press Y to continue the install.


Replace the following string NewRootDatabasePassword with a secure password of your own choosing.

There is no space between the -p and the password on the second command.

mysqladmin -u root password NewRootDatabasePassword

mysqladmin -u root -h localhost password NewRootDatabasePassword -pNewRootDatabasePassword

We now need to create the Moodle database and Moodle user in MySQL.

The mysql command will prompt for your NewRootDatabasePassword (from above). Replace NewMoodleDatabasePassword with a secure password of your own choosing.

mysql -u root -p
> CREATE DATABASE moodle DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci;
> GRANT ALL PRIVILEGES ON moodle.* TO moodleuser@localhost IDENTIFIED BY 'NewMoodleDatabasePassword';
> GRANT SELECT,LOCK TABLES on moodle.* TO moodlebackup@localhost IDENTIFIED BY 'MoodleBackupPassword';
> FLUSH PRIVILEGES;
> QUIT

The above also creates a backup user moodlebackup so that you can use mysqldump to make database backups without accident.

Install Postgresql (skip MySQL)

At this point we'll need to log in again to the server and type:

sudo apt-get install postgresql-8.1 php5-pgsql

Press Y to continue the install.

We now need to create the database user 'moodleuser'.

sudo -u postgres createuser -D -A -P moodleuser

Enter in a NewMoodleDatabasePassword here, then answer 'N' to the question.

We now need to create the database 'moodle' for the user 'moodleuser'. You'll need to enter the password that you just created.

sudo -u postgres createdb -E utf8 -O moodleuser moodle

Let's now secure the postgresql database with an admin password.

sudo -u postgres psql template1
# ALTER USER postgres WITH PASSWORD 'NewAdminDatabasePassword';
# \q

Edit the file '/etc/postgresql/8.1/main/pg_hba.conf' and on line 79 change the words ident sameuser to md5.

sudo nano /etc/postgresql/8.1/main/pg_hba.conf

Restart the database so everything is fine.

sudo /etc/init.d/postgresql-8.1 restart

Install Apache

The following mod-security, ldap, and odbc libraries are optional.

sudo apt-get install apache2 libapache2-mod-php5 php5-gd

sudo apt-get install libapache2-mod-security php5-ldap php5-odbc

Restart Apache

sudo /etc/init.d/apache2 restart

Note: To install Moodle 2.0 for the current ubuntu, you need to install PHP from an external repository --Olli Savolainen 19:28, 10 April 2009 (UTC)

Install other software

On the command line, type:

sudo apt-get install openssh-server unattended-upgrades

sudo apt-get install unzip zip aspell-en aspell-fr aspell-de aspell-es

sudo apt-get install curl php5-curl php5-xmlrpc

sudo apt-get install clamav-base clamav-freshclam clamav

Press Y to continue the install after each of these apt-get commands.

The clamav package will support virus checking on file uploads into Moodle. May have to run it again to configure properly.

Additional languages are available for aspell.

Install Moodle

On the command line, type:

cd /var/www

sudo wget http://download.moodle.org/stable19/moodle-latest-19.tgz

sudo tar -zxf moodle-latest-19.tgz

----
in ubuntu 8.04 it should be:
sudo tar zxf moodle-latest-19.tgz
----

sudo mkdir /var/moodledata

sudo chown -R www-data:www-data /var/moodledata
where www-data is whatever user/group was created automatically when apache was installed.

We now need to edit the location of the default web site. On lines five and ten, replace /var/www/ with /var/www/moodle/. Restart Apache. (See page comments for more details on this instruction.)

sudo nano /etc/apache2/sites-available/default  

sudo /etc/init.d/apache2 restart

Configure Moodle website

ifconfig (look for your server’s ip address on the 2nd line).

On another computer open a web browser and put in your server address. Make sure your web browser is set to accept cookies.

Complete the Moodle install using a secure username and password.

Go to a bar for a few hours.

Come back and tell your boss that you FINALLY got the test server running.

Other Resources