README: Gallery 2.3.2

Welcome to Gallery 2. This is the official release of Gallery 2.3.2, code named “Skidoo”. Please read through this document carefully before installing Gallery 2 and before asking for help. We have taken care to try to answer as many of your questions here as possible. If you don't read this and have problems, we may refer you back to this document as a first resource.

## Quick Start

If you’re impatient like us, you just want to get going. The odds are that your system is all set to handle Gallery 2 so just skip right to the installer and start clicking. It should walk you through everything you need to get going. If you hit a snag, please come back here and read more before asking questions! Enjoy.

## What is Gallery?

Gallery is a web based software product that lets you manage your photos on your own website. You must have your own website with PHP and database support in order to install and use it. With Gallery you can easily create and maintain albums of photos via an intuitive interface. Photo management includes automatic thumbnail creation, image resizing, rotation, ordering, captioning, searching and more. Albums and photos can have view, edit, delete and other permissions per individual authenticated user for an additional level of privacy. It's great for communities - give accounts to your friends and family and let them upload and manage their own photos on your website!

## System requirements

- Web server that can run PHP (Apache 1, Apache 2, IIS, Zeus, etc)
- PHP version 4.x (4.3.0 or more recent) or 5.x (5.0.4 or more recent)
  Note: PHP's safe_mode must be disabled! Read this forum thread for a safe_mode discussion.
- One of the following databases: MySQL 3.x, 4.x or 5.x, PostgreSQL 7.x or 8.x, Oracle 9i or 10g, IBM DB2 9.x, Microsoft SQL Server 2005 or 2008, SQLite (Experimental) 3.x
- One of the following graphics toolkits: NetPBM 9.x or newer, ImageMagick 5.x or newer, GD 2.x or newer, GraphicsMagick 1.x or newer (or else you get no thumbnails!)

## Security

In preparation of the Gallery 2.3 release, we retained Gotham Digital Science (GDS) to a perform security audit on Gallery 2. They are experts in application security, as this is the primary focus of their business.

We recognize that hiring external consultants to perform security audits does not guarantee that our code is bug-free and by no means un-hackable, but it clearly indicates our willingness to perform due diligence to make sure our code is reasonably secure. The combination of an external perspective of security experts and the insight of internal experts both performing detailed audits is yielding much better results than only one of the two perspectives alone.

Audits of previous releases were done by the following origanzations:

Gallery 2.2 Release Candidate
  James Bercegay of Gulftech Research and Development.
Gallery 2.1 Release Candidate
  Paul Mutton of Intershot Limited.

### Note

The Gallery project treats security issues very seriously. If you find a security flaw, do not hesitate to email us at:

security AT gallery.menalto.com

## What’s new in this release?

Over four years of design and development have gone into making Gallery 2 the best online photo management product available. We have made it easy to add new features while keeping them in separate modules so that you can customize it to only have the ones that you want. For those of you who like standards, we have strict XHTML compliance but give plenty of power to our themes so that you can make it look the way that you want. It's a powerful application and you're in the driver's seat.

### Highlight of changes since Gallery 2.3 -

1. Updates to improve compatibility with PHP 5.3

### Highlight of changes in Gallery 2.3 (Skidoo) +

1. New version of the slideshow module now uses PicLens to provide a rich, full screen slideshow.
2. Comment module now offers moderation and Akismet support to help weed out spam comments.
3. New email notification module allowing users to configure events they wish to get notified for. You can watch albums for changes, items for new comments, etc.
4. New Jpegtran module to support rotation and cropping of jpeg images with no loss in image quality.
5. New SnapGalaxy module for prints from snapgalaxy.com.
6. Registration module can now send a welcome email to new users upon account activation.
7. EXIF block now uses AJAX to switch between summary and detail display.
8. External image block now has a "rawImage" mode to return a single binary image instead of HTML output.
9. Support in RSS module for Media RSS format and random RSS streams.
10. Remote module now bundles the Gallery Remote client and makes it available via Java Web Start. Users with a Java enabled browser can then launch Gallery Remote with a single click instead of manually downloading and installing.
11. Hybrid theme now uses automatic navigation between pages in its image viewer and slideshow. This means the slideshow will show all images in the album, moving between album pages as needed. Requesting the next/previous image in the image viewer will also load a new album page as needed.
12. Webcam module now accepts file:// URLs to retrieve image from local filesystem.
13. Dcraw module now supports Adobe Digital Negative (dng) files, when used with dcraw v7.0 or newer.
14. Added support for Windows Vista in PublishXP module.
15. New database backup feature. Backup at start of upgrade, or anytime from Site Admin / Maintenance. Restore a backup from lib/support interface.
16. Can now put Gallery into maintenance mode from Site Admin / Maintenance. Setting in config.php file is still available too.
17. New event logging system records Gallery errors, viewable in the Site Admin interface.
18. Themes can now override module template files, allowing a themed look to more aspects of the application.
19. New Language Manager that allows the addition or removal of translations.
20. User interface changes.
    - Use AJAX to speed up deleting comments(spam) on items/albums.
    - Use quick DHTML confirm dialog for deleting single items. Dialog offers link to bulk delete several items from an album.
    - Use YUI ItemTree instead of plain select box to select target album when moving items, creating replicas or link items.
21. Performance and stability improvements.
    - Smarty templates now permanently cached by default. Turn this off in Site Admin / Performance when working on tpl files, so changes take effect immediately during development.
    - Avoid reading EXIF data multiple times in Carbon theme.
    - Some added caching in GalleryUrlGenerator.
    - Use progress bar when adding items to avoid server or browser timeouts. Particularly helpful when adding many items from local server.
    - Restructuring to greatly reduce the number of directories for language files.
    - Refactor of translator hints to avoid some processing when translations are not used (en_US).
    - Faster plugin and language package downloads.
    - Refactor of event system working towards a performance improvement in the next release.
