CNT4603 - 2011 Summer
Group Assignment 4
Journals Due Tuesday, July 5th, at the beginning of class.

Assignment: CMS




Your objective is to set up a Content Management System (CMS). It should be available on ip 192.168.10.(N*10) where N is your group number (for instance, group 5's CMS should be available on 192.168.10.50), and should be responsive to the URL http://192.168.10.(N*10)/ (i.e., I shouldn't have to add any additional path to find your CMS.)

For this assignment, you will use Drupal 7 (available at drupal.org; the most recent 7.x version is 7.4).

The first step for this assignment is to install a mysql server; unlike the default assumption of Drupal that the mysql server is on the same machine as the webserver, please instead install mysql-server on your physical CentOS box.

Inside of that new mysql instance on your CentOS machine, you should then create a new database called drupal, and a new mysql user drupal associated with the webserver ip mentioned in the first paragraph (this is not an actual username on the system — this user is a mysql user, and you should look at the mysql documentation available at mysql.com to see how to create this user). Remember, this user will need permission to come in from the network since the CMS is going to be running a machine separate from the database server.

On your Fedora 15 installation, download Drupal 7 and install it (remember, your database is on your CentOS machine, not localhost). Copious documentation is available on the Drupal website.

While installation is not difficult, there are several "gotchas" lying about. The first and foremost is that you very likely do not have all of the software installed on your machine to run a webserver that provides Drupal. Fortunately, all of the bits that you need are in the repositories, so you won't have to compile software by hand or do anything other than install standard packages.

For example, you will need a webserver on your Fedora machine. The easy choice is to install the Apache package, although there are others that can be made to work if you desire (though making some of them, such as nginx, work correctly with Drupal is more of a challenge than you might expect.) You will also need PHP since Drupal is written in PHP. Consult the Drupal guide for other items — you should expect to install several packages that start with "php-", such as "php-gd".

Another major stumbling block is SeLINUX: it is not Drupal-friendly at all.

Please post some content and create one regular Drupal user named "myuser" with a password "mypassword" so that all of us may login to your drupal server — this has significant security implications, and you should consider how to handle those.

For content, you may use anything you like: a simple poll, or you can use wget to grab real data from, say, www.cs.fsu.edu, or perhaps you might want to create some content around a Bastille Day theme. Another source, of course, is mining your own CMS or other web content if you already have some on the web.

On Tuesday, July 5th, I will use a portion of class to visit each of your Drupal sites so we can all admire your handiwork, so please make sure that everything is working during the class period.



A journal is due for this assignment. Make sure that you document in your journal all of the steps that you went through, following the guidelines on the class home page.

Please turn in a printed copy of this assignment at the beginning of class on Tuesday, July 5th.