Drupal Upgrade Plan 2010

Previous upgrade notes: Drupal Upgrade Plan
* These notes are mostly just a copy of the previous upgrade, but are being modified still :)
------
Upgrading the OSGeo Drupal CMS is a complicated task further complicated by the use of multi-site configuration. To upgrade from current 5.3 (??) to the newest 6.x (??) version the following steps should be taken (doubles as a check list):
= Time estimation =
I estimate that the total read-only time for the OSGeo sites will be around 1 day if everything goes according to plan, this does not include the preliminary tasks which have to be completed prior to doing the upgrade.
= Preliminary tasks =
== DNS Changes ==
Redirect any *test* instances?
== Debian Package Installation ==
osgeo3/4 run debian linux OS. The server has no apache, drupal or any other packages already installed. Here is the list of packages to be installed to get support for our Drupal sites up and running:
* apache2
UPDATE 6-Oct-10: The following packages have been installed: apache2 mysql5.1 php5-gd php5 php5-mysql php-5-cli
== Review Module Availability ==
* Which modules needed - check that all are available in 6.x
=== Current modules ===
Items marked with * are most important. Ones that are striked out are no longer needed.
Category 	Module 	5.x version 	6.x recommended version
*Administration	ldapauth 	5.x-1.3 	6.x-1.0-beta2
 	ldapdata 	5.x-1.3 	above
 	ldapgroups 	5.x-1.3 	above
*CCK 	Content 	5.x-1.6-1 	6.x-2.8
 	Content Copy 	5.x-1.6-1 	ships with cck
 	Content Taxonomy 	5.x-1.x-dev 	6.x-1.0-rc2
 	Content Taxonomy Options	5.x-1.x-dev 	
 	Date 	5.x-1.7 	6.x-2.6
 	Date Copy 	5.x-1.7 	Included in Date Tools module included with above.
 	EMail 	5.x-1.0 	6.x-1.2
 	Fieldgroup 	5.x-1.6-1 	in cck main
 	Image 	5.x-1.1 	6.x-3.7 Depends on filefield (ff: 6.x-3.7)
 	Link 	5.x-1.x-dev 	6.x-2.9
 	Node Reference 	5.x-1.6-1 	in cck
 	Number 	5.x-1.6-1 	in cck?
 	Option Widgets 	5.x-1.6-1 	?
 	Text 	5.x-1.6-1 	in cck?
 	User Reference 	5.x-1.6-1 	6.x-2.6
Core - optional	*Aggregator 	5.3 	6.x-1.11 (requires PHP5 with curl support) Or is this in core already?
 	*Blog 	5.3 	in core?
 	Comment 	5.3 	in core?
 	Drupal 	5.3 	Missing from 6.x core
 	Help 	5.3 	
 	*Locale 	5.3 	core?
 	*Menu-Localizer 	5.3 	Part of Localizer below
 	*Path 	5.3 	core?
 	*Profile 	5.3 	core
 	Search 	5.3 	core
 	*Statistics 	5.3 	core
 	*Taxonomy-Localizer 	5.3 	Part of Localizer below
 	*Upload 	5.3 	core
*Event 	 	 	6.x-2.x-dev See notes about upgrade troubles!
Basic event 	5.x-1.0 	Missing from 6.x packages, must be rolled in somewhere automagically?	
 	Event 	5.x-1.0 	above
 	Event All Day 	5.x-1.0 	Missing from 6.x packages, must be rolled in somewhere automagically?
 	Event Views 	5.x-1.0 	6.x-2.4
*Image 	Image 	5.x-1.6 	6.x-1.0-beta6
 	Image Attach 	5.x-1.6 	in above
 	Image Gallery 	5.x-1.6 	in above
 	Image Import 	5.x-1.6 	in above
*Localizer 	Localizer 	5.x-1.10 	NOT PORTED - development stopped
 	Localizer block 	5.x-1.10 	
 	Localizer menu 	5.x-1.10 	
 	Localizer node 	5.x-1.10 	
 	Localizer taxonomy 	5.x-1.10 	
 	Localizer user 	5.x-1.10 	
 	Localizer variable 	5.x-1.10 	
 	Localizer views 	5.x-1.10 	
