Skip to content

How to install everything from Moodle to MODx

A selection of student work based on Ubuntu 10.10 server and a selection of scripts that include Joomla, Moodle, SMF, Drupal, Gallery and many more.

Most include a short screencast such as this one by Silvio Martins:


Freedom Fry — “Happy birthday to GNU”

The Free Software Foundation is the principal organizational sponsor of the GNU Operating System. FSF’s mission is to preserve, protect and promote the freedom to use, study, copy, modify, and redistribute computer software, and to defend the rights of Free Software users.

Assignment 2

Group Project (40 Marks)

Project is due at 14:00 on Tuesday 3rd May 2011.

As a systems administrator you have been asked to implement the following Internet & Network services using Ubuntu for a company called KhufuNet.

  1. Web Server (Apache) with Virtual Hosting two sites.
  2. DNS Server (BIND), Primary & Secondary
  3. DHCP Server for Ubuntu clients
  4. eMail Server (Postfix) & POP/IMAP Server (Dovecot)
  5. FTP Server
  6. SSH Server
  7. File Server (Samba)
  8. Network Printing (CUPS)

The domain name has already been registered. Apache will host and a WordPress instance;

Other issue that you will need to address include but are not limited to:

  • User & Groups
  • Disk Quotas
  • Monitoring
  • Ease of administration

Lab Topology
The lab topology is made up of two PCs running VMware in “Bridged Mode” and connected via a hub. The virtual machines are specified as follows:

  • VM1 – Ubuntu desktop (DHCP client)
  • VM2 – Apache Server/Name Server 1/Print Server/Samba Server
  • VM3 – eMail Server/Name Server 2/DHCP Server/SSH Server/FTP Server
  • VM4 – Ubuntu desktop (DHCP client)

A single final report and a practical demonstration is required from each group. The report should be posted on your blog so that it can be easily downloaded. The final report should be readable by someone who has little or no experience in this area.

The assignment will be marked as follows:

Practical Demonstration  (15)
Demonstration of a fully working system is required and you will be expected to demonstrate full knowledge of the operation of your group solution.

Final Report (25)
A final group report is required and the following will be assessed:

  • Quality of Report (10)
    Quality and clarity of your group report, presentation, layout  links, spelling, grammar, punctuation, use of appropriate graphics/media and references.
  • Customisation & Integration of Solution (10)
    The degree of customisation and value added by your group. How have you excelled in the delivery of your solution? What value have you added to the basic requirements as set out above?
  • Summary & Conclusion (5)
    In depth analysis of project, what you have learned, what you would do differently if you were to start again, etc. This section should also be included in your Blog under a posting titled “Final Report – Summary & Conclusions”

DHCP, FTP & SSH Servers

DHCP Server

DHCP stands for Dynamic Host Control Protocol and with this protocol a new host on the network can issue a request for IP information. The DHCP server will then provide the host with all of the necessary information it needs to communicate on the network, such as its IP address and netmask and the gateway and DNS servers to use. To install the DHCP server software dhcp3-server:

# apt-get install dhcp3-server

After installation the DHCP server will give an error and will not start, this is normal as we need to first configure the server settings. Here is the topology that we will be using:

Note: Please set your server and desktop VMs to “Bridged Mode”

Next we need to setup a static IP address for the DHCP server. We will need to edit the /etc/network/interfaces file.

# nano /etc/network/interfaces

This file should look as follows:  First we see the loopback network interface,

auto lo
iface lo inet loopback

then the primary network interface,

auto eth0
iface eth0 inet dhcp

Comment out the line iface eth0 inet dhcp and replace with the following lines:

iface eth0 inet static

Next, edit the DHCP configuration file /etc/dhcp3/dhcpd.conf. First make a backup copy:

# cp /etc/dhcp3/dhcpd.conf  dhcpd.backup
# nano /etc/dhcp3/dhcpd.conf

