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 12:02]
24.207.253.154 Set up cron job. (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 ​======
-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>​
 +
 +
  
 ===== Configuration ===== ===== Configuration =====
Line 121: Line 240:
 All configuration is done via the **Administer** menu on the left. All configuration is done via the **Administer** menu on the left.
  
-Settings +==== Site Configuration ==== 
-   Name: Saint Louis UNIX Users Group + 
-   E-mail address: webhead@sluug.org +=== Site Information === 
-   Slogan: Open Source, Open Standards, Open Systems +Name: Saint Louis UNIX Users Group 
-   Mission: To promote Open Source, Open Standards, and Open Systems. + 
-   Footer message: Copyright ​2005 by Saint Louis UNIX Users Group (TODO: REMOVE) (Development Site) +E-mail address: webhead@sluug.org 
-   Anonymous user: Guest + 
-   Default front page: home +Slogan: Open Source, Open Standards, Open Systems 
-   Clean URLs: Enabled (Make sure mod_rewrite is working before enabling this!+ 
-   Error reporting: Write errors to the log +Mission: To promote Open Source, Open Standards, and Open Systems. 
-   Discard log entries older than: 4 weeks + 
-  ​ Cache support: Enabled (TODO: haven'​t tried it yet) +Footer message: Copyright ​&copy; 2007 by Saint Louis UNIX Users Group 
-  ​ Minimum cache lifetime: none + 
-   File system path: files +Anonymous user: Guest 
-   Temporary directory: /tmp + 
-   Download method: private +Default front page: home 
-  ​ Number of items per feed10 + 
-  ​ Display ​of XML feed itemsfull text +=== Clean URLs === 
-  ​ Default time zone: -0600 +Click on the "Test Clean URLs" link. 
-   Long date formatWeekday, Month 00, 2000 - 1:56pm + 
-   Site offline message(remove "​drupal"​) +Clean URLs: Enabled 
-Administer/Modules + 
-   Enable: ​aggregator, archive, comment, forum, help, menu, node, page, path, ping, poll, profile, ​ +=== Date and Time === 
-  ​ search,​ statistics, story, taxonomy, throttle, tracker, upload + 
-   (Save so you can enable throttling.+Default time zone: -0500 (NOTE: For Central Daylight Time; use -0600 if not in Daylight Saving Time
-  Enable throttling: aggregator, archive, comment, forum, help, poll, profile, tracker, upload+ 
 +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 modenormal 
 + 
 +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 registrationsVisitors can create accounts but administrator approval is required. 
 + 
 +CHECKRequire e-mail verification when a visitor creates an account 
 + 
 +Picture supportEnabled 
 + 
 +=== Roles === 
 +Add roles
 +  * web admin 
 +  * web editor 
 +  * board member 
 +  * officer 
 +  * silver member 
 +  * gold member 
 +  * platinum 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 modulesEXCEPT: 
 +  * 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 
 + 
 +Configure Syndicate settings, to change block title to **RSS Feed**. 
 + 
 + 
 + 
 Administer/​Blocks/​List Administer/​Blocks/​List
   Enable everything but Recent Comments.   Enable everything but Recent Comments.
Line 160: Line 397:
   Who'​s new   Who'​s new
   Syndicate   Syndicate
-Administer/​Settings/Users +Administer/​Settings/​Profile
-  Public registrations:​ Visitors can create accounts but administrator approval is required. +
-Administer/​Access Control/​Roles +
-  Add roles: +
-  web admin +
-  web editor +
-  board member +
-  officer +
-  gold member +
-  silver member +
-  bronze member +
-  voting member +
-Administer/​Access Control/​Permissions +
-  Give web admin all rights. +
-  TODO: Give other rights to other users. +
-Administer/​Settins/Profile+
   Add single-line text field:   Add single-line text field:
   Category: Personal Info   Category: Personal Info
build/cms.1187629320.txt.gz · Last modified: 2007/08/20 12:02 by 24.207.253.154