Mail 	Notify 	5.x-1.x-dev 	6.x-1.2
Other 	*Bookreview 	5.x-1.x-dev 	Development stopped in 2010?
 	*Date API 	5.x-1.7 	? which one? Date?
 	*Diff 	5.x-1.1 	6.x-2.1
 	*Feedback 	5.x-1.x-dev 	6.x-2.1
 	*Insert Block 	5.x-1.x-dev 	6.x-1.x-dev
 	*Insert view 	5.x-1.x-dev 	6.x-2.x-dev See security note
 	* 	5.x-1.2 	6.x-3.7
 	*path_image 	5.x-1.1 	6.x-1.0
 	*Path Redirect 	5.x-1.1-beta1 	6.x-1.0-beta7
 	*PEAR Wiki filter 	5.x-1.1 	6.x-1.0-beta1 plus Text_Wiki files plus Mediawiki files
 Note: site says to consider [http://drupal.org/project/flexifilter flexifilter instead
 	Permissions Sorter 	5.x-1.x-dev 	No release after v5, no dev release
 	*Recent changes 	5.x-1.1 	6.x-1.x-dev Note: access check is broken at the moment
 	Search Engine Referers 	5.x-1.0 	6.x-1.2
 	Secure Pages 	5.x-1.x-dev 	6.x-1.8 Note: see installation notes on page for important notes
 	Site map 	5.x-1.x-dev 	6.x-2.1
 	*TinyMCE 	5.x-1.9 	6.x-1.1-dev Note: This module has been replaced by Wysiwyg API
 	Token 	5.x-1.9 	6.x-1.14
 	*Upload path 	5.x-1.x-dev 	6.x-1.0
*Spam control 	CAPTCHA 	5.x-3.0 	6.x-2.2 - NOTE: several other captcha modules listed on project page
 	Image CAPTCHA 	5.x-3.0 	? part of above module?
 	Text CAPTCHA 	5.x-3.0 	6.x-1.1
*Syndication 	Syndication 	5.x-1.x-dev 	6.x-1.6
*Views 	Views 	5.x-1.6 	6.x-2.11
 	Views RSS 	5.x-1.6 	6.x-1.0-beta5
 	Views Theme Wizard 	5.x-1.6 	?include in views module?
 	Views UI 	5.x-1.6 	?include in views module?
Voting 	Fivestar 	5.x-1.13 	6.x-1.19
 	Fivestar Comments 	5.x-1.13 	Included in above?
Voting API 	Voting API 	5.x-1.6 	Deprecated?
*WebFM 	Web File Manager 	5.x-2.4 	5.x-2.x and 6.x-2.12 Note: See upgrade notes, must upgrade 5.x first
=== Current modules ===
...
== Theme upgrade ==
Wave a magic wand to complete this step.
== web.osgeo.org server tasks ==
# install packages
# setup webroot like this:
#* /var/www/drupal -> drupal-version 
#* /var/www/site.osgeo.org (most of /var/www/drupal stuff symlinked here)
#* This way all sites have their own files directory for uploads and images)
# install drupal (old version) - copy over from current site (v5.3)
# copy all sites over
#* all
#* default
#* osgeo.org
#* fdo.osgeo.org
#* mapguide.osgeo.org
# upgrade to Drupal 6 (more details later) detailed guide here
=== Steps ===
# setup webroot as above
# copy osgeo1:/var/www/html over
# copy osgeo1:/var/www/*sites* over - HUGE
# osgeo1: mysqldump main site
# osgeo1: mysqldump multi sites
# create mysql db's
# import mysql dumps
# Test site works as currently
# check file perms
# Disable modules
# Upgrade to latest v5.x core files 5.23
# Upgrade module files as needed to latest v5.x
# run site.osgeo.org/update.php on each v5 site
# re-enable modules
# Test site works as currently
-----
To v6.x
# change main drupal symlink to v6.x
# update module files to v6.x
# set up v6 sites folder for symlinks to /var/www/*sites*
# run update.php for each site as needed
== osgeo2 server tasks ==
# download Drupal 4.7.8
# Download Drupal 5.3 and modules:
#* captcha
#* content (CCK)
#** date
#** imagefield
#** number (comes with CCK)
#** link (comes with CCK)
#** optionwidgets (comes with CCK)
#** text (comes with CCK)
#* diff
#* event
#** basicevent
#* feedback
#* image
#** image_gallery (part of image)
#* insert_block
#* LDAP Integration consists of:
#** ldapauth
#** ldapdata
#** ldapgroups
#* locale
#** localizer
#*** localizerblock
#*** localizermenu
#*** localizernode
#*** localizertaxonomy
#*** localizeruser
#*** localizerviews
#* path_image
#* pearwiki_filter
#* recent_changes
#* syndication
#* tinymce
#** imce
#* views
#** views_rss
#** views_theme_wizard
#** views_ui
#* webfm
# Build a new osgeo theme, visually the same as the old theme. Based on 5.3 bluemarine
These items still need doing
# create new directory structure
#* /var/www/drupal-5.3 (extracted from the tarball)
#* /var/www/drupal (symlnk to above)
#* /var/www/osgeo (symlink contents of drupal here)
#** /var/www/osgeo/files
#* /var/www/fdo (like osgeo)
#* /var/www/mapguide
#* /var/www/mapbender
= Actual Upgrade sequence =
== osgeo1 ==
# Make a Backup of all 4 Drupal databases and the files.
# Make all Drupal sites read-only by taking away write access
#* http://osgeo.org/
#* http://fdo.osgeo.org/
#* http://mapguide.osgeo.org/
#* http://mapbender.osgeo.org/
== osgeo2 ==
# Extract osgeo1 files to /var/www/drupal
# Create a new databases for the sites
#* drupal_osgeo
#* drupal_fdo
#* drupal_mapguide
#* drupal_mapbender
# Move old drupal test.osgeo.net to run on dev.osgeo.net
## Add dev.osgeo.conf to Apache
## Point osgeo.conf to /var/www/drupal
## Point fdo.conf to /var/www/drupal
## Point mapguide.conf to /var/www/drupal
## Point mapbender.conf to /var/www/drupal
# Upgrade Drupal to 4.7.8
## Untar drupal-4.7.8 to /var/www/drupal-4.7.8
## Log in as 'admin' to osgeo site
## Log in as 'admin' to fdo site
## Log in as 'admin' to mapguide site
## Log in as 'admin' to mapbender site
## Disable all non-core modules on osgeo (with mysql update) [see below]
## Disable all non-core modules on fdo (with mysql update) [see below]
## Disable all non-core modules on mapguide (with mysql update) [see below]
## Disable all non-core modules on mapbender (with mysql update) [see below]
## Switch to bluemarine theme (Drupal standard) on osgeo (with mysql update) [see below]
## Switch to bluemarine theme (Drupal standard) on fdo (with mysql update) [see below]
## Switch to bluemarine theme (Drupal standard) on mapguide (with mysql update) [see below]
## Switch to bluemarine theme (Drupal standard) on mapbender (with mysql update) [see below]
## mv /var/www/drupal /var/www/drupal-old
## ln -s /var/www/drupal-4.7.8 /var/www/drupal
## rm -rf /var/www/drupal-4.7.8/sites
## mv /var/www/drupal-old/sites /var/www/drupal-4.7.8
## point browser to test.drupal.org/update.php
## point browser to fdo-test.drupal.org/update.php
## point browser to mapguide-test.drupal.org/update.php
## point browser to mapbender-test.drupal.org/update.php
# Upgrade to 5.3
## log in as admin
## Untar drupal-5.3 to /var/www/drupal-5.3
## ln -s /var/www/drupal-5.3 /var/www/drupal
## rm -rf /var/www/drupal-5.3/sites
## mv /var/www/drupal-4.7.8/sites /var/www/drupal-5.3
## point browser to test.drupal.org/update.php
## point browser to fdo-test.drupal.org/update.php
## point browser to mapguide-test.drupal.org/update.php
## point browser to mapbender-test.drupal.org/update.php
# install missing modules
# enable required modules
# enable the osgeo theme on osgeo
# enable the osgeo theme on fdo
# enable the osgeo theme on mapguide
# enable the osgeo theme on mapbender
# dump databases and tar files and move the new site over to osgeo1
== osgeo1 ==
# load the new site files and databases
# edit apache config files to point to new sites.
#* www.drupal.org
## Point osgeo.conf to /var/www/drupal
## Point fdo.conf to /var/www/drupal
## Point mapguide.conf to /var/www/drupal
## Point mapbender.conf to /var/www/drupal
== dev.osgeo.conf ==
 <VirtualHost 66.223.95.243:80>
 ServerName dev.osgeo.net
 DocumentRoot /var/www/html
 ErrorLog /var/log/httpd/osgeo-error_log
 CustomLog /var/log/httpd/osgeo-access_log common
 <Directory "/var/www/html">
 Options Indexes FollowSymLinks
 AllowOverride all
 Order allow,deny
 Allow from all
 </Directory>
 </VirtualHost>
== edu.osgeo.conf ==
 <VirtualHost 66.223.95.243:80>
 ServerName edu.osgeo.net
 DocumentRoot /var/www/moodle
 ErrorLog /var/log/httpd/osgeo-error_log
 CustomLog /var/log/httpd/osgeo-access_log common
 <Directory "/var/www/moodle">
 Options Indexes FollowSymLinks
 AllowOverride all
 Order allow,deny
 Allow from all
 </Directory>
 </VirtualHost>
== fdo-test.osgeo.conf ==
 <VirtualHost 66.223.95.243:80>
 ServerName fdo-test.osgeo.net
 DocumentRoot /var/www/fdo
 ErrorLog /var/log/httpd/osgeo-error_log
 CustomLog /var/log/httpd/osgeo-access_log common
 <Directory "/var/www/fdo">
 Options Indexes FollowSymLinks
 AllowOverride all
 Order allow,deny
 Allow from all
 </Directory>
 </VirtualHost>
== mapbender.osgeo.conf ==
 <VirtualHost 66.223.95.243:80>
 ServerName mapbender-test.osgeo.net
 DocumentRoot /var/www/mapbender
 ErrorLog /var/log/httpd/osgeo-error_log
 CustomLog /var/log/httpd/osgeo-access_log common
 <Directory "/var/www/mapbender">
 Options Indexes FollowSymLinks
 AllowOverride all
 Order allow,deny
 Allow from all
 </Directory>
 </VirtualHost>
== mapguide.osgeo.conf ==
 <VirtualHost 66.223.95.243:80>
 ServerName mapguide-test.osgeo.net
 DocumentRoot /var/www/mapguide
 ErrorLog /var/log/httpd/osgeo-error_log
 CustomLog /var/log/httpd/osgeo-access_log common
 <Directory "/var/www/mapguide">
 Options Indexes FollowSymLinks
 AllowOverride all
 Order allow,deny
 Allow from all
 </Directory>
 </VirtualHost>
== SQL to disable all non-core modules ==
alter table system set status=0 where where name != 'aggregator' and
	name != 'block' and name != 'blog' and name != 'blogapi' and
	name != 'book' and name != 'comment' and name != 'contact' and
	name != 'drupal' and name != 'filter' and name != 'forum' and
	name != 'help' and name != 'legacy' and name != 'locale' and
	name != 'menu' and name != 'node' and name != 'path' and
	name != 'ping' and name != 'poll' and name != 'profile' and
	name != 'search' and name != 'statistics' and name != 'taxonomy' and
	name != 'throttle' and name != 'tracker' and name != 'upload' and
	name != 'user' and name != 'watchdog' and name != 'bluemarine';
== SQL to set bluemarine as the default theme ==
alter table variable set value='s:10:"bluemarine";' where name='theme_default';
delete from cache;
Category:Web Site Committee
Category:Drupal