Knowledge base for Windows Webmasters, Administrators and Web hosting compagnies, with a special attention to WAMP (Windows Apache MySQL PHP). Most articles/tips are currently in use on web hosting servers. This is an open site, please participate or even join us.
New:
eAccelerator 0961 for PHP 5.3.3
eAccelerator 0961 for PHP 5.2.14
eAccelerator 0.9.5.1 for PHP 4.4.9

eAccelerator binaries for PHP 5.x (windows builds)

For the Windows eAccelerator for php 5.3+ visit our new page at:eAccelerator binaries for PHP 5.3+.

Updated: eAccelerator download using latest code (0.9.5.3 with PHP 5.2.9).

Please find following the compiled binaries of eAccelerator for Windows using Microsoft VC++ 6. For PHP 4 versions: eAccelerator binaries for PHP 4.x.
If you need a version not offered here, let us know (post comment).

my.ini most important values: key_buffer_size table_cache

When tuning MySQL, the two most important variables to configure are key_buffer_size and table_cache. You should first feel confident that you have these set appropriately before trying to optimize any other variables. Ideally, key_buffer_size will be large enough to contain all the indexes (i.e. at least the total size of all .MYI files on the server) of your MyISAM tables.

MySQL recommendations (which appears to be on the conservative side...):
256MB system: key_buffer_size=64M table_cache=256 sort_buffer_size=4M read_buffer_size=1M
128MB system: key_buffer_size=16M sort_buffer_size=1M

How to determine, if you need to increase or decrease key_buffer_size:
Look at the "key_reads" (actual reads from the disk) and "key_read_requests" status variables.

Apache Better Log Rotation mod_log_rotate

Important: The Apache provided tool rotatelogs.exe is to buggy to use "for real", see: Apache Rotatelogs.exe for Windows Server

eAccelerator binaries for PHP 5.3+ (windows builds) Part 2

For the Windows eAccelerator for php 5.x (pre PHP 5.3) visit :eAccelerator binaries for PHP 5.x (pre 5.3).

eAccelerator download using latest code (0.9.6.1 with PHP 5.3.3).

Running IIS and Apache on the same server

You can not have two services offered on the same ip and port numbers.
On the same server, different services (IIS and Apache) need a unique IP/Port combination.

1) IIS might be binding to all ips on port 80. This has been the standard behavior of IIS since many years. So to run Apache with IIS, you first need to make sure IIS does not bind (i.e. listen) on all ips. The following article will help you disable IIS 6 from automatically binding to all ips on the Windows 2003 Server.

Before IIS6 (i.e IIS5), you simply had to set the metabase property "DisableSocketPooling" to true (and that was it).
For details on doing this see: Disable socket pooling on IIS5

Determine and Change your Windows version or Product Key

Here are some commands, tools and links to help determine and/or change your Windows Product Key.

  • Run the command: winver
  • Control Panel-->System
  • ProduKey from NirSoft
  • Retrieve my Windows 2000/XP/2003 or Office 2000/XP CD Key tool: Magical Jelly Bean Keyfinder
  • Other tool to read Microsoft registry product keys:  CD Key Reader
  • Tool to determine what hardware "XP activation" detected has changed on your system: http://www.licenturion.com/xp/

APC binaries for PHP 4.x (windows builds)

Updated: APC download using latest code (3.0.11).

Please find following the compiled binaries of APC for Windows using Microsoft VC++ 6. For PHP 5 versions (following link should be updated soon): PHP APC binaries for PHP 5.x.
If you need a version not offered here, let us know (post comment).