Cornell University Library's CommonSpot installation is scaled to meet the needs of over 21 unit libraries that publish more than 70 web sites. This talk, given at a Commonspot Show and Tell, describes our system, based on Solaris and Oracle, that serves many virtual hosts while providing for separate test and production environments.
Injustice - Developers Among Us (SciFiDevCon 2024)
Commonspot installation at cornell university library
1. Commonspot Installation at
Cornell University Library
Paul Houle
Library Systems
Thanks: James Reidy, Surinder Ghangas, Ken Friedman, Chris Manly, David DeMello
and Oya Reiger
3. Context
• Support 21 unit libraries and many projects
• Current web server, copia, has
• > 40 virtual hosts
• > 170 toplevel directories
• 500,000+ hits/day
• Availability, Maintainability
• Separate production and test
• Isolate essential from inessential
• Tight control
7. CFMX Installation
• Multiple instances of Coldfusion:
• Used J2EE installation mode w/ Jrun 4 (/opt/coldfusion/jrun4)
• Install CFMX twice (/opt/coldfusion2/jrun4)
• mv /opt/coldfusion2/jrun4/servers/cfusion ->
/opt/coldfusion/jrun4/servers/spottest
•JRUN Management console is nice, but..
• all servers must run as same UNIX user
• no per-server jvm.config
• /etc/init.d/{spot,spottest}-jrun
• Use –config option to specify correct jvm.config
8. Namespace
• Two to four letter code per site:
• commonspot.library.cornell.edu -> cs
• dlit.library.cornell.edu -> dl
• insidecul.library.cornell.edu -> ins
• Commonspot gets own root directory
• can install other apps
• good for migration: add redirects to new site
• Avoids namespace collisions inside Cold Fusion
• Short names can be used to compose Solaris usernames:
• cs -> smb_cs
13. Remote Access
• Designers and programmers use SAMBA to access selected
files in test instance.
• Files belong to smb_{site name}
• Symbolic links provide controlled view:
• spot.library.cornell.edu{site_name}
/spottest/sites/commonspot.library.cornell.edu/designer/
customcf -> ../htdocs/cs/customcf
renderhandlers -> ../htdocs/cs/renderhandlers
style -> ../htdocs/cs/style
templates -> ../htdocs/cs/templates
14. Backups
• System Backup
• Weekly backup with mksysdb – keep 3 weeks back
• Filesystem backup
• ASDM incremental backup nightly – keep 3 version
• Oracle Backup
• incremental backup – every 8 hours
• flush redo logs to archive
• backup archive with ASDM
• full backup – weekly, 5 am Saturday
• shutdown oracle, take snapshot, restart oracle
• mount snapshot, backup with ASDM
-- Surinder Ghangas
15. CUWebAuth authentication
• Developed by David Demello (ddd1@
cornell.edu)
• Installation on server:
• Install CornellCustomAuthZ in Commonspot Directory
• Edit config.xml
• (optional) put hooks in commonspot/newsite
• Installation per site:
• Hook files: login.cfm, after—login.cfm, custom-authentication.cfm,
force-login.cfm
• Edit config.xml
• Key icon is glitchy, go to login.cfm instead
- David DeMello
16. Creating a new site
New Database, UNIX and SAMBA users
Surinder Ghangas
Create Directories and Virtual Host, configure CUWebAuth
Paul Houle
Create Site in Commonspot
James Reidy
17. Copy Test to Production
• User db must be synchronized
• Export site db from Test Oracle
• Create Production Site in Commonspot
• Import site db into Production Oracle
• Copy site directory
• Check site ids in Application.cfm
• Run migration tool
18. Gotchas
• Oracle User Permissions (see sg14)
• Be careful about installing at server root
• WebDAV and ColdFusion don’t mix
• Windows -> UNIX: Case sensitivity
• Verity indexing of PDF files doesn’t work yet
19. Commonspot Software Configuration:
James Reidy (jgr25@
cornell.edu)
Apache, Jrun, CFMX, SAMBA:
Paul Houle (ph18@
cornell.edu)
Oracle, Backups, Unix admin:
Surinder Ghangas (sg14@
cornell.edu)
Authentication:
David DeMello (ddd1@
cornell.edu)
General Questions:
Oya Rieger (oyr1@
cornell.edu)
http://commonspot.library.cornell.edu/