Иногда возникает необходимость установить на одной машине несколько минорных версий PHP 5, к примеру PHP 5.2 и PHP 5.3. Это может быть нужно тогда, когда вы разрабатываете несколько сайтов под разные версии и вам не хочется каждый раз переключаться между PHP, а хочется чтобы все работало одновременно.
Особенно это актуально для тестовых серверов, где надо запускать сразу много версий и много сайтов. Казалось бы, все просто. Однако, есть один нюанс.
PHP обеих версий подключается в Apache одинаково, с помощью директивы LoadModule php5_module. Если просто их прописать в конфиге, то один из PHP (точнее сервис Apache) не запустится. Объясню, почему это происходит. Если вы установили первой PHP 5.3, потом решили запустить еще PHP 5.2, то в системе будет значиться путь динамических библиотек от PHP 5.3, которые не подходят для PHP 5.2. Таким образом, при инициализации PHP 5.2 нужно указать вручную, какие библиотеки загружать:
PHPIniDir "D:/PHP5.2/php.ini" LoadFile "D:/PHP5.2/php5ts.dll" LoadFile "D:/PHP5.2/libmysql.dll" LoadModule php5_module "D:/PHP5.2/php5apache2_2.dll"
Например, у меня две версии PHP установлены соответственно в папках D:/PHP5.2/ и D:/PHP5.3/. В них имеются одинаково названные файлы библиотек, поэтому мы и указываем, какие конкретно надо брать. Теперь инициализируются нужные файлы и обе версии PHP смогут работать одновременно и независимо друг от друга, что удобно.