Next we will need to write a subnet declaration, a listing of the IP addresses the DHCP server will hand out to client systems. The file comes with sample subnet declarations; the easiest way to write your own is to remove the comment marks (the # marks) from the lines and enter in your own values. Here, for instance, is what a subnet declaration would look like for a network segment addressed, with a subnet mask of, with the DHCP server configured to use an address range from to

subnet netmask {
option routers;
option domain-name-servers,;
default-lease-time 6000;
max-lease-time 72000;

You can use static DHCP assignments along with a dynamic DHCP subnet declaration if you want. If a server matches a static assignment, it will get that address; otherwise it will default with an address in the dynamic range. Each host that gets a static assignment needs its own host declaration. For instance, here is a host declaration for a host with a MAC address of 00:1f:f3:50:de:14 that will be assigned

host myserver {
hardware ethernet 00:0c:c0:ff:ee:00;
option host-name "myserver";

Next you will need to edit one more file, the /etc/default/dhcp3-server file, to configure which network interfaces the DHCP server will listen on for client requests:

# nano /etc/default/dhcp3-server

Once editing the file, look for the line marked INTERFACES. You’ll need to edit that to allow the DHCP server to listen for requests on your system’s Ethernet card, which is usually eth0:


Save the file, exit your text editor, and reboot your Ubuntu 10.10 Maverick Meerkat system. Once the system restarts, you can launch the DHCP server with this command:

# /etc/init.d/dhcp3-server start
# service dhcp3-server start
# service dhcp3-server restart
# service dhcp3-server stop

FTP Server

File Transfer Protocol (FTP) is a TCP protocol for uploading and downloading files between computers. FTP works on a client/server model. The server component is called an FTP daemon. It continuously listens for FTP requests from remote clients. When a request is received, it manages the login and sets up the connection. For the duration of the session it executes any of commands sent by the FTP client.

Note: Please set your server VM to “NAT Mode” to download from the Internet. Do this by editing /etc/networking/interfaces to enable DHCP from VMware. Switch back to static IP when done.

Some links to get you started:


ServerOpenSSH is a freely available version of the Secure Shell (SSH) protocol family of tools for remotely controlling a computer or transferring files between computers. Traditional tools used to accomplish these functions, such as telnet or rcp, are insecure and transmit the user’s password in cleartext when used. OpenSSH provides a server daemon and client tools to facilitate secure, encrypted remote control and file transfer operations, effectively replacing the legacy tools.

Note: Please set your server VM to “NAT Mode” to download from the Internet. Do this by editing /etc/networking/interfaces to enable DHCP from VMware. Switch back to static IP when done.

Some links to get you started:

Broken Arrow Keys – Ubuntu 10.10

This solution comes from this blog entry.

After installing Ubuntu 10.10 (Maverick Meerkat) in a VMWare Fusion virtual machine on a MacBook Pro, I noticed the arrow keys were were broken in Ubuntu. It turned out that the Fusion install wizard had configured the keyboard to use evdev, which did not work correctly inside the VM. The solution is to reconfigure the keyboard by running the following command:

# dpkg-reconfigure console-setup

To navigate the setup program without the arrow keys, I pressed the first letter of the desired option (eg. “a” for Apple Laptop), then pressed the right command key to cycle downwards through the list. The configuration options that I chose were:

  • Apple Laptop for keyboard
  • UK as origin of keyboard
  • UK as keyboard layout
  • No AltGr
  • No Compose key
  • Enter for the rest of the defaults.

The arrow keys work fine now.

You will have to experiment if you are having trouble with other keyboards.

The Perfect Desktop & Server

Install a new desktop client

This tutorial shows how you can set up an Ubuntu 10.10 (Maverick Meerkat) desktop that is a full-fledged replacement for a Windows desktop, i.e. this has all the software that you need to do the things you do on a Windows desktops. Ubuntu 10.10 desktop features are detailed here.

Install a new server

Now we will install an new instance of Ubuntu Server 10.10 following this tutorial. Because we must run all the steps from this tutorial with root privileges, we can either prepend all commands in this tutorial with the string sudo, or we become root right now by typing:

sudo su
You can as well enable the root login
by running and giving root a password.
sudo passwd root

Download ISPConfig 3 – Install later

We will need to download ISPConfig 3 and install later not now.

cd /tmp
tar xfz ISPConfig-

Step 8

Next we will move to step 8 in the tutorial. Complete this step to update your system.

Step 9, 10, 11

Next follow steps 9, 10, 11.

Step 5 – Install The SSH Server

Install SSH server and test. PuTTY was originally a Windows product but you can install it from the Ubuntu desktop too, use apt-get (and not aptitude) or Synaptic.

Step 15 – Install PureFTPd And Quota

Test this service with the Filezilla client from the Ubuntu desktop

Complete the rest of the setup

You will have to step back and forward to complete the other steps. Please re-read the tutorial to make sure that you have instaled all the services listed.

Step 6 – Install fix for vi

Next change the VMware setting from NAT to Host Only.

Step 7 – Configure the network

Because the Ubuntu installer has configured our system to get its network settings via DHCP, we have to change that now because a server should have a static IP address.

Finally configure a hostname for the server:

echo > /etc/hostname
/etc/init.d/hostname restart

Step 21 – Install ISPConfig 3

To install ISPConfig 3 from the latest released version, do this:

cd ispconfig3_install/install/
php -q install.php

This will start the ISPConfig 3 installer, please go to Step 21 in the tutorial.

Installing LAMP On Ubuntu Sever 10.10

Here is an article that that describes how to install Apache2, PHP5, MySQL on Ubuntu 10.10. This is an alternative and more traditional install as it does not use the scripted install that we used in the lab with tasksel (Ubuntu LAMP Server running WordPress). It doesn’t matter which method you use, the objective is the same, a fully working LAMP server. Use whichever method you wish, however it’s worth looking at this article as the install is more detailed.