XAMPP is just another package of:

Apache HTTP Server,
MySQL,
PHP + PEAR + Zend Framework, phpMyAdmin,
Perl,
FileZilla FTP Server,
Mercury Mail Server,
OpenSSL,
Webalizer,
etc.

like WAMP, EasyPHP (the first of its kind I’ve known), and others:

http://en.wikipedia.org/wiki/Comparison_of_WAMPs

XAMPP 1.7.3 includes:
— Apache 2.2.14 (released in October 2009) and PHP 5.3.1 (released in November 2009)

XAMPP 1.7.4 includes:
— Apache 2.2.17 (released in October 2010) and PHP 5.3.5 (released in January 2011)

(…because my main concern is Apache and PHP)

Naturally, from time to time, we have to plan upgrading the web application environment. It is imperative to upgrade almost every year, if not every 6 months.

Our application is connected to Microsoft SQL Server 2005; so, we’ve been using php_mssql.dll and php_pdo_mssql.dll to enable us to use PDO.

Guess what? XAMPP 1.7.4 did not come with PHP libraries for SQL Server!

Immediate reactions:

+ reverting back to XAMPP 1.7.3
+ or manual installation of the latest Apache and PHP (PHP 5.3.6 is already released)

PHP 5.3.6 does not come with libraries for SQL Server either! I found out that mighty Microsoft decided to give better support for PHP by providing better libraries for “the” SQL Server:

http://msdn.microsoft.com/en-us/sqlserver/ff657782.aspx

You have to install native client libraries and download DLLs for PHP, such as thread-safe and compiled using VC9:

php_sqlsrv_53_ts_vc9.dll
php_pdo_sqlsrv_53_ts_vc9.dll

This lead to another critical issue: although we used PDO for SQL Server, our code got broken when we tried to use these new libraries. We understood that Microsoft finished implementing their PDO library without backward compatibility!

Here are some examples of features/functions that caused us headache:

PDO::beginTransaction
PDO::commit
PDO::rollBack

Since these were not available in the previous version of pdo_mssql, we had to use SQL commands:

BEGIN TRANSACTION;
COMMIT;
ROLLBACK;

Also, we had issues with PDO::query which included SQL commands that executed stored procedures in the database.

In short, we could not take the risk of discovering more broken pieces of code!

We have swiftly re-installed XAMPP 1.7.3!

What’s going to happen next?!