EDIT: Gallery’s maintainers decline to fully support Gallery 3 on IIS. See http://gallery.menalto.com/node/90281 for more info.
Yes, you can run Gallery 3 on Windows 2008 and IIS 7. Here’s how I did it:
- Clean install of Windows 2008 R2 x64. NOTE: These days, 32 bit is pretty ridiculous. The instructions below are only guaranteed to work on x64.
- Install the Web Server (IIS) role. I think this will also force a portion of the Application Server role to be installed, too.
- Install PHP 5.3. Just go through the default installation steps. I used the latest VC9 x86 Non Thread Safe version from the Windows binary download page.
- Install MySql Community Edition for Windows x64. I used default options through the process.
- Download phpMyAdmin. Unzip and copy files to C:\inetpub\wwwroot\phpmyadmin.
- Visit http://localhost/phpmyadmin, sign in using your MySql’s root account, and create a new database for Gallery 3.
- Download Gallery 3. As of this writing, the latest version is beta 2.
- Extract files and place in C:\inetpub\wwwroot\gallery3.
- If you run Gallery right now, it will squawk about missing some PHP settings that are in its .htaccess file. That file is not read by IIS, so you must implement differently:
- Create C:\inetpub\wwwroot\gallery3\.user.ini (more info on .user.ini) and open with a text editor. (Might need to use Notepad launched as administrator because of the protection Windows gives to files in C:\inetpub\.) Yes, you do need the period before user in the filename.
- Add these lines:
short_open_tag = 1
magic_quotes_gpc = 0
magic_quotes_sybase = 0
magic_quotes_runtime = 0
register_globals = 0
session.auto_start = 0
upload_max_filesize = 20M
post_max_size = 100M
date.timezone = "America/Chicago"
Note that the date.timezone is because of an additional problem with Gallery 3’s underlying Kohana framework and PHP 5.3 (link).
- Create a new directory at C:\inetpub\wwwroot\gallery3\var. Edit its permissions and give the Users and IIS_IUSRS groups Modify permissions. NOTE WELL: Generally, you should use the principle of least privilege and only give enhanced privileges to the smallest number of users possible, which means not the Users group. I’ll revise in the future if I confirm that only IIS_IUSRS–or even a specific account–is all you need.
- Set up mod_rewrite:
- Download and install the URL Rewrite Module x64.
- In Server Manager, click on Server Manager > Roles > Web Server (IIS) > Internet Information Services (IIS) Manager. To the right, find your gallery3’s directory under your web server under Sites. Click on that directory.
- Click URL Rewrite then Import Rules…
- Copy the mod_rewrite rules, including the IfModule directives, from the end of Gallery3’s .htaccess file and paste into the Rewrite rules field of the Import mod_rewrite rules screen. Remove the # characters at the beginning of each line; otherwise, they are just code comments.
- Delete the line containing RewriteBase. It is not supported, and the rules will not import until that is fixed.
- Click Apply on the right hand side.
- Now run Gallery 3 setup at http://localhost/gallery3.
Viola, you have Gallery 3 on IIS.
This may seem like a lot of steps, but it’s actually not much different than a setup on Ubuntu. It’s easier than how it used to be with IIS 6 or PHP 5.2. Kudos to Microsoft and The PHP Group for a dramatically easier setup process.