WampServer (64-bit, PHP 5.4, CURL and ImageMagick)
If you are learning to program and are not yet ready to install Apache/PHP/MySQL yourself, but your workstation runs Windows, then WampServer - or Wamp - is exactly what you need. Wamp is essentially a pre-configured bundle of Apache2, PHP, MySQL and some useful tools.
If you are learning to program and are not yet ready to install Apache/PHP/MySQL yourself, but your workstation runs Windows 7/8, then WampServer - or Wamp - is exactly what you need. Wamp is essentially a pre-configured bundle of Apache2, PHP, MySQL and some useful tools (which you can read about here [1]). Installation is straightforward, and adding extra Apache2 and PHP modules is equally simple.
Wamp
Install WampServer (64bits & Apache 2.4 2.2E). Apache 2.4.2 – MySQL 5.5.24 – PHP 5.4.3 XDebug 2.1.2 XDC 1.5 PhpMyAdmin 3.4.10.1 SQLBuddy 1.3.3 webGrind 1.0.
At the time of writing this was the most recent version.

Apache Modules and PHP Extensions
Adding (and removing) modules is quite simple. When Wamp is running, an icon will be visible in the system tray (next to the clock). Left-clicking (!) it will give you additional menus. Navigate to the relevant service menu and select the required module from the list. When a module is enabled or disabled, Wamp will restart itself.
Note. If a module has a checkmark but is not working, there are two possibilities: either the module is not functioning (see CURL below), or for some mysterious reason it has not been added to the configuration file. In such cases it is worth checking the configuration files, which are accessible from the same Wamp system tray menu.
ImageMagick
If you use this image processing library, the not-so-great news is that this module must be installed separately. Note that PHP modules are tied to the PHP version (i.e. there is a PHP 5.3, 5.4, etc. version and a 32 or 64-bit version). In my case it is the 64-bit version. You can try varying other versions; what is described below has been tested and works.
1. Install ImageMagick itself. Go to [2] and download ImageMagick-6.8.4-0-Q16-x64-dll.exe. Agree to add the necessary environment variables.
2. Find the PHP module (php_imagick.dll). Open [3] and download php_imagick-svn20120508-5.4-VC9-x64. This is an archive containing the required file. Copy the file from the archive to the Wamp folder (c:wampinphpphp5.4.3ext). Restart Wamp and select php_imagick.dll under PHP extensions.

If imagick still does not appear when running the PHP function phpinfo(), check the PHP configuration file php.ini and verify that the following line is present. If not, add it.
extension=php_imagick.dll
CURL
What is CURL? CURL is a PHP library that allows connecting to another HTTP resource invisibly to the user. For example, to download an image or file (xml, pdf) from another website. Its most practical use will be when working with social network APIs (Facebook, Twitter), as the exchange of Auth security tokens takes place at a level invisible to the user.
The CURL library, although it came bundled with the package, does not work :(. Download the fixed curl module [4] and replace the existing one. Confirm that it is activated.
If the following message appears in the error log, the module is not working:
PHP Fatal error: Call to undefined function curl_init()
Apache2 Rewrite
If you want URL addresses in your projects to appear as www.domain.tld/one/two/three rather than www.domain.tld/?a=one&b=two, you need to activate the Apache 2 module: mod_rewrite. Fortunately this module comes included and activating it is similar to the process described above. Additionally, a .htaccess file must be created in the PHP project with the URL rewriting conditions specified.
MySQL Table Name Case Sensitivity
The MySQL Windows version (regardless of version), when creating tables, attempts to save their names in lowercase. That is, instead of SuperUserList you get superuserlist. On Windows these are the same name, but later when copying to the actual server (where case will matter), this could be a problem - all the more so because MySQL in the Windows environment does not allow renaming and using uppercase letters instead of lowercase.
The solution is as follows: open the MySQL configuration file my.ini and in the [wampmysqld] section insert the parameter: lower_case_table_names=0. After restarting, MySQL will save table names in mixed case.
External resources:
[1] http://www.wampserver.com/en/
[2] http://www.imagemagick.org/script/binary-releases.php#windows
[3] http://www.mediafire.com/php-win64-extensions
[4] http://www.anindya.com/php-5-4-3-and-php-5-3-13-x64-64-bit-for-windows/
comments