I am, as any of my students will be able to tell you, a huge fan of WordPress: it is stable, sophisticated, powerful and flexible, all whilst being very simple to use. Last year I rebuilt our school website using WP, and this year I have migrated our school blogging platform from Blogger to WordPress. It has certainly made my life much easier. What’s great about WP is that you can run many individual sites from one installation (this used to be a seperate project called WPMU, but it recently got merged into WP). This means that I can create a new blog for a student in a matter of seconds, and administer the whole lot from a single interface.

Whilst I started off working on what I was calling “ICHK Blogs”, the power of WordPress has in fact allowed me to turn into our very own alternative to Google Sites. We call it ICHK Sites (original, I know), and I can now give any member of staff, student team, department or event a website of their own.

Below are some instructions I put together whilst setting up this same configuration one of our sister schools, HLYIS. I used a surplus Core 2 Duo PC, and started off by installing Ubuntu Server. It is a fairly technical process, but any competent technician should be able to follow these instructions. In total it took me around 3 hours to get it all up and running.

Note: useful Linux commands are shown in pink italics, values you need to replace are shown in [square brackets].

Stage 1: Prep server

  1. Download Ubuntu Server and install it (http://ubuntuguide.org/wiki/Ubuntu:Natty). Ensure to check LAMP option during install, as well as any others needed
  2. Set your server’s IP address to a fixed value (http://www.ubuntugeek.com/ubuntu-networking-configuration-using-command-line.html).
  3. Set a DNS record to point to the IP address of the server. It is important to use domain-based URL for rest of setup, rather than IP, otherwise you will just be making more work for yourself down the line. Install FTP server software (sudo apt-get install vsftpd)
  4. Install SSH server software for remote admin access (sudo apt-get install sshd)
  5. Install phpmyadmin (https://help.ubuntu.com/community/phpMyAdmin#Installing_From_Package))
  6. Enable mod rewrite on the Apache HTTP server (sudo a2enmod rewrite)

    Stage 2. Install WordPress

    1. Go to phpmyadmin (browser to http://[yourdomain]/phpmyadmin, login as root with password created during mysql installation when installing server)
    2. Create a new database
    3. Connect via SSH (ssh -l [username] [ipaddress])
    4. Change owner of server’s web root folder and all child folders and files (sudo chown -Rfv [username] /var/www)
    5. Change permissions to get ready for installation (chmod -Rv 755 /var/www)
    6. Make uploads directory (mkdir /var/www/wp-content/uploads)
    7. Change permissions for uploads (chmod -Rv 777 /var/www/wp-config/uploads)
    8. Go to /var/www (cd /var/www)
    9. Remove Apache’s standard index page (rm index.html)
    10. Download WP (wget http://wordpress.org/latest.tar.gz)
    11. Unzip WP (tar -xzvf latest.tar.gz)
    12. Remove WP tarball (rm latest.tar.gz)
    13. Move WP up one level (mv /var/www/wordpress/* /var/www)
    14. Remove empty WP folder (rmdir wordpress)
    15. Point your browser to your wordpress install (e.g. http://[yourdomain])
    16. Follow WordPress install instructions on screen.
    17. Log in

    Stage 3: Configure multisites

    1. Enable permalinks (http://codex.wordpress.org/Using_Permalinks). This uses Apache’s mod rewrite extension which we set up earlier.
    2. Configure multisite (http://codex.wordpress.org/Create_A_Network)
    3. Create users and sites
    4. Add themes
    5. Add plugins
    6. Play!

      Please feel free to get in touch with me if you have any questions, comments or suggestions.