User Tools

Site Tools


build:cms

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
build:cms [2007/08/20 13:44]
24.207.253.154
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 ​======
-Drupal is a popular Content Management System (CMS). It is used to handle web sites that include various components of functionality.+
  
-===== 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 10: 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 23: 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 34: 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 47: Line 55:
   * MySQL (4.1 or higher)   * 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. 
  
 +===== Installation =====
 Download Drupal: Download Drupal:
 <code bash> <code bash>
 cd /​home/​web/​test.sluug.org/​ cd /​home/​web/​test.sluug.org/​
-wget http://​drupal.org/​files/​projects/​drupal-cvs.tar.gz+wget http://​drupal.org/​files/​projects/​drupal-5.2.tar.gz
 </​code>​ </​code>​
  
 Unpack the program: Unpack the program:
 <code bash> <code bash>
-tar xfz drupal-cvs.tar.gz +tar xfz drupal-5.2.tar.gz 
-rm drupal-cvs.tar.gz+rm drupal-5.2.tar.gz
 </​code>​ </​code>​
  
 Create a directory for uploaded attachments (TODO: not sure if this is still required): Create a directory for uploaded attachments (TODO: not sure if this is still required):
 <code bash> <code bash>
-mkdir drupal-cvs/files +mkdir drupal-5.2/files 
-chmod 2755 drupal-cvs/files+chmod 2755 drupal-5.2/files
 </​code>​ </​code>​
  
 Change the ownership of the files: Change the ownership of the files:
 <code rootshell>​ <code rootshell>​
-chown -R www-data:​www drupal-cvs +chown -R www-data:​www drupal-5.2 
-find ./drupal-cvs -type d | xargs -L1 chmod g+ws +find ./drupal-5.2 -type d | xargs -L1 chmod g+ws 
-find ./drupal-cvs -type f | xargs -L1 chmod g+w+find ./drupal-5.2 -type f | xargs -L1 chmod g+w
 </​code>​ </​code>​
  
 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 89: Line 100:
 Point the "​current"​ directory, where the Apache instance points, to the just-downloaded version: Point the "​current"​ directory, where the Apache instance points, to the just-downloaded version:
 <code rootshell>​ <code rootshell>​
-ln -sf drupal-cvs current+rm current 
 +ln -drupal-5.2 current
 </​code>​ </​code>​
  
Line 110: 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>​
 +
  
  
Line 185: Line 303:
  
 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. 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 Management ====
  
 === User Settings === === User Settings ===
- 
 Public registrations:​ Visitors can create accounts but administrator approval is required. Public registrations:​ Visitors can create accounts but administrator approval is required.
  
Line 197: Line 315:
  
 === Roles === === Roles ===
- 
 Add roles: Add roles:
   * web admin   * web admin
Line 208: Line 325:
   * voting member   * voting member
  
 +=== Access Control ===
 +Give ''​web admin''​ all rights.
 +
 +Give ''​web editor''​ these rights:
 +  * administer comments
 +  * post comments without approval
 +  * administer menus
 +  * all items in **node module**
 +  * select different theme
 +  * administer taxonomy
 +
 +TODO: Give other rights to other users.
 +
 +
 +
 +==== Site Building ====
 +
 +=== Modules ===
 +Enable the following modules:
 +  * Aggregator
 +  * Color
 +  * Comment
 +  * Contact
 +  * Forum
 +  * Help
 +  * Menu
 +  * Path
 +  * Ping
 +  * Poll
 +  * Profile
 +  * Search
 +  * Statistics
 +  * Taxonomy
 +  * Throttle
 +  * Tracker
 +  * Upload
 +
 +Save so you can enable throttling on the same page. Enable throttling for all enabled modules, EXCEPT:
 +  * Menu
 +  * Path
 +  * Ping
 +  * Profile
 +  * Taxonomy
 +  * comment, forum, help, poll, profile, tracker, upload
 +
 +=== Menus ===
 +Create menu items in **Primary links** menu to point to top-level SLUUG sites.
 +
 +=== Blocks ===
 +Add the following blocks to the Right Sidebar:
 +  * Search form
 +  * Most recent poll
 +  * Syndicate
  
-Administer/​Access Control/​Permissions +Configure Syndicate settings, ​to change block title to **RSS Feed**.
-  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 Administer/​Blocks/​List
   Enable everything but Recent Comments.   Enable everything but Recent Comments.
build/cms.1187635493.txt.gz · Last modified: 2007/08/20 13:44 by 24.207.253.154