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:53] 24.207.253.154 Add sh-bang line to cron script. (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 50: | Line 54: | ||
| * PHP (4.3.3+ or 5.x) | * PHP (4.3.3+ or 5.x) | ||
| * MySQL (4.1 or higher) | * MySQL (4.1 or higher) | ||
| - | |||
| ===== Installation ===== | ===== Installation ===== | ||
| - | |||
| Download Drupal: | Download Drupal: | ||
| <code bash> | <code bash> | ||
| Line 82: | 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 120: | Line 126: | ||
| /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> | ||
| + | |||