From MissionTechWiki

Description of Content Management Systems

A means of managing web content and separating content from display format. Usually built around a database, and can allow workflow management.

A content management system facilitates the creation and maintenance of websites by separating page content from the way in which it is rendered. This is particularly useful since it allows users with varying competencies to be involved in developing and maintaining sites. In concrete terms, this means that graphic artists and web designers can implement a CMS which others without those skill sets can use to publish text, pictures etc. in a consistent and accessible way. This site is itself a created using a specific kind of CMS called a wiki.

CMSs are usually built using dynamic pages based on scripts written in languages such as PHP, Perl, Java or ASP.NET. These scripts together with formatting information defined in HTML and CSS control the rendering of content stored in either a relational database (e.g. MySQL or SQL Server) or a set of XML files.

The terms Document Management System and Website Management have overlapping concepts with Content Management Systems.

Different implementations and solutions using Content Management Systems

A good place to try out open source CMS is You can compare them at Don't just look for a CMS that does everything, consider the search criteria listed on the page and decide which are most important to your needs. Ease of use of each feature can vary considerably so just because a CMS has a wider range of features doesn't mean it will be more effective.

There are a bewildering number of these, both free and commercial. Commonly used free ones are: Joomla, Drupal, Plone & Typo3. This Wikipedia article is a good introduction to the range of CMSs available.

Some PHP based CMS that would be reasonable for a mission's site:

  • TikiWiki . LOTS of features. Written in PHP and using MySQL database.
    • Not always consistent and the code isn't fantastic.
  • Drupal a popular well written PHP CMS; the base for At its core it is quite simple, yet the community of support and development is thriving as modules are continually being created and committed/supported. Drupal is quite module-oriented, so if you aren't afraid to research and dig up the documentation on the various modules, you can build it out to do exactly what you need it to quite quickly. 5.x has made it very easy to install and manage from both an admin and community standpoint.
  • e107 is quite powerful, and is used by ICTA.
    • Another PHP/MySQL CMS. Code is pretty clean, and very very fast.
    • VERY easy to extend. Has simple installable plugin architecture.
    • Is it complicated? Not at all. One of the easiest to install, configure and use.
  • Mambo is also popular - PHP based. Annoyingly doesn't have any way to upload files builtin, You need to install a component. Means of structuring content and menus can be confusing to the uninitiated. Very nice clean design, but can confuse easily. Admin pages very nice. Note: Mambo has been deprecated, and a fork called Joomla has taken its place. (although it is still cumbersome to utilize)

More complex PHP CMS:

  • Typo3 is probably one of the more complex, yet complete CMS out there and competes with commercial systems. Written in PHP and using MySQL. This is a complex CMS that you don't start using lightly. There are some European missions using this.

Some other non-PHP CMS are:

  • WebGUI is a Perl based CMS. Apparently a bit difficult to install if only using FTP.
  • Plone is a CMS built on Zope which is written in Python. One of the more complex CMS, especially on the installation side since a lot of ISPs won't support Python.
  • openCMS is based on Java and XML technology. OpenCms runs in a "full open source" environment (e.g. Linux, Apache, Tomcat, MySQL) as well as on commercial components (e.g. Windows NT, IIS, BEA Weblogic, Oracle DB).

Original page:
from the MissionTech Wiki created by the International Conference on Computers and Missions

Faith (for Content):