This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
build:cms [2007/08/20 19:15] 24.207.253.154 Document why we went with Drupal 5 instead of 6. (CMB) |
build:cms [2008/01/08 19:23] (current) 206.197.251.51 Add some requirements, move the requirements section to the top. (CMB) |
||
---|---|---|---|
Line 1: | Line 1: | ||
- | ====== Drupal ====== | + | ====== Requirements ====== |
- | [[http://drupal.org | Drupal]] is a popular Content Management System (CMS). It is used to handle web sites that include various components of functionality. | + | |
- | + | ||
- | We chose Drupal after considering a few other CMSes. We tried installing and using a few others, and came to the conclusion that Drupal is the most flexible, and comes closest to meeting our requirements. | + | |
- | + | ||
- | We <del>considered</del> tried using a pre-release version of Drupal 6, but had to revert to Drupal 5. Even though Drupal 6 is in code freeze and is set to be released in a few months, very few modules and themes have support for it yet. | + | |
- | ===== Requirements ===== | + | These are the must-have requirements for a CMS: |
- | We evaluated several CMS packages to see which one best meets our needs. | + | |
- | We used the following criteria: | + | |
* Must be Open Source / Free Software | * Must be Open Source / Free Software | ||
* Active community, so we know it'll be well supported into the future | * Active community, so we know it'll be well supported into the future | ||
Line 14: | Line 7: | ||
* Packages like Plone and PHP-Nuke pretty much fail in this respect | * Packages like Plone and PHP-Nuke pretty much fail in this respect | ||
* Most Wikis fail in this respect | * Most Wikis fail in this respect | ||
- | * Editing a page is moderately easy, using wiki-like syntax or a WYSIWYG | + | * Editing a page is moderately easy, using WYSIWYG or wiki-like syntax |
* We don't want to have to edit raw HTML, but would like the ability to | * 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 | * Accounts/ACLs limit who can edit pages, on a per-directory basis | ||
* Different groups of people will have different access rights | * Different groups of people will have different access rights | ||
- | * Flexible authentication (LDAP, passwd, MySQL, etc.) | + | * Flexible authentication (LDAP, MySQL, etc.) |
* URLs look like URLs of a "normal" web site | * URLs look like URLs of a "normal" web site | ||
* Allows us to mirror the structure of our existing web site | * Allows us to mirror the structure of our existing web site | ||
Line 27: | Line 20: | ||
* XHTML isn't necessary; valid HTML 4.01 would suffice | * XHTML isn't necessary; valid HTML 4.01 would suffice | ||
* Not too hard to install or customize | * Not too hard to install or customize | ||
- | * PHP or Perl (mod_perl) preferred | + | * PHP preferred |
* Nothing more complex storage-wise than MySQL or PostgreSQL | * Nothing more complex storage-wise than MySQL or PostgreSQL | ||
- | * Java-based systems are probably too hard to use | + | * Java-based systems are probably too hard to set up |
* Zope is difficult to get working right | * Zope is difficult to get working right | ||
+ | * Drupal took too much configuration | ||
* Expandable, so we can add non-static pages later | * Expandable, so we can add non-static pages later | ||
* We'll probably want to add things such as a calendar of events, polls, etc. | * We'll probably want to add things such as a calendar of events, polls, etc. | ||
Line 38: | Line 32: | ||
Other things that would be nice: | Other things that would be nice: | ||
- | * Site statistics | + | * Calendar of events |
+ | * News | ||
* RSS feeds | * RSS feeds | ||
* Per-user configuration | * Per-user configuration | ||
+ | * Site statistics | ||
* Integration with MailMan | * Integration with MailMan | ||
* Forums | * Forums | ||
* Especially if the forums have bi-directional gateway with MailMan lists | * Especially if the forums have bi-directional gateway with MailMan lists | ||
+ | |||
+ | |||
+ | ====== Drupal ====== | ||
+ | [[http://drupal.org | Drupal]] is a popular Content Management System (CMS). It is used to handle web sites that include various components of functionality. | ||
+ | |||
+ | We chose Drupal after considering a few other CMSes. We tried installing and using a few others, and came to the conclusion that Drupal is the most flexible, and comes closest to meeting our requirements. | ||
+ | |||
+ | We <del>considered</del> tried using a pre-release version of Drupal 6, but had to revert to Drupal 5. Even though Drupal 6 is in code freeze and is set to be released in a few months, very few modules and themes have support for it yet. | ||
===== Pre-Requisites ===== | ===== Pre-Requisites ===== | ||
Line 53: | Line 57: | ||
===== Installation ===== | ===== Installation ===== | ||
- | |||
Download Drupal: | Download Drupal: | ||
<code bash> | <code bash> | ||
Line 81: | Line 84: | ||
Create MySQL database (replace $DRUPAL_MYSQL_USER with the real username, and $DRUPAL_MYSQL_PWD with the real password): | Create MySQL database (replace $DRUPAL_MYSQL_USER with the real username, and $DRUPAL_MYSQL_PWD with the real password): | ||
<code rootshell> | <code rootshell> | ||
- | mysql | + | database='drupal' |
- | CREATE DATABASE drupal; | + | user="$DRUPAL_MYSQL_USER" |
+ | password="$DRUPAL_MYSQL_PWD" | ||
+ | mysql <<-EOF | ||
+ | CREATE DATABASE $database DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci; | ||
GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, INDEX, ALTER, CREATE TEMPORARY TABLES, LOCK TABLES | 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'; | + | ON $database.* TO '$user'@localhost IDENTIFIED BY '$password'; |
FLUSH PRIVILEGES; | FLUSH PRIVILEGES; | ||
- | \q | + | EOF |
+ | mysqladmin reload | ||
</code> | </code> | ||
Line 115: | Line 122: | ||
Set up a cron job to do some housekeeping activities once every hour, and run it once initially: | Set up a cron job to do some housekeeping activities once every hour, and run it once initially: | ||
<code rootshell> | <code rootshell> | ||
- | echo 'wget -O - -q http://test.sluug.org/cron.php' > /etc/cron.hourly/drupal | + | echo -e '#!/bin/bash\nwget -O - -q http://test.sluug.org/cron.php' > /etc/cron.hourly/drupal |
chmod +x /etc/cron.hourly/drupal | chmod +x /etc/cron.hourly/drupal | ||
/etc/cron.hourly/drupal | /etc/cron.hourly/drupal | ||
</code> | </code> | ||
+ | |||
+ | ==== Modules ==== | ||
+ | Download the add-on modules that you'd like to use. | ||
+ | <code bash> | ||
+ | cd current/modules | ||
+ | wget http://ftp.drupal.org/files/projects/gallery-5.x-1.0.tar.gz | ||
+ | wget http://ftp.drupal.org/files/projects/calendar-5.x-1.5.tar.gz # requires Views and Date modules | ||
+ | wget http://ftp.drupal.org/files/projects/cck-5.x-1.6-1.tar.gz | ||
+ | wget http://ftp.drupal.org/files/projects/views-5.x-1.6.tar.gz | ||
+ | wget http://ftp.drupal.org/files/projects/date-5.x-1.6.tar.gz | ||
+ | wget http://ftp.drupal.org/files/projects/jstools-5.x-0.8.tar.gz | ||
+ | wget http://ftp.drupal.org/files/projects/tinymce-5.x-1.9.tar.gz # have to download TinyMCE itself manually | ||
+ | wget http://ftp.drupal.org/files/projects/fckeditor-5.x-1.3-beta.tar.gz | ||
+ | wget http://ftp.drupal.org/files/projects/htmlarea-5.x-2.0.tar.gz | ||
+ | wget http://ftp.drupal.org/files/projects/widgeditor-5.x-1.x-dev.tar.gz | ||
+ | wget http://ftp.drupal.org/files/projects/wymeditor-5.x-1.x-dev.tar.gz | ||
+ | wget http://ftp.drupal.org/files/projects/linktocontent-5.x-1.6.tar.gz # TinyMCE extension | ||
+ | wget http://ftp.drupal.org/files/projects/easylink-5.x-1.x-dev.tar.gz # drop-down for TinyMCE links | ||
+ | wget http://ftp.drupal.org/files/projects/easylists-5.x-0.1.tar.gz | ||
+ | wget http://ftp.drupal.org/files/projects/footnotes-5.x-1.2.tar.gz | ||
+ | wget http://ftp.drupal.org/files/projects/marksmarty-5.x-1.x-dev.tar.gz # MarkDown plus SmartyPants | ||
+ | wget http://ftp.drupal.org/files/projects/textile-5.x-2.1.tar.gz | ||
+ | wget http://ftp.drupal.org/files/projects/texy-5.x-3.x-dev.tar.gz | ||
+ | wget http://ftp.drupal.org/files/projects/pearwiki_filter-5.x-1.1.tar.gz # requires PEAR Text_Wiki | ||
+ | wget http://ftp.drupal.org/files/projects/bueditor-5.x-1.0.tar.gz # customizable editor | ||
+ | wget http://ftp.drupal.org/files/projects/admin_message-5.x-1.x-dev.tar.gz | ||
+ | wget http://ftp.drupal.org/files/projects/decisions-5.x-1.0.tar.gz # voting for decision-making, see also http://drupal.org/project/advpoll | ||
+ | wget http://ftp.drupal.org/files/projects/editablefields-5.x-1.0.tar.gz | ||
+ | wget http://ftp.drupal.org/files/projects/default_filter-5.x-1.x-dev.tar.gz | ||
+ | wget http://ftp.drupal.org/files/projects/formdefaults-5.x-1.x-dev.tar.gz | ||
+ | wget http://ftp.drupal.org/files/projects/smartypants-5.x-1.0.tar.gz | ||
+ | wget http://ftp.drupal.org/files/projects/typogrify-5.x-1.x-dev.tar.gz # includes SmartyPants plus other similar goodies | ||
+ | wget http://ftp.drupal.org/files/projects/smileys-5.x-1.2-beta.tar.gz | ||
+ | wget http://ftp.drupal.org/files/projects/codefilter-5.x-1.x-dev.tar.gz | ||
+ | wget http://ftp.drupal.org/files/projects/cck_button-5.x-1.x-dev.tar.gz | ||
+ | wget http://ftp.drupal.org/files/projects/fivestar-5.x-1.7.tar.gz # requires VotingAPI | ||
+ | </code> | ||
+ | |||
+ | Unpack the modules, and remove the tarballs. | ||
+ | <code bash> | ||
+ | ls -1 *.tar.gz | xargs -L1 tar xfz | ||
+ | rm *.tar.gz | ||
+ | cd ../.. | ||
+ | </code> | ||
+ | |||
+ | ==== Themes ==== | ||
+ | Download the add-on themes that you'd like to make available. | ||
+ | <code bash> | ||
+ | cd current/themes | ||
+ | wget http://ftp.drupal.org/files/projects/abac-5.x-1.4.tar.gz | ||
+ | wget http://ftp.drupal.org/files/projects/aberdeen-5.x-1.7.tar.gz | ||
+ | wget http://ftp.drupal.org/files/projects/activesigns-4.7.x-1.x-dev.tar.gz # based on SpreadFirefox, 4.7 | ||
+ | wget http://ftp.drupal.org/files/projects/Aeon5-5.x-1.x-dev.tar.gz | ||
+ | wget http://ftp.drupal.org/files/projects/andreas01-5.x-1.x-dev.tar.gz | ||
+ | wget http://ftp.drupal.org/files/projects/antique_modern-5.x-1.2.tar.gz # no left sidebar | ||
+ | wget http://ftp.drupal.org/files/projects/base-5.x-1.x-dev.tar.gz # good base for new themes | ||
+ | wget http://ftp.drupal.org/files/projects/cms-theme-5.x-1.x-dev.tar.gz | ||
+ | wget http://ftp.drupal.org/files/projects/combustion-5.x-1.0.tar.gz | ||
+ | wget http://ftp.drupal.org/files/projects/danger4k-5.x-1.1.tar.gz | ||
+ | wget http://ftp.drupal.org/files/projects/deco-6.x-1.0.tar.gz # Drupal 6 | ||
+ | wget http://ftp.drupal.org/files/projects/dreamy-5.x-1.3.tar.gz | ||
+ | wget http://ftp.drupal.org/files/projects/fancy-5.x-1.0.tar.gz | ||
+ | wget http://ftp.drupal.org/files/projects/fern-4.7.x-1.x-dev.tar.gz | ||
+ | wget http://ftp.drupal.org/files/projects/glossyblue-5.x-1.0.tar.gz # no left sidebar, SpreadFirefox derivative? | ||
+ | wget http://ftp.drupal.org/files/projects/golden_hour-5.x-2.2.tar.gz | ||
+ | wget http://ftp.drupal.org/files/projects/litejazz-5.x-1.1.tar.gz | ||
+ | wget http://ftp.drupal.org/files/projects/lumen-5.x-1.x-dev.tar.gz # good base, lots of classes, jQuery | ||
+ | wget http://ftp.drupal.org/files/projects/multiflex37-5.x-1.x-dev.tar.gz | ||
+ | wget http://ftp.drupal.org/files/projects/MyDrupal_Impact-5.x-1.4.tar.gz | ||
+ | wget http://ftp.drupal.org/files/projects/MyDrupal_Universal-5.x-1.1.tar.gz | ||
+ | wget http://ftp.drupal.org/files/projects/nautica09-5.x-1.2.tar.gz | ||
+ | wget http://ftp.drupal.org/files/projects/newsportal-5.x-1.x-dev.tar.gz | ||
+ | wget http://ftp.drupal.org/files/projects/newsportal02-5.x-1.x-dev.tar.gz | ||
+ | wget http://ftp.drupal.org/files/projects/niftyCorners-5.x-1.x-dev.tar.gz # looks like SpreadFirefox some | ||
+ | wget http://ftp.drupal.org/files/projects/ocadia-5.x-1.0-1.tar.gz | ||
+ | wget http://ftp.drupal.org/files/projects/Pleroma-5.x-1.x-dev.tar.gz | ||
+ | wget http://ftp.drupal.org/files/projects/purple_beauty-5.x-1.1.tar.gz | ||
+ | wget http://ftp.drupal.org/files/projects/scribbish-5.x-1.x-dev.tar.gz | ||
+ | wget http://ftp.drupal.org/files/projects/SEOposition-5.x-1.x-dev.tar.gz | ||
+ | wget http://ftp.drupal.org/files/projects/sharepoint-like-5.x-1.0.tar.gz | ||
+ | wget http://ftp.drupal.org/files/projects/SHINOBI-5.x-1.3.tar.gz | ||
+ | wget http://ftp.drupal.org/files/projects/sib-5.x-1.1.tar.gz | ||
+ | wget http://ftp.drupal.org/files/projects/sinatra-5.x-1.0-1.tar.gz | ||
+ | wget http://ftp.drupal.org/files/projects/soccer-5.x-1.x-dev.tar.gz | ||
+ | wget http://ftp.drupal.org/files/projects/spreadfirefox-5.x-0.1.tar.gz | ||
+ | wget http://ftp.drupal.org/files/projects/spring_bloom-5.x-1.x-dev.tar.gz | ||
+ | wget http://ftp.drupal.org/files/projects/sweethome-5.x-1.x-dev.tar.gz | ||
+ | wget http://ftp.drupal.org/files/projects/sympal_theme-5.x-1.x-dev.tar.gz | ||
+ | wget http://ftp.drupal.org/files/projects/terrafirma_theme-5.x-1.3.tar.gz | ||
+ | wget http://ftp.drupal.org/files/projects/greenhouse-5.x-1.1.tar.gz | ||
+ | wget http://ftp.drupal.org/files/projects/treedesert-5.x-1.x-dev.tar.gz | ||
+ | wget http://ftp.drupal.org/files/projects/ubiquity-5.x-0.11.tar.gz | ||
+ | wget http://ftp.drupal.org/files/projects/wall-5.x-1.x-dev.tar.gz | ||
+ | wget http://ftp.drupal.org/files/projects/webchick-5.x-1.1.tar.gz | ||
+ | wget http://ftp.drupal.org/files/projects/zen-5.x-0.6.tar.gz # good base | ||
+ | wget http://www.minimalistic-design.net/minimalistic.zip | ||
+ | </code> | ||
+ | |||
+ | Unpack the themes and remove the tarballs. | ||
+ | <code bash> | ||
+ | ls -1 *.tar.gz | xargs -L1 tar xfz | ||
+ | unzip *.zip | ||
+ | rm *.tar.gz *.zip | ||
+ | cd ../.. | ||
+ | </code> | ||
+ | |||