Не так давно возникла необходимость одновременного запуска Apache с поддержкой php4, php5 и mysql. Знаю что есть несколько готовых решений, но как-никак их приходится подпиливать ручками для своих нужд, поэтому было решено собрать такой комплект в ручную.
Использовались следующие дистрибутивы программ:
Apache: 2.2.9
PHP4: 4.4.9
PHP5: 5.2.6
MySQL: 5.0.67
Все дистрибутивы скачивались в .zip архивах, дабы избежать ненужных регистраций в системе. Дистрибутив становится привязаным к конкретному диску и папке(т.е. если вы изначально делаете все в папке C:\WebServer, то и на остальных компьютерах куда вы будете его ставить, тоже нужно будет использовать именно эту папку).
Для начала распакуем все дистрибутивы
общая директория для *php файлов будет C:\WebServer\www
PHP4 и PHP5 будут висеть на разных портах. Пусть это будут 80(для php5) и 81(для php4). Для этого делаем 2 конфигурационных файла для Apache и вносим в них след. изменения:
httpd-php4.conf:
<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:
<IfModule dir_module>
DirectoryIndex index.html index.php index.htm
Ставим MySQL:
Специальных настроек никаких не нужно, если только в файле my.cnf указать порт и пароль. Так что это мы пропустим, а вот интеграцию с php опишем:
Файл php\php4\php.ini
Остальные Extensions включаются по желанию. Аналогично подключаем php_mysql в php\php5\php.ini
Создаем папку bin\ для файлов запуска
создаем в ней файл apache-php4.cmd с содержимым:
и файл apache-php5.cmd:
Теперь с помощью этих двух файлов мы можем запускать Apache с разными версиями PHP. Mysql запускается файлом mysql/bin/mysqld-nt.exe
Если статья покажется кому-то полезной, в следующей я расскажу как сделать чтобы можно было их запускать как сервисы.
Дистрибутивы
Использовались следующие дистрибутивы программ:
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
Если статья покажется кому-то полезной, в следующей я расскажу как сделать чтобы можно было их запускать как сервисы.