Thursday, March 13, 2008

Setting up PHP on IIS 5 (XP 5.1)

1. Download both PHP and PECL (NOT the non-thread safe file) Windows zip packages from:

2. Extract PHP zip into C:\PHP

3. Extract PECL zip into C:\PHP\ext (make sure you're not adding the PECL folder but rather the contants)

4. Create 3 subfloders in C:\PHP - sessions, upload, log

5. Create new file php.log in C:\PHP\log

6. Add ";C:\PHP" (without the quotes) to your Environment Variables.
  • Right-click "My Computer", select properties
  • Select the Advanced tab and click Environment Variables
  • In System Variables, select "Path" and click the Edit button
  • Paste ";C:\PHP" (without the quotes) to the end of the existing string

7. Add New "PHPRC" System Variable
  • From the Environment Variables window, click New under System Variables
    • Variable Name = PHPRC
    • Variable Path = C:\PHP

8. Add PHP mapping to IIS
  • From IIS mmc, right-click "Web Sites"
  • Click the "Home Directory" tab
  • Click the "Configuration" button
  • From the "Mappings" tab, click the "Add" button
    • Executable: c:\PHP\php5isapi.dll
    • Extension: .php

9. Configure PHP.ini
  • Copy php.ini-recommended and rename to php.ini
  • In php.ini replace the following:
    • extension_dir = "./" with extension_dir = "c:\PHP\ext"
    • session.save_path = "/tmp" with session.save_path = "c:\PHP\sessions"
    • upload_tmp_dir = with upload_tmp_dir = "c:\PHP\upload"
    • error_log = filename with error_log = "c:\PHP\log\php.log"
    • extension=php_mysql.dll with extension=php_mysql.dll

10. Restart IIS

11. Test
  • Create new web site in IIS
  • Create file in new web site: phpinfo.php with the following as content:
  • Open new file in browser. If config page loads, you're done.

Sunday, January 27, 2008

Enabling Security Tab for Files in Windows Explorer (XP)

1. Windows Explorer -> Tools -> Folder Options
2. Click on the "View" tab.
3. Scroll to bottom - UNCHECK "Use simple file sharing (Recommended)"

Tuesday, December 25, 2007

Response.Expires = -1 not working

Forget -1. Really. Just forget it.

Response.ExpiresAbsolute = #2000-01-01#
Response.AddHeader "pragma", "no-cache"

Copy, paste, done.

Monday, December 24, 2007

Fiddler running slow?

Put your IP address in your hosts file! If you've a dynamically assigned IP, you'll have to change it every once in a while - no big deal.

Ex: localhost

Friday, December 07, 2007

SSL in development environment (IIS)

By far the simplest way to setup an SSL certificate for your testing and/or development environment. Works for IIS5.0, 5.1(XP) and 6.0.

Step 1. Download Internet Information Services (IIS) 6.0 Resource Kit Tools

Step 2. When running the installation package, do a custom setup and select only the "selfSSL" component.

Step 3. Start -> All Programs -> IIS Resources -> SelfSSL -> SelfSSL

Step 4. At the command prompt, copy and paste the following:

IMPORTANT: Make sure the replace [SERVER_NAME] with your real server(machine) name.

Done. Let me just say that I've actually seen people ask how to accomplish this task, only to be told, "It's a waste of time. Why would you ever need to do such a thing?!?! Just blah blah blah..."

Well first off, I don't know about you, but I like my dev environment to resemble, as closely as possible, my production environment. Second, this step is ABSOLUTELY CRITICAL when writing, testing and deploying ANY process that requires SSL. If you think it isn't, come back here when you finally figure it out and apologize.