CoSolvent Community Server is an open source project powered by Assembla

Assembla offers free public and private SVN/Git repositories and project hosting with bug/issue tracking and collaboration tools.

Name Date Commit message Revision
images 2009-10-12 [rrsIPOV] Initial import from last stable branch (0.19.5) 4cd6000fd1
install 2010-11-04 [Joseph Gay] replaced split (deprecated) with equivalent preg_split ecbac836ad
lib 2012-03-04 [rrsIPOV] The first comment on an item will now be auto-displayed with no need to e7bbc93a3b
locale 2009-10-12 [rrsIPOV] Initial import from last stable branch (0.19.5) 4cd6000fd1
maintenance-page 2010-10-18 [rrsIPOV] Should update the maintenance mode page to be a lot easier to maintain. 228c7df605
modules 2012-03-04 [rrsIPOV] Improved error logging and handling. 0ec5b4b222
themes 2010-08-27 [unknown] adding gitignore 7906c7b9d7
upgrade 2009-10-12 [rrsIPOV] Initial import from last stable branch (0.19.5) 4cd6000fd1
.gitignore 2011-11-09 [rrsIPOV] Adding the dojo-dev directory so that I don't have to try to recreate it on the server. 9986c13b35
.gitmodules 2011-03-17 [Joseph Gay] adding pheanstalk submodule acc1e7fe8e
.htaccess 2009-10-12 [rrsIPOV] Initial import from last stable branch (0.19.5) 4cd6000fd1
.project 2010-05-21 [rrsIPOV] Removing some old files and adding a "" file that we will hopefully use to help keep the code tied to the Assembla project (e.g. to state the milestone that a release corresponds to). b02fe3fe87 2010-06-25 [rrsIPOV] Addressing PHP 5.3 issues. e1ef944745
d-link-test.php 2011-03-11 [Joseph Gay] adding d-link test and configuration, plus a test key pair, renamed to d-link 488246596f
d-link.ini 2011-03-17 [rrsIPOV] DLink stuff is almost working the way I want it, at this point there just seems to be a problem with the way I created my key. ea822955db
d-link.php 2011-03-23 [rrsIPOV] removed a number of error_log calls that had been left in from initial e8d659ea96
embed.php 2009-10-12 [rrsIPOV] Initial import from last stable branch (0.19.5) 4cd6000fd1
fix_db.php 2009-10-12 [rrsIPOV] Initial import from last stable branch (0.19.5) 4cd6000fd1
index.php 2009-10-12 [rrsIPOV] Initial import from last stable branch (0.19.5) 4cd6000fd1 2009-10-12 [rrsIPOV] Initial import from last stable branch (0.19.5) 4cd6000fd1
LICENSE 2009-10-12 [rrsIPOV] Initial import from last stable branch (0.19.5) 4cd6000fd1
main.php 2011-03-21 [rrsIPOV] Added helper logException() method. Moved calls for pheanstalkd to GalleryCoreApi (may need to refine these). 9332e59649
MANIFEST 2009-10-12 [rrsIPOV] Initial import from last stable branch (0.19.5) 4cd6000fd1 2010-09-15 [rrsIPOV] Restore compatibility with PHP 5.2 on the JSON encoding 6cdc4c0b57
README.html 2009-10-12 [rrsIPOV] Initial import from last stable branch (0.19.5) 4cd6000fd1
robots.txt 2009-10-12 [rrsIPOV] Initial import from last stable branch (0.19.5) 4cd6000fd1
test-key.pem 2011-03-11 [Joseph Gay] adding d-link test and configuration, plus a test key pair, renamed to d-link 488246596f 2011-03-11 [Joseph Gay] adding d-link test and configuration, plus a test key pair, renamed to d-link 488246596f
README: Gallery 2.3 (Skidoo)
Gallery 2

Welcome to Gallery 2. This is the official release of Gallery 2.3, 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


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.


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

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 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
  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.
  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) +

Highlight of changes in Gallery 2.1 (Blackjack) +

Highlight of changes in Gallery 2.0 (Unpossible!) +

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

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

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

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

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

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

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

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

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

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

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.


    $ 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


    $ 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


    $ create database gallery2 {additional parameters};

    IBM DB2

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

    Microsoft SQL Server

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

    1>create database gallery2


    1>use gallery2


    1>create schema g2user


    1>create login g2user with password = "g2pwd"


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


    1>use master


    1>grant CONTROL SERVER to g2user




    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)
    • 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)


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

      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.

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:

  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:

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.

This page is valid XHTML 1.0 Gallery 2

Copyright (C) 2000-2008 Bharat Mediratta       $Id: README.html 18171 2008-10-17 04:40:36Z andy_st $

Ajax-loader Loading, please wait...