A content management system (CMS) is a computer software system that allows for easy content creation, collaboration, and management. Web content such as this very web site, or the myriad of other news and blog sites on the web are all supported by a CMS system. The chances are that you have already seen and used a CMS, and as I have just set one up for this site I thought it a fitting first subject.
Using a CMS allows for the author (and, if desired, the site users) to create site content easily without having to author static web pages or use special tools. The site and content can be administered right from within the web browser. In addition the actual content is seperated from the visual representation, such that the visual elements can be altered seperately and consistently. This is usually achieved by placing the actual content into a database such as MySQL.
When you get to picking a CMS there are many options to chose from. There is a good comparison of them in Wikipedia. This web site is currently running on Drupal (the CMS) with a MySQL back end to store the content. This was largely due to some personal recommendations, and so far Drupal has been doing a great job. Drupal is very extensible and provides enough modules and flexibility to make anything from simple blogging sites to full fledged collaboration tools.
Simplified steps for setting up a Drupal CMS:
- Download and uncompress the latest install from drupal.org.
- Upload the files to your web server (its essentially a bunch of PHP scripts)
- Set up the database (create, import tables, create user). There is a good video tutorial for this portion.
- Tell Drupal about the database (just one line change in one PHP file).
- Install and set up any extra modules for Drupal. I'd recommend at least the tinymce, print, textimage, captcha and image modules.
- Spend zero to infinite time messing with the themes and colors.
- Realize that different browsers can potentially behave and render pages differently so proceed to install all the popular ones just to test out your pages. In the process realizing that I.E. users have a major pain logging into Drupal unless you mess with one more PHP file and comment out a session_regenerate_id() call. Phew…
And voila! You're done. One CMS system set up and ready to roll.