Goal

To run moodle (http://moodle.org/) and zope2.7 (http://www.zope.org/) on port 80 of our school computer science web server (http://linus.yhspatriot.net). We are behind a firewall with only port 80 open, so I needed to setup virtual hosting with apache2 to make this work. I wanted linus.yhspatriot.net to point to a zope2.7 instance, and moodle.yhspatriot.net to point to a moodle instance. I found it convenient to have mysql.yhspatriot.net point to mysql-admin as well.

Setting up the server

  1. install ubuntu 5.04 server
  2. edit /etc/network/interfaces for static ip address by changing the primary interface to:

    •     # The primary network interface
          iface eth0 inet static
              address 158.59.195.113
              netmask 255.255.252.0
              gateway 158.59.192.1
  3. edit /etc/apt/sources.list removing cdrom source at top and uncommenting universe sources

  4. do the apt-get dance (apt-get update and apt-get upgrade)

  5. install the following using apt-get:
    • ssh
    • zip and unzip
    • apache2
    • mysql-server
    • phpmyadmin

Configuring mysql

  1. Point a web brower at http://158.59.195.113/phpmyadmin/

  2. By default, username root with no password is enabled

  3. Login, click on "Change password", and change the password
  4. Click "Databases", fill-in "Create new database" with moodle and click "Create"

  5. Click "Privileges" then "Add a new User"
  6. Add user moodle with all "Data" and "Structure" privileges checked

Configuring Apache Modules

  • As root, run the following:
    • ln -s /etc/apache2/mods-available/proxy.conf /etc/apache2/mods-enabled/proxy.conf

  • Repeat with proxy_connect.load and proxy.load

Configuring virtual hosts

  1. Edit /etc/apache2/apache2.conf, adding a NameVirtualHost line, so that the last three lines of the file look like this:

        # Include the virtual host configurations
        NameVirtualHost 158.59.195.113:80
        Include /etc/apache2/sites-enabled/[^.#]* 
  2. Create a file named azi.conf in /etc/apache2/sites-available with the following:

        <VirtualHost 158.59.195.113:80>
        ServerName linus.yhspatriot.net
        ServerAdmin jeff@elkner.net
        ProxyRequests off
        <Proxy *>
        Order deny,allow
        Allow from all
        </Proxy>
        ProxyPass / http://158.59.195.113:8080/
        ProxyPassReverse / http://158.59.195.113:8080/
        ProxyPass /misc_ http://158.59.195.113:8080/misc_
        ProxyPassReverse /misc_ http://158.59.195.113:8080/misc_
        ProxyPass /p_ http://158.59.195.113:8080/p_
        ProxyPassReverse /p_ http://158.59.195.113:8080/p_
        </VirtualHost>
    
    
        <VirtualHost 158.59.195.113:80>
        ServerName mysql.yhspatriot.net
        ServerAdmin jeff@elkner.net
        ProxyRequests off
        <Proxy *>
        Order deny,allow
        Allow from all
        </Proxy>
    
        DocumentRoot /var/www/phpmyadmin/
    
        Options +FollowSymLinks
    
        <IfModule mod_php4.c>
                php_flag magic_quotes_gpc On
                php_flag magic_quotes_runtime Off
                php_flag file_uploads On
                php_flag short_open_tag On
                php_flag session.auto_start Off
                php_flag session.bug_compat_warn Off
    
                php_value upload_max_filesize 2M
                php_value post_max_size 2M
        </IfModule>
    
        <IfModule mod_dir.c>
                DirectoryIndex index.php
        </IfModule>
        </VirtualHost>
    
    
        <VirtualHost 158.59.195.113:80>
        ServerName moodle.yhspatriot.net
        ServerAdmin jeff@elkner.net
        ProxyRequests off
        <Proxy *>
        Order deny,allow
        Allow from all
        </Proxy>
    
        DocumentRoot /var/www/moodle/
    
        Options +FollowSymLinks
    
        <IfModule mod_php4.c>
                php_flag magic_quotes_gpc On
                php_flag magic_quotes_runtime Off
                php_flag file_uploads On
                php_flag short_open_tag On
                php_flag session.auto_start Off
                php_flag session.bug_compat_warn Off
    
                php_value upload_max_filesize 2M
                php_value post_max_size 2M
        </IfModule>
    
        <IfModule mod_dir.c>
                DirectoryIndex index.php
        </IfModule>
        </VirtualHost>
  3. create a sym-link in sites-enabled:

    ln -s /etc/apache2/sites-available/azi.conf /etc/apache2/sites-enabled/azi.conf

Installing moodle

  • My goal was to use packages from the ubuntu and universe repositories whenever possible, but the after several unsuccessful attempts to use the moodle package I found it much easier to install moodle from source, using the following proceedure:
    1. Download the latest moodle source
      • (wget http://download.moodle.org/stable15/moodle-1.5.2.tgz worked at the time this was written

    2. Untar it in /var/www

    3. Point a web browser at http://158.59.195.113/moodle

    4. Run through all the setup pages:
      • use /var/moodledata for data directory (as root):

        1. mkdir /var/moodledata

        2. chown www-data.www-data /var/moodledata

Installing zope2.7

  • As root:
    1. apt-get install zope2.7

    2. apt-get install zope-zwiki

    3. mkzope2.7instance

    4. edit /var/lib/zope2.7/instance/linus/etc/zope.conf changing http-server port to 8080

    Now log into your zope instance and create a SiteRoot, setting the Base to http://linus.yhspatriot.net and the Path to /.


MoodleZope (last edited 2009-04-30 02:42:53 by fooka)