5 December 2008

Apache+PHP4+PHP5+Mysql для Windows

Lumber room
Не так давно возникла необходимость одновременного запуска Apache с поддержкой php4, php5 и mysql. Знаю что есть несколько готовых решений, но как-никак их приходится подпиливать ручками для своих нужд, поэтому было решено собрать такой комплект в ручную.


Дистрибутивы

Использовались следующие дистрибутивы программ:
Apache: 2.2.9
PHP4: 4.4.9
PHP5: 5.2.6
MySQL: 5.0.67

Все дистрибутивы скачивались в .zip архивах, дабы избежать ненужных регистраций в системе. Дистрибутив становится привязаным к конкретному диску и папке(т.е. если вы изначально делаете все в папке C:\WebServer, то и на остальных компьютерах куда вы будете его ставить, тоже нужно будет использовать именно эту папку).

Размещение файлов

Для начала распакуем все дистрибутивы
  • Apache: C:\WebServer\apache
  • php4: C:\Webserver\php\php4
  • php5: C:\WebServer\php\php5
  • mysql: C:\WebServer\mysql

общая директория для *php файлов будет C:\WebServer\www

Настройка Apache

PHP4 и PHP5 будут висеть на разных портах. Пусть это будут 80(для php5) и 81(для php4). Для этого делаем 2 конфигурационных файла для Apache и вносим в них след. изменения:
httpd-php4.conf:
ServerRoot "C:/WebServer/apache"
Listen 81
LoadFile "c:\WebServer\php\php4\php4ts.dll"
DocumentRoot "C:\WebServer\www\htdocs
<Directory "C:\WebServer\www\htdocs">
Options Indexes FollowSymLinks
AllowOverride None
Order allow,deny
Allow from all

<IfModule dir_module>
DirectoryIndex index.html index.php index.htm


И т.д. смотря что конкретно нам нужно от Apache.
Файл php4ts.dll необходимо положить в папку php\php4\. Скачать его можно тут:
www.dll-files.ru/dll/p/Php4ts.dll.html

Далее делаем настройку php5, файл httpd-php5.conf:
ServerRoot "C:/WebServer/apache"
Listen 80
LoadModule php5_module "c:/WebServer/php/php5/php5apache2_2.dll"
AddType application/x-httpd-php .php
PHPIniDir "c:/WebServer/php/php5"
DocumentRoot "C:\WebServer\www\htdocs
<Directory "C:\WebServer\www\htdocs">
Options Indexes FollowSymLinks
AllowOverride None
Order allow,deny
Allow from all

<IfModule dir_module>
DirectoryIndex index.html index.php index.htm


Ставим MySQL:
Специальных настроек никаких не нужно, если только в файле my.cnf указать порт и пароль. Так что это мы пропустим, а вот интеграцию с php опишем:
Настройка PHP4, PHP5


Файл php\php4\php.ini
engine = On
extension=php_mysql

Остальные Extensions включаются по желанию. Аналогично подключаем php_mysql в php\php5\php.ini

Файлы запуска

Создаем папку bin\ для файлов запуска
создаем в ней файл apache-php4.cmd с содержимым:

@echo OFF
echo Apache + PHP4 started
C:\WebServer\apache\bin\httpd.exe -f C:\WebServer\apache\conf\httpd-php4.conf &

и файл apache-php5.cmd:
@echo OFF
echo Apache + PHP4 started
C:\WebServer\apache\bin\httpd.exe -f C:\WebServer\apache\conf\httpd-php4.conf &


Теперь с помощью этих двух файлов мы можем запускать Apache с разными версиями PHP. Mysql запускается файлом mysql/bin/mysqld-nt.exe
Если статья покажется кому-то полезной, в следующей я расскажу как сделать чтобы можно было их запускать как сервисы.
Tags:php4 php5 apache mysql
Hubs: Lumber room
-2
989 7
Comments 10
Popular right now
Программист (PHP, MySQL)
from 100,000 to 180,000 ₽WebDiscoveryRemote job
Программист/архитектор баз данных MySQL
from 60,000 to 60,000 ₽iFreedomLabМоскваRemote job
Backend разбработчик (PHP, Perl, MySQL)
from 90,000 to 180,000 ₽CleanTalkRemote job
Разработчик PHP/JS/MySQL
from 70,000 to 90,000 ₽АвтоВебОфисRemote job
Junior Full-Stack Developer
from 80,000 ₽Tucki IndustrialСанкт-ПетербургRemote job