22. New database options.
    - Support for SQLite 3.x
    - Support for PostgreSQL schemas
23. New install package options.
    - English only variants of installation downloads. The minimal is English only. In addition, Typical and Full are available in English language only variants.
    - Greatly reduced the number of directories for language files.
24. Upgraded to newer versions of several bundled software packages: YUI! 2.3.1, ADOdb 4.98, Smarty 2.6.20, GetID3 1.7.7, BBCode 0.3.3.
25. Many bugs fixed.

### Highlight of changes in Gallery 2.2 (Double Double) +

1. Downloadable Plugins. This feature allows you to download and install Modules and Themes directly via the Site Admin interface. You can select from different sets of plugins (officially released plugins, experimental plugins under development and plugins provided by the Gallery community). This makes it very easy to stay up to date with the latest changes.
2. Added support for themes to display dynamic albums.
   - New Keyword Album module makes use of this feature to show albums based on a search of item keywords.
   - New Dynamic Albums module shows albums of newest, most viewed or even random items.
   - Ratings module has a new view to display highly rated items from across the Gallery.
3. Security fixes and improvements

   There are no known exploits for these issues. All of them were discovered during a private, internal security audit. However, we highly recommend that you upgrade to Gallery 2.2 to secure your Gallery installation.

   - Added protection from brute force attacks on setup and account passwords.
   - Added protection from "Cross Site Request Forgery" attacks.
   - Added protection from "Cross Site Scripting" through item titles, summaries and description (only applies to the non-default HTML markup). This has been fixed for comments in Gallery 2.1 already.
   - Added protection from "HTTP Response Splitting" attacks.
   - Fixed information disclosure through application errors.
   - Hardened Session Handling in upgrade, install and support area.
4. Watermarking changes
   - Edit Album now has a Watermark tab where watermarks may be added or removed from an entire album, optionally including subalbums too.
   - Edit Watermark now has an option to replace a watermark image and apply the new image everywhere the old was one used.
   - New option to always use a single watermark and give users no watermarking options. Only Site Admins can change/remove existing watermarks.
   - New option to turn off the ability for users to upload their own watermark images.
5. New themes:
   - Carbon
   - Ajaxian
6. New WebDAV module to mount Gallery as network device on your computer. This allows you to easily manage your Gallery with any WebDAV client like Windows Explorer.
7. New module to send Ecards.
8. New Digibug module for prints from digibug.com.
9. Added support for Flash Video and Windows ASF video.
10. Added support for mp3 audio using a Flash based player.
11. Added support for HTTP authentication through the new httpauth module.
12. Photo auto-rotation based on camera sensors or on settings from other applications.
13. Automatically detect dimensions of Flash animations and video.
14. Option in MIME module to restrict file types that may be uploaded.
15. Image Block changes
    - Now displays any item with a thumbnail (movie, flash, etc) in addition to photos.
    - A new block setting allows showing multiple images or albums.
16. Added some user contributed image frames and icon packs including the Silk Icon set by Mark James.
17. You can now add color to item title, description, comments, etc. Click on the "color" button and choose from a handy popup; or just use [color=red] bbcode syntax.
18. Comment module improvements:
    - New block for adding comments directly from an item page.
    - Guests can now leave their name.
19. Added support in Link Items module to make thumbnails for URL links using webpage snapshots generated by an external program like khtml2png. Also, the arrow watermark on thumbnails is now optional.
20. Added RSS functionality: Comments for this album and its subalbums.
21. Added Quotas Block: This allows the site administrator to display a block in the theme that displays the current and total usage of any user that has a quota assigned.
22. Added an option to lock a user account to the current account settings. Useful if one wants to use a single user account for a group of users.
23. Newly created albums from User Albums module now properly inherit permissions from the parent album, for settings like comments, ratings, etc.
24. Moved some functionality out of core and into optional modules: Add items module for adding from local server or other web pages, and Replica module for creating item copies sharing the same original data file.
25. Option in EXIF/IPTC module to set title for new items from IPTC/ObjectName.
26. Improved usability in administration interface for installing modules and themes.
27. New Multiroot module assists in creating alternate guest views of a single Gallery.
28. Added exactSize and link parameters for image block.
29. Resize dimensions now accept percentages of full size in addition to pixel size.
30. Added support for PHP mysqli extension (newer version of mysql interface).
31. Support for MSSQL database.
32. Minimum PHP version now 4.3.0.
33. Microsoft IIS doesn't work with PHP-CGI due to a PHP/IIS bug. Microsoft recommends FastCGI instead and doesn't support PHP-CGI. Please use ISAPI PHP or FastCGI with IIS instead. Users of Apache on Windows can still use PHP-CGI (and mod_php or FastCGI).

### Highlight of changes in Gallery 2.1 (Blackjack) +

