User Tools

Site Tools


build:cms

This is an old revision of the document!


Drupal

Drupal is a popular Content Management System (CMS). It is used to handle web sites that include various components of functionality.

Requirements

We evaluated several CMS packages to see which one best meets our needs. We used the following criteria:

  • Must be Open Source / Free Software
    • Active community, so we know it'll be well supported into the future
  • Looks like a "normal" web site, with mostly static content
    • Packages like Plone and PHP-Nuke pretty much fail in this respect
    • Most Wikis fail in this respect
  • Editing a page is moderately easy, using wiki-like syntax or a WYSIWYG
    • We don't want to have to edit raw HTML, but would like the ability to
  • Accounts/ACLs limit who can edit pages, on a per-directory basis
    • Different groups of people will have different access rights
    • Flexible authentication (LDAP, passwd, MySQL, etc.)
  • URLs look like URLs of a "normal" web site
    • Allows us to mirror the structure of our existing web site
    • Uses Apache mod_rewrite, but the CMS needs to be aware of the rewriting
  • Should use modern standards and practices, such as XHTML and CSS
    • CSS is essential to making the site work well
      • Our existing sites were a mess of FONT tags
    • XHTML isn't necessary; valid HTML 4.01 would suffice
  • Not too hard to install or customize
    • PHP or Perl (mod_perl) preferred
    • Nothing more complex storage-wise than MySQL or PostgreSQL
    • Java-based systems are probably too hard to use
    • Zope is difficult to get working right
  • Expandable, so we can add non-static pages later
    • We'll probably want to add things such as a calendar of events, polls, etc.
    • Bonus points if it's easy to integrate 3rd-party packages
  • Site search
  • Templates, so all pages have the same structure

Other things that would be nice:

  • Site statistics
  • RSS feeds
  • Per-user configuration
  • Integration with MailMan
  • Forums
    • Especially if the forums have bi-directional gateway with MailMan lists

Pre-Requisites

Drupal requires the following:

  • Apache
  • PHP (4.3.3+ or 5.x)
  • MySQL (4.1 or higher)

Installation

NOTE: This documentation covers downloading pre-6.0 versions. We expect 6.0 to come out before we are in production. We think that preparing for 6.0 now will keep us from having to upgrade in the near future, when 4.x and 5.x versions become obsolete.

Download Drupal:

cd /home/web/test.sluug.org/
wget http://drupal.org/files/projects/drupal-cvs.tar.gz

Unpack the program:

tar xfz drupal-cvs.tar.gz
rm drupal-cvs.tar.gz

Create a directory for uploaded attachments (TODO: not sure if this is still required):

mkdir drupal-cvs/files
chmod 2755 drupal-cvs/files

Change the ownership of the files:

chown -R www-data:www drupal-cvs
find ./drupal-cvs -type d | xargs -L1 chmod g+ws
find ./drupal-cvs -type f | xargs -L1 chmod g+w

Create MySQL database (replace $DRUPAL_MYSQL_USER with the real username, and $DRUPAL_MYSQL_PWD with the real password):

mysql
  CREATE DATABASE drupal;
  GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, INDEX, ALTER, CREATE TEMPORARY TABLES, LOCK TABLES
    ON drupal.* TO '$DRUPAL_MYSQL_USER'@'localhost' IDENTIFIED BY '$DRUPAL_MYSQL_PWD';
  FLUSH PRIVILEGES;
  \q

Save the username and password in a [drupal] section of /root/.my.cnf for safe-keeping.

Point the "current" directory, where the Apache instance points, to the just-downloaded version:

ln -sf drupal-cvs current

Launch the site (http://test.sluug.org/). You should see the Drupal Database Configuration page. Select the mysqli database connector. Enter the name of the database, the database user, and the database user's password (from above).

Click on the Save button, and you should get a screen saying Drupal installation complete. Click on the link to visit the new site.

Click on the link to create the first account. This first account will have full admin priveleges. Call the account 'admin'. Enter an email address. For the very first account, the password will be randomly generated and printed to the screen. Record the password in /root/.my.cnf for safe-keeping. Change the user's time zone.

Set up a cron job to do some housekeeping activities once every hour, and run it once initially:

echo 'wget -O - -q http://test.sluug.org/cron.php' > /etc/cron.hourly/drupal
chmod +x /etc/cron.hourly/drupal
/etc/cron.hourly/drupal

Configuration

Login to the site with the new 'admin' account and the password that was selected for you. Make sure .htaccess is set properly, before trying to get Clean URLs to work.

All configuration is done via the Administer menu on the left.

Site Configuration

Site Information

Name: Saint Louis UNIX Users Group

E-mail address: webhead@sluug.org

Slogan: Open Source, Open Standards, Open Systems

Mission: To promote Open Source, Open Standards, and Open Systems.

Footer message: Copyright © 2007 by Saint Louis UNIX Users Group

Anonymous user: Guest

Default front page: home

Clean URLs

Click on the "Test Clean URLs" link.

Clean URLs: Enabled

Date and Time

Default time zone: -0500 (NOTE: For Central Daylight Time; use -0600 if not in Daylight Saving Time)

Configurable time zones: Enabled

Short date format: 2007/08/20 12:17pm

Medium date format: Mon, 2007/08/20 12:17pm

Long date format: Monday, August 20, 2007 - 12:17pm

First day of week: Sunday

Error Reporting

Error reporting: Write errors to the log

Discard log entries older than: 4 weeks

File System

File system path: files

Temporary directory: /tmp

Download method: private

Page Caching

Caching mode: normal

Minimum cache lifetime: none

Site Maintenance

Site offline message: The Saint Louis UNIX Users Group web site is currently under maintenance. We should be back shortly. Thank you for your patience.

TODO: Input Formats

NOTE: We really have to wait until we define roles for this to work right. We should also wait for installation of modules that add new input filters.

User Management

User Settings

Public registrations: Visitors can create accounts but administrator approval is required.

CHECK: Require e-mail verification when a visitor creates an account

Picture support: Enabled

Roles

Add roles:

  • web admin
  • web editor
  • board member
  • officer
  • silver member
  • gold member
  • platinum member
  • voting member

Administer/Access Control/Permissions

	Give web admin all rights.
	TODO: Give other rights to other users.

Administer/Modules

	Enable: aggregator, archive, comment, forum, help, menu, node, page, path, ping, poll, profile, 
		search, statistics, story, taxonomy, throttle, tracker, upload
	(Save so you can enable throttling.)
	Enable throttling: aggregator, archive, comment, forum, help, poll, profile, tracker, upload

Administer/Blocks/List

	Enable everything but Recent Comments.
	TODO: Check Custom for everything but Navigation, User Login, and Throttle Status???
	Set weights:
		Navigation: -10
		User login: -9
		Most recent poll: -5
		Syndicate: 10
	Change to the right side:
		Popular content
		Most recent poll
		Who's new
		Syndicate

Administer/Settings/Profile

	Add single-line text field:
		Category: Personal Info
		Title: Real Name
		Form name: profile_realname
		Explanation: Please enter your real name.
		Weight: -5
		Visibility: Private field
		The user must enter a value.
		Visible in user registration form.
	Add single-line text field:
		Category: Personal Info
		Title: Location
		Form name: profile_location
		Explanation: Please enter the city (and state) you live in. (For consistency, please spell out the word "Saint" if applicable.)
		Weight: -3
		Visibility: Public field, content shown on profile page and on member list pages.
		Page title: City (TODO: Not sure what to put here.)
		The user must enter a value.
		Visible in user registration form.
	TODO: More user info.

Administer/Users/Configure/Access Rules

Administer/Users/Configure/Settings

Administer/Settings/Search

	Minimum word length to index: 1
	Noise words: the, and, or, not, a, to,
			he, she, it, I, me, they, them, their, my, we

Administer/Settings/Statistics

	Enable access log: Enabled
	Discard access logs older than: 4 weeks
	Count content views: Enabled
	Display counter values: Enabled
	Number of day's top views to display: 5
	Number of all time top views to display: 5

Administer/Content/Configure/Default Workflow

	Page: R/W comments, publish, promote, sticky, revision
	Story: R/W comments, publish, promote, revision

Administer/Comments/Configure/Settings

	Default comments per page: 30
	Comment controls: Display above and below the comments
	Anonymous poster settings: Anonymous posters may leave their contact information

Administer/Themes/Select

	Enable all themes.

Themes

Download and install the SpreadFirefox theme:

cd /home/web/www.sluug.org/themes/
wget http://drupal.org/files/projects/spreadfirefox-cvs.tar.gz
tar xfz spreadfirefox-cvs.tar.gz
rm spreadfirefox-cvs.tar.gz

Administer/Themes/Select

Enable all themes.
Select SpreadFirefox as the default theme.

After enabling the theme, you can go back in and configure it.

Notes

I'm not terribly confident with all the configuration choices I made. This is basically a rough first cut.

Add More Modules

  • Codefilter
  • Copyright
  • Diff
  • Event
  • EventRepeat
  • EvenyFinder
  • FCKeditor
  • Google Sitemap
  • HtmlArea
  • LiveSearch
  • Markdown
  • Nicelinks
  • SmartyPants
  • Textile
  • TinyMCE

TODO

Try some more plugins, modules, templates, etc.

Try some other CMSes. Perhaps these:

Determine more/better configuration settings.

Periodic backups of the entire content of the site.

Can we create sections of the site that are only visible to certain accounts? For example, it would be very handy (I'd go so far to say that it's a requirement for a CMS for use) to have a section that only officers can read (for things like phone numbers, etc.).

Credits

Initially installed, configured, and documented by Craig Buchek, 2005-02-23.

Installed version pre-6.0 from CVS – Craig Buchek, 2007-06-08, 2007-08-20.

build/cms.1187635493.txt.gz · Last modified: 2007/08/20 13:44 by 24.207.253.154