1. New Ratings module allows users to vote for their favorite photos.
2. New RSS module provides syndication of your Gallery's content to the world, so users can track content updates.
3. New Floatrix theme based on our Matrix theme, with a collapsible sidebar and tableless design.
4. New module to support hidden items and albums. Hidden items are restricted from guest users until accessed by the direct URL. Migrate module now imports hidden items from G1 as hidden in G2 if this module is active.
5. New module to support password protected items and albums. Passwords are complementary to the G2 permission management. Passwords are impersonal while the G2 permission system handles access and rights for specific users and user groups.
6. New Reupload module allows replacing an image file while keeping the title, description, comments, etc.
7. New Permalinks module works with the URL Rewrite module to create short URLs using just the album name, as in Gallery 1.x.
8. New Linkitem module creates links to other albums or external URLs.
9. New module to import albums from Picasa.
10. New module to support Google Sitemaps.
11. New module for retrieving id3 tag information.
12. New link in comments module to view all recent comments. Also an option to require captcha for posting anonymous comments.
13. New option to apply album and theme settings recursively to all subalbums.
14. URL Rewrite module now supports IIS (isapi rewrite) and pathinfo.
15. Captcha module has an improved "medium" security level and now unifies configuration in captcha site admin for all modules making use of validation.
16. Print modules
    - Permissions support to control which users can print and which photos may be printed.
    - Support for printing non-public photos.
    - New Fotokasten module for prints from fotokasten.de.
    - Renamed PhotoAccess to PhotoWorks.
17. Permission support in cart module to control which users and which items may be used with the cart.
18. PublishXP module now supports add-options such as watermarks and applying size limits or quotas.
19. Upgraded bundled EXIF library to Exifixer 1.5 which fixes reading of EXIF data from many cameras and image processing tools. Also updated the module to make GPS fields available and to read EXIF data from raw image files.
20. New option in ffmpeg module to watermark thumbnails for movie items with a film reel image on each side, to better distingish movies from photos. Support for recent versions of ffmpeg binary.
21. Support for recent versions of dcraw binary.
22. Added WMF and TGA image format support in ImageMagick module.
23. Improved cross-browser support in ImageFrame module.
24. Several updates and new options for Hybrid theme.
25. New settings and improved admin interface for Siriux theme.
26. Localization updates
    - Added support for hints in translatable strings to aid translators, or to distinguish identical English strings that may need different translations in another language.
    - Localizations now generally specify only a language rather than language+country for better sharing of translations. Country specific translations can still override the base translation.
    - New option to specify whether Gallery checks the browser language preference to select the language for new sessions.
27. User Interface updates in installer/upgrader based on a review by OpenUsability.org.
28. New performance section in site admin for configuring optional page caching.
29. New maintenance mode to redirect visitors while upgrading or configuring the site.
30. Multisite installs can now use the tools in lib/support.
31. Sessions are now stored in the database and no longer in files. And guest users don't get a session anymore unless they add items to the cart, choose a non-default language or do something else that requires a session.
32. New development tool: sample module creator in lib/tools/creator.
33. New option to run external programs at lower priority to reduce load on shared webhosting servers.
34. Support for DB2 database.
35. Minor updates to support PHP 5.1.
36. Embed API is now versioned (for compatibility checks) and initialization parameters have been simplified.
37. Many code updates, restructuring and API changes with the goals of improving performance and making smaller/simpler/cleaner code.
38. Lots of bugs fixed.

### Highlight of changes in Gallery 2.0 (Unpossible!) +

1. Updated version of the Siriux theme.
2. Several bug fixes.

### Highlight of changes in Gallery 2 RC 2 (kthxbye) +

1. Gallery 1 migration
   - Custom fields from G1 can now be imported if the Gallery 2 custom fields module is active.
   - Restricted permissions are now set for imported photos and albums from G1 that are hidden. Gallery 2 does not yet have a hidden feature so for now these items are restricted by permissions.
   - Migration process now generates a report of any captions that were trunctated to fit the field size of title or summary in Gallery 2.
2. Localization - Some translation fixes including several updates to better support right-to-left languages. Gallery 2 now has 29 available locales; over 90% translated in 6 languages, over 50% in 7 and partially translated in 16 more! We still bundle all language data with the modules.. eventually we will have separate downloadable translations.
3. Date formats - Customizable date/time formats defined in Site Admin.
4. Security - Fixed minor cross site scripting flaw where uploaded images could contain <script> tags in their EXIF and IPTC keywords.
5. Many, many bugs fixed.

### Highlight of changes in Gallery 2 RC 1 (+5 Insightful) +

1. New Packages - You can now choose from four different packages: minimal, typical, full, and developer.
2. Siriux is Back - The Siriux theme was ported to the new theme system.
3. User Contributed Themes - There are now more and more user contributed themes to choose from.
4. New Installer Log - Gallery 2 now generates a log of the core module installation process which will make it much easier for you to provide the necessary information and for us to help you.
5. Many, many bugs fixed.

### Highlight of changes in Gallery 2 Beta 4 (Flippin' Sweet!) +

1. New Theme System - You spoke -- we listened. The old layout and theme system was far too complicated so we've completely overhauled it leaving control firmly in the hands of the theme designer while keeping it simple and easy to work with.
2. Square Thumbnails - This module now offers a mode to fit thumbnails inside a square with a specified background color instead of cropping the image into a square.
3. CMYK Jpegs - ImageMagick module can now detect jpegs using CMYK colorspace and convert to RGB for display in the Gallery, still keeping the original file available for download.
4. Multisite Support - The multisite system has been completely redesigned and is now compatible with both URL Rewrite module and embedded Gallery 2. Multisite Gallery 2 refers to multiple independent sites using a single codebase.
5. Localization - The installer and upgrader can now be localized.
6. Improved Installer - The installer offers now a clean install option, catches version mismatches between database/g2data/code, detects the proper locking system to use, and has a more detailed admin user setup.
7. Improved Upgrader - There’s now a progress bar in the module upgrade step to combat server timeouts.
8. Guest Preview Mode - Click this to see almost exactly what a guest will see when browsing your albums. Useful if you want to test permissions and other settings.
9. Improved Cookie Management - New optional configuration parameters enable cookie support in embedded Gallery 2 while maintaining maximum security by default and the flexibility to support embedded Gallery 2 installs on separate subdomains.
10. Colorpacks - Now that layouts are gone and there are only themes, colorpacks let you change the color scheme of a theme.
11. Many, many bugs fixed.

### Highlight of changes in Gallery 2 Beta 3 (Bingo!) +

1. New Modules
   - New Quotas module allows limiting disk usage for users and groups.
   - New Iconpack module adds icons for various links.
   - New dcraw module adds support for the raw image format of many cameras.
   - New Publish XP modules allows adding items directly from Windows XP.
   - New Slideshow applet module shows images in a fullscreen slideshow using Java.
2. Layouts
   - Simplified the PHP code required for a layout. This makes it easier to create a new layout that mostly involves building the tpl files, but still allows use of additional PHP code for more advanced layouts.
   - Standard $user template variable now available in all views, which makes it easier to customize content for guests, registered users or administrators.
3. Hotlinked image protection
   - URL Rewrite module now offers the ability to restrict item downloads from external referers not on an approved list. This prevents other websites from directly linking to images on your server.
   - Watermark module offers an alternate rule in Rewrite module which can apply a watermark on the fly to images for external referers.
4. Tree view - Album Select module now offers a dynamic tree view in addition to the simple select box for navigating to any album.
5. Thumbnails - Expanded ability to override the album default thumbnail size to any item or album, not just for photo thumbnails.
6. IPTC - Support for reading IPTC data added to EXIF/IPTC module.
7. Forgot Password - New system to reset the password for any Gallery 2 user with an email address.
8. Short URLs - More control in Site Admin over how short URLs are constructed.
9. Owner Permissions - Permissions are now transferred to the new owner when changing the owner of an album or item.
10. Updated Albums - Modification date of albums now updated for item add, move, delete in that album (so New Items module will show "Updated").
11. Add From Web - Improved support for URLs where extension doesn't match the actual mime type (like Gallery 2 URLs!).
12. Email Test - Added ability to send a test email from Site Admin to verify email settings are correct.
13. System Maintenance - New maintenance tasks:
    - Reset view counts for all albums and photos.
    - Build all thumbnails and resizes at once.
    - Display system information, useful for copy/paste to support forum.
    - Rewrite module task to check for conflicts between short URLs and actual Gallery files.
14. Integrations - Improved support for integration with external applications.
15. Installer - Verify that the database user has the correct permissions before installing.
16. Many, many bugs fixed including several localization fixes.

### Highlight of changes in Gallery 2 Beta 2 (Holy Hand Grenade) +

1. Performance Improvements
   - Automatic fast download code for publicly visible images. We bypass most of the framework and render thumbnails and resizes quickly on demand, while still preserving the complete image firewall. This radically reduces server load.
   - Replaced the permissions table with access control lists. This change isn't visible to the end user, but results in a significant performance increase for large galleries.
2. Themes/CSS
   - We updated the CSS across the entire app to clean it up and make building new themes a bit easier.
   - Added new mblue theme.
3. Layouts
   - The main content no longer wraps below the sidebar in Matrix layout when viewed with IE.
   - Hybrid, slider and tile layouts are now themeable and have improved cross browser compatibility.
   - Added Nico Kaiser's siriux layout.
4. New Modules
   - New captcha module allows you to require that users have to prove that they're human in order to log in or register a new account.
   - New mime management module allows you to control which mime types Gallery understands.
5. Localization
   - Localized into Chinese (Simplified)
   - 6 localizations support 75% or more of Gallery.
6. Embedding
   - Considerable progress in the API and documentation.
   - Xaraya, PHP-Nuke, Tikipro, Drupal and Mambo integrations available in SVN.
7. Many, many bugs fixed.

### Highlight of changes in Gallery 2 Beta 1 (Dark Fibre) +

1. Rewrite - New module for creating compact, search engine friendly URLs.
2. Recursively Add Directories - You can now add an entire hierarchy of images in directories at once. Gallery will turn each sub-directory into an appropriate sub-album.
3. Locking - New database locking system that allows Gallery to run properly on NFS filesystems.
4. Shutterfly - New module for printing photos with Shutterfly.com.
5. Classic Layout - New layout similar to the Gallery 1 top level album. Shows thumbnails, item details and a tree of links to subalbums.
6. Origination Timestamp - New field to store the date normally shown with items. The field is automatically set from EXIF data if available but can also be changed manually.
7. Resizes - Added support for both width and height bounds for photo resizes and scaling the original image.
8. Archive Upload - New module extracts files from uploaded zip archives and adds each to the album. Implemented to allow support for other archive formats to be added later.
9. Size Limit - New module to define maximum dimensions or file size of uploaded images.
10. Custom Thumbnails - Thumbnail module now allows uploading a custom jpeg thumbnail for any album or item.
11. Rearrange - New module allows rearranging the order of all items in an album at once.
12. Album Select - New module adds a select box for jumping directly to any album.
13. EXIF - Added ability to set item summary/description from EXIF description when new photos are uploaded.
14. Symlink - Option to add items using symbolic links to existing files on a unix server.
15. Sort Order
    - Two levels of sorting now supported.
    - New sort to always show albums first.
16. Image Block Enhancements
    - Picture/Album of the Day/Week/Month.
    - Option to omit certain albums from image blocks.
    - External image blocks using full size images.
    - Scale external image blocks to a specified maximum size.
    - Support for image frames around image blocks.
17. User Album Options
    - Create user albums when first accessed instead of right when the user account is created.
    - Show link to user album.
    - Jump to user album after login.
18. Embedding
    - Further improvements in the API and documentation.
    - Added support for search and image block.
    - Xaraya, PHP-Nuke, Tikipro and Drupal integrations available in SVN.
19. Multisite Support - The installer can now configure multiple independent sites using a single codebase.
20. Internationalization
    - Added basic support for right-to-left languages.
    - New MultiLanguage module adds ability to write captions in multiple languages and display them based on the selected language of each user.
21. Error Handling - Improved handling and display of error messages.
22. Bugs - Many, many bugs fixed.

### Highlight of changes in Gallery 2 Alpha 4 (Nice Commits) +

1. Upgradeable Core and Modules - At long last we support upgrading from one version of Gallery 2 to the next. Unfortunately, this may not work reliably for all version before Alpha 4, so we recommend that you reinstall Alpha 4 from scratch just to be sure.
2. Module Uninstall - You can now completely uninstall a module and then delete it from your Gallery 2 installation.
3. Installer Improvements
   - The interface for installing modules is now much easier to use. It shows you all the modules and lets you select the ones you want to install, and lets you repeat the process as often as you like.
   - Added better instructions and examples for several steps that were confusing (your user feedback at work!)
   - The installer now works on browsers that don't allow cookies.
4. User Interface enhancements - Some changes in our main layout place the most important system links on top of every page (Site Admin, Login, Logout, ...). This gives you easy access to these commands. The sidebar has some improved functionality, like a direct login form and some more details on your cart and members (if those modules are active). This is another step towards a "block" system where modules can provide any amount of blocks of information to be placed in the sidebar.
5. Navigation - It's now easier to navigate around Gallery. Meaningful "back" links will bring you back to the last visited pages, e.g. it's now possible to visit the Site Admin while editing an album and have an easy way to return.
6. Random Highlight - New module allows albums to periodically change highlight, selecting randomly from the album's items.
7. WebCam - New module creates items that periodically refresh the image from an external URL.
8. Thumbnail Page - New module gives more control over thumbnails for movies and documents. For multipage documents (like PDF/Postscript) or images (like multiscene TIFF) you can pick the page number for the thumbnail (Note: PDF/Postscript require both ImageMagick and Ghostscript). When used in conjunction with the Ffmpeg module you can pick a time offset for generating thumbnails for movies.
9. Graphics Toolkits -
   - The ImageMagick and NetPBM toolkits have been optimized to make fewer calls to external binaries when used for multiple operations. For example, cropping and resizing to make a thumbnail now requires only a single call to "convert" with ImageMagick.
   - We now preserve extra operations (like crop settings) on thumbnails when moving an item between albums or rebuilding thumbnails.
   - Added ability to set toolkit priority. This means you can activate multiple toolkits to support more mime types but still select which toolkit is used in cases where multiple toolkits support the same type.
   - Added support for ImageMagick 6.1.x
10. Sort Order - "Default sort order" and "Manual sort order" are now separate choices, allowing albums to properly inherit the site default for sort order; Ascending/descending is disabled for these choices.
11. New Items - New module shows "new" and "updated" images next to appropriate images and albums, and adds a new sort where new items are shown first followed by other items sorted by view count.
12. SMTP Authentication - We now support sending email via a SMTP server that requires user authentication. Any module that sends email (like the registration module) can take advantage of this support.
13. Embedding Gallery 2 - We've made great improvements in embedding Gallery 2 into other applications. We've successfully (though not completely) embedded it into Xaraya and have begun working on other platforms. See Gallery 2 Embedding.
14. Thumbnail Creation - We now let you create thumbnails at upload time, which greatly improves performance the first time you view an album. It's optional, but on by default.
15. Improved Error Pages - We now show you a nice error page when two simultaneous and conflicting changes happen. This new page explains how to resolve the problem.
16. Members - We now show a list of the recent changes that a user has made, and let you page through the entire list of changes.
17. Removed IE7 - We were experimenting with IE7, a compatibility layer in JavaScript reduces some of the incompatibilities between IE6 and other browsers. However we were not able to get the performance and reliability that we needed so we've decided to abandon using it (at least for now).
18. Localization - Gallery 2 is now translated into 18 languages, though only German, Danish and Swedish are over 50% translated. We can use your help!
19. Bug fixes - Many bugs closed!

### Highlight of changes in Gallery 2 Alpha 3 (Farva) +

1. Watermark Support - We now support image watermarking. You can add a watermark to the thumbnail, resize or full sized version of an image using a DHTML drag-and-drop interface.
2. Oracle Database Support - The installer now offers Oracle (version 9i and higher) among the supported database types.
3. Module Manifests - All modules now come with a manifest file, and the installer checks to make sure that you’ve got a complete set of files on the server.
4. Auto Completion - the Site Admin user and groups pages, and the permissions pages now perform appropriate completion for you. Just type a few characters of the username you’re searching for and it’ll give you up to 10 possible matches. Tested on Firefox, but not extensively tested on IE yet.
5. New version of IE7 - We’re experimenting with IE7, a compatibility layer in JavaScript reduces some of the incompatibilities between IE6 and other browsers. The older version caused weird problems with images getting overlaid with a red X, or IE6 crashing.
6. Migration improvements -
   - We now properly migrate item owners
   - We now preserve the order of imported subalbums
   - Gallery 1 summary and description fields are now transposed on import so that the Gallery 1 "summary" (which was shown inside the album itself) is now the Gallery 2 "description" and vice versa.
7. CMS Integration - Although this is not yet readily visible, a great deal of work has been done on getting Gallery 2 ready to integrate into external content management systems. We’ve successfully done partial integrations with Xaraya and Drupal, with more on the way.
8. Square Thumbnails - We fixed a noticeable bug where the first time you viewed a square thumbnail it might appear distorted (this was mentioned in the "known bugs" list of the alpha-2 release).
9. Zip Cart Plugin - You can now download the contents of your cart as a zip file.
10. User Albums - You can use the new User Albums module to automatically create a new album for a user whenever you create a new user.
11. Installer - Many minor tweaks including adding more install checks to make sure that your system is OK.
12. Members - The members module now has privacy settings so that you can prevent the unauthorized from seeing your list of members, and/or their email addresses.
13. Bug fixes - Many bugs closed!

### Highlight of changes in Gallery 2 Alpha 2 (Grand Theft Photo) +

1. User Interface - Many small and large user interface improvements. Made the XHTML more standards compliant and used less divs in favor of more sensible tags (like h1, h2, etc).
2. Performance - Significant performance increases in general, and especially for image views. This also reduces the overall load on your system when (for example) viewing a page with 9 thumbnails on it.
3. Installer - The installer now installs the core module for you, as well as allows you to optionally install other modules right away instead of having to do it later via the Site Admin.
4. Custom Fields - New custom field module allows you to define global and per-album custom fields for your item meta data.
5. Java Upload Applet - New upload option where you can drag and drop files onto an applet and Gallery 2 will upload them for you.
6. GD Graphics toolkit - Implemented GD based graphics toolkit. This enables use of PHP’s built-in imaging functions for thumbnails, resizes, cropping and rotating. Requires GD 2.0 or newer. No external binaries needed.
7. Square Thumbnails - New module that allows you to specify that all gallery thumbnails have a 1:1 aspect ratio
8. Imageframe module - This module allows you to apply frames to your photos and albums in the Matrix and Hybrid layouts.
9. Self Registration module - Allows guests to register for their own account in your Gallery 2.
10. Language selection - There’s a new box in the sidebar where guests can choose their preferred language
11. Nokia Mobile Phone Uploader Module - Upload images to your Gallery 2 from your mobile phone!
12. Migration module - We now import Gallery 1 permissions, and allow you to choose the source encoding (character set) of your Gallery 1 so that we can convert it to UTF-8 as part of the migration. We now also track where your Gallery 1 albums wound up in Gallery 2 so that you can create an .htaccess file in your Gallery 1 to redirect Gallery 1 URLs to Gallery 2, for ease of migration.
13. Gallery Remote - GR now supports creating new Gallery 2 albums.
14. PHP5 Support Gallery 2 has been tested on PHP 5.0.1 on FreeBSD and Linux.
15. Bugs - More than 31 bugs closed since Alpha 1.

### Highlight of changes in Gallery 2 Alpha 1 (Cowbell) +

- First Release of Gallery 2!

## Choosing a package

You can choose from four different packages:

- Minimal - The base application, 2 themes and 3 graphics toolkits and only English installed. Everything you need to publish photos, and nothing more.
- Typical - The base application, 8 themes and a selection of popular modules. Enough to satisfy the demands of most Gallery users.
- Typical-en - Same as Typical except the only language included is English.
- Full - The base application, 9 themes and 68 modules. Every cool feature we've got.
- Full-en - Same as Full except the only language installed is english.
- Developer - Same as the full package, except it includes all the developer tools so that you can work on improving the code.

You get to pick and choose which modules you activate, so even if you download a package that has more modules than you need you can always choose not to activate the ones you don't want. You can also activate a module and test it out for a while, then later deactivate and uninstall it. You can also delete any modules/themes that you're not using if you want to save space.

All of our modules and themes are available separately so if you install a smaller package you can still add more functionality later on, either by downloading yourself or using the Downloadable Plugins feature in the Site Admin section.

Download Gallery packages, modules and themes from the Gallery Download Page.

## Preparing to install

1. Latest Version - There are four ways to get the code.
   - Tarball - You can download a prepackaged file as a tarball or a zip file from SourceForge.
   - Pre-Installer - If you only have FTP access to your webserver and don't have the option to extract zip or tar files directly on the server, you should give the Gallery 2 Pre-Installer a try. It transfers the archive directly to your webserver and extracts it for you.
   - Nightly Snapshot - You can download a tarball or zip file with a snapshot of the most recent code. Find links to these on the Gallery Download Page.
   - Subversion - This is a better way to get the latest code, but it’s for advanced users. Follow the Subversion instructions to obtain the latest Gallery 2 code. It’s easier to stay up to date with this method since you can run one command and get the latest code at any time.
2. Storage - Create a directory for gallery to store photos. This must be writeable by the web server, but for security reasons we suggest that you do not put it in the web root. If you put it in the web root, then anybody can get directly to your images with their web browser which circumvents Gallery 2’s security.

   ### Unix Example

   $ cd $HOME
   $ mkdir g2data
   $ chmod 777 g2data

   ### Windows Example

   C:\> mkdir g2data

   In the Unix example, you may note that modes of 777 on your g2data directory are not all that secure. However, making it more secure depends on how your system is configured. Talk with your system administrator about ways to change the permissions on that directory to make it so that Gallery can still write to the files but that others can’t. Refer to the Gallery 2 Security Guide for more information.
3. Database - Right now we support MySQL, PostgreSQL, Oracle, IBM DB2, Microsoft SQL Server and SQLite. The databases most commonly used with Gallery 2 are MySQL and PostgreSQL. MySQL is generally faster than PostgreSQL. We require you to create the database yourself. In our examples below, we’ll be creating a database called gallery2. You can use any database name that you choose.
   Grant all required privileges to your database user. This includes but is not confined to: CREATE TABLE, ALTER TABLE, DROP TABLE in the gallery2 database; SELECT, INSERT, UPDATE, DELETE on all (gallery2) tables in the gallery2 database; CREATE INDEX and some other privileges that are specific to the different database management systems. CREATE/DROP DATABASE and the ability to GRANT privileges to other database users are not required.

   ### MySQL

   $ mysqladmin -uroot create gallery2
   $ mysql gallery2 -uroot -e"GRANT ALL ON gallery2.* TO
   username@localhost IDENTIFIED BY 'password'"

   - Choose your own username and password
   - If MySQL denies you access, try adding "-p" right after "-uroot" in each command

   ### PostgreSQL

   $ createdb gallery2 -E UNICODE
   If it complains that UNICODE is not a valid encoding name, then try:
   $ createdb gallery2 -E SQL_ASCII
   If it complains about that, too then try:
   $ createdb gallery2

   ### Oracle

   $ create database gallery2 {additional parameters};

   - Also see our Oracle documentation page

   ### IBM DB2

   $ db2 "create database gallery2 using codeset utf-8 territory us pagesize 32 k"

   - Also see our IBM DB2 documentation page

   ### Microsoft SQL Server

   C:\>sqlcmd -S myhostname\SQLEXPRESS -e

   1>create database gallery2

   2>go

   1>use gallery2

   2>go

   1>create schema g2user

   2>go

   1>create login g2user with password = "g2pwd"

   2>go

   1>create user g2user for login g2user with default_schema = g2user

   2>go

   1>use master

   2>go

   1>grant CONTROL SERVER to g2user

   2>go

   1>quit

   - Also see our Microsoft SQL Server documentation page

   ### SQLite

   Your PHP must include PHP Data Objects support, but no other setup is required.

4. Graphics Toolkits - Gallery 2 works with many different toolkits (NetPBM, ImageMagick, GD or GraphicsMagick). You need to activate at least one or you won't get any thumbnails, but there's no limit on how many you can have. In fact, more is better because they can work together. Here are some interesting points about the main supported toolkits (mostly reported by users, your mileage may vary).
   - Fastest - ImageMagick and GraphicsMagick
   - Highest Quality - NetPBM (ImageMagick is a close second though)
   Limitations:
   - GD - cannot do image rotation, may hit server memory limits and crash PHP.
   - NetPBM, ImageMagick, GraphicsMagick - require server to support exec() system call (not usually a problem)

## Installing

Gallery 2 is a web application and must be installed on your web server in order for you to use it. If you've unpacked it on your desktop, you will have to upload it to your server as part of the install process. Then you can configure it using your web browser.
As an alternative to the lengthy upload via FTP, take a look at the Gallery 2 Pre-Installer.

1. Upload - Copy the Gallery 2 files to a directory on your webserver. There are several alternatives for this step:
   - Fastest way: Upload the gallery package to your web server archive via FTP or another method, then unpack it using an interactive shell session (e.g. ssh or telnet). Example unpacking commands (choose the appropriate one):

     ### For .tar.gz archives

     $ tar xzf gallery2.tar.gz

     ### For zip archives

     $ unzip gallery2.zip

     If you do not have shell access, you can ask your provider to do it for you, or you can make a miniature PHP script containing one of the above commands. Some webhosting companies offer a control panel with a web file-browser which is capable of extracting / unarchiving archive files. It’s worth a try to check if this option is available.
   - Easiest (but slowest) way: If you don't have shell access, you can upload the complete contents of the Gallery 2 archive to the webserver with an FTP program. This may take a lot of time and be error-prone. In this case, pay special attention to the ’System Checks’ step of the installer and make sure that there are no missing or modified files. Consider using a smart FTP program like FileZilla to make sure that your transfer goes smoothly.
   - Advanced way: The best way to install Gallery and stay up to date if you have shell access to your webserver is to use Subversion.
   Note: After uploading, you should close this version of the README and browse to the version that you just uploaded. That way all the links in this document will point to the right places in your Gallery 2 install.
2. Begin Installing - Open up your web browser and browse to the install directory. Gallery 2 will walk you through the process of validating that your system is properly configured and will set everything up for you.
3. Authenticate - You will be asked to create and save a small text file in order to authenticate. You may not proceed until you do this. That’s how Gallery 2 knows that you’re authorized to use the installer.
4. System Checks - The installer checks your system to make sure that it will support Gallery 2. Make sure that all checks are successful!
5. Installation Type - Gallery can support multiple independent sites with a single installation of the code. Here you will select a standard single install or the location of a new multisite install. There is more information about multisite in the Gallery Codex.
6. Storage Setup - Read the instructions on the installer to set up a storage location for Gallery 2. This is where Gallery 2 will store all of your images, as well as other cache information.
7. Database Setup - Select your database type and enter your database authentication information. If this is not your first Gallery 2 installation and there are still some remains of the old installation, it will check the state of the installed version and offer a clean install option which will delete all your data in the storage directory and in the database. If the installed version seems to be fine, it will also offer to reuse the existing database tables. Select this option if you did not start the installer with the intent to start from scratch.
8. Admin User Setup - You are prompted for an administrator username and password. Type in a password and type it again to validate it. The full name and the email address are optional. But entering an email address is highly recommended. Once you’re finished, click ’Create’ to create the admin user for this installation of Gallery 2.
9. Create Config File - Gallery 2 will create the config.php file in your Gallery 2 directory. This contains all the answers you’ve provided in the installer and is necessary for Gallery 2 to function properly. At this point, there’s also a sanity check to prevent you from damaging your Gallery install by running the installer when you should rather have started the upgrader.
10. Install the Core module - Here’s where we create all the database tables and initial users and albums to get you started. Unless something goes wrong, there’s nothing for you to do here.
11. Install other modules - Gallery 2 has lots of different modules that provide useful functionality. Choose which ones you want to use. You can always go to the Site Admin page later on to install, activate, deactivate or uninstall modules, so it’s ok to experiment here.
12. Check Security - Gallery 2 walks you through the process of locking down your new config.php.
13. Finished! - Congratulations! You have successfully installed Gallery 2!

## Using your new Gallery

Once you’ve successfully got Gallery 2 installed, you should take a look at the Gallery 2 Quick Start Guide. It will help you get started with Gallery and will walk you through the steps from zero to managing your first photo album in your freshly installed Gallery. Below are some links to your gallery that will make it easier for you to follow the Quick Start Guide. Note: You may need to activate certain modules to be able to use some of these links.

- Your Gallery 2
  - Log In
  - Add Items
  - Add Album
  - Search
  - Site Admin
    - Plugins
    - Themes
    - Create Groups
    - Create Users
    - Gallery 1 Migration Page
    - Thumbnail Manager

Take a look at the list of User Contributions to find even more modules, themes, utilities, mods and more.

## Updating your Gallery 2 Installation

Updating is quick and easy and should not lose any of your data.

### Warning When Upgrading from Gallery 2.0!

Third party modules and themes designed for Gallery 2.0 will not work with Gallery 2.3. During the upgrade process, these modules and themes will be automatically deactivated for you. You can find updated versions for most of these modules and themes here: http://codex.gallery2.org/Gallery2:User_Contributions

1. If you have a busy site, consider putting your Gallery in maintenance mode before updating the code and performing the upgrade. This gives visitors a message that the site is temporarily offline, rather than showing everybody the upgrade page. Edit your config.php file to activate maintenance mode. This feature is new starting in 2.1, so it is not available in an upgrade from 2.0.x.
2. Download the latest code for any active third party modules that you're using, or deactivate them. If in doubt, deactivating is safe.
3. Get the latest code and unpack it over your existing copy of Gallery 2. Keep your existing config.php in place, and don't touch your (g2data) data folder or the database. If you're using Subversion, you can just do "svn update" at any time. Alternatively, you can also use the Gallery 2 Pre-Installer to get the latest code onto the webserver.
4. If you use a PHP accelerator / cache (e.g. Turk mmCache, Ioncube PHPA, eaccelerator, Zend Studio, etc.), flush (clear) the cache of the accelerator. Omitting this step can sometimes lead to errors during and after the upgrade process.
5. Browse to the upgrader and follow the instructions there. Make a backup of your data (g2data folder and especially the database) when it tells you to! Should you lose your data due to a bug in the upgrader, the first thing we're going to tell you to do is to restore from your backups! (Then we'll probably ask you to help us reproduce the bug.)
6. Enjoy your new version of Gallery 2.

## Getting Help

There are many resources available to you if you're having problems with Gallery:

- Look at the "How do I Install Gallery2" article on the Gallery Documentation Website
- Read the Gallery 2 FAQ
- Use the Gallery 2 Support Forums on the Gallery Website.
- Search the forum to see if somebody else has posted a similar problem and maybe there’s an answer there, otherwise start a new topic to get help.
- If the problem seems like a bug in the Gallery 2 software you can file a bug in our bug tracker on SourceForge. Please read our tracker guidelines before filing a bug so that we can cut down on the number of spurious reports.
- If you're unsure whether to file a bug you can always post in the forums first and we'll ask you to file a bug if needed. If you want to chat in real time, you can talk on our user-to-user irc support channel, #gallery-support on chat.freenode.net (irc client) or #gallery-support (web based irc)

Remember – reporting bugs is good. Even if you think it’s silly, go ahead and report it. We can always close the bug or refile it (please don’t be offended in this case) but it’s harder to find bugs than it is to fix them so we’re counting on you to help us with the finding part.

## Known Issues / Bugs

Check our Known Issues list and Bug Tracker for information and some workarounds for known problems.

## Advanced Topics

Unit Tests - Gallery 2 was designed using Extreme Programming methodologies. This means that we have over 2,000 unit tests that ensure code quality. If you want to help us out, you can try running the unit tests and report back to us if any of them fail.

Note - these tests shouldn’t change your Gallery 2 settings at all, but if they fail, they may leave things in a weird state. Be warned that there's a slim chance that you might have to ditch your Gallery 2 data and start over if something catastrophic happens.

For Themers - There is now some theme documentation that you should read if you want to change the look of your Gallery 2 by customizing an existing theme and its templates or by creating your own theme.

Localization - If you’re interested in localizing Gallery 2 into another language, you can review the current state of localization and then read the localization how-to and get started. Submit your localizations early and often - no need to wait until you’re entirely done.

For Developers - We've gotten started on some developer documentation that you should read if you want to start hacking on Gallery 2. Some of the information is a little bit out of date or in early drafts, but it's a start.

Embedding - To learn more about embedding Gallery 2 into your website and about existing integrations in content management systems, portals, blogs etc. please see Gallery 2 Embedding.

Copyright (C) 2000-2008 Bharat Mediratta $Id: README.html 20996 2012-04-01 21:48:35Z bharat $