Boroda aka Hamster (fantaseour) wrote,
Boroda aka Hamster
fantaseour

  • Music:

Apache php4+php5 на девелоперской машине

В связи с перестановкой винчестера на девелоперском ноуте кроме всего прочего переставлял веб-серверный софт — обычно это хороший повод обновить его. Поскольку одной из ближайших задач является миграция на 5-ю версию php хотелось иметь если не две версии php одновременно, то хотя бы удобный переключатель между ними.


Приборы и материалы: WinXP Pro, Апач 2.0.59, php 4-5, утилита ln для создания хардлинка, директива Include в файле конфига Apache

Step by step:
1. Поставить Апач 2.0.59 (под самый новый апач там какие-то проблемы найти собраные модули пхп, потому ну его с проблемами)
2. Скачать последние релизные ветки php 4 и 5
3. mkdir C:\phpgroup
mkdir C:\phpgroup\php4
mkdir C:\phpgroup\php5

4. Распаковать php 5 в C:\phpgroup\php5
5. Распаковать php4 в C:\phpgroup\php4\distrib
Для php 4, из distrib в c:\phpgroup\php4:
distrib\cli\php.exe
distrib\dlls\*.*
distrib\sapi\php4apache2.dll
distrib\php4ts.dll

6. добавить в System Path (MyComputer->System Properties->Advanced->Environment Variables->System->Path)
C:\phpgroup\php;

После этого компутер недо перегрузить :)
7. можно сделать общий php.ini, тогда его надо положить куда-нибудь в c:\phpgroup\ini, и именно эту директорию скормить апачу, как PHPIniDir. Я же предпочел в php4 и php5 иметь отдельный конфиг. Выбираем как больше нравится и создаем ini файлы из заготовок. Внутри не забываем прописать
extension_dir = "c:/phpgroup/php/"

8. Идем в "там, где встал апач\conf"
создаем два файла:
httpd_php4.conf:
LoadModule php4_module "c:/phpgroup/php/php4apache2.dll"

httpd_php5.conf:
LoadModule php4_module "c:/phpgroup/php/php5apache2.dll"

9. В httpd.conf пишем:
Include conf/httpd_php.conf
PHPIniDir "C:/phpgroup/php"
AddType application/x-httpd-php .php

или PHPIniDir "C:/phpgroup/ini", если Вы решили использовать один ini файл на двоих

10. делаем переключатель:
Должна же быть какая-то папка для консольных инструментов, чтобы путь к ней был в системном пути? Если нет у вас такого делаем:
mkdir c:\tools
И добавляем ее в системный путь (MyComputer->System Properties->Advanced->Environment Variables->System->Path),
не забыть перезагрузиться.

В эту директорию кладем утилиты ln,rj и создаем батник-переключатель
phpsw.bat (обратите внимание на то, чтобы пути были правильные):
@echo off
if "%1"=="" goto ver
if %1==4 goto stopservice
if %1==5 goto stopservice
echo Wrong parameter!
goto end

:ver
php -v
goto end

:stopservice
net stop apache2
if exist c:\phpgroup\php rj c:\phpgroup\php
if exist c:\phpgroup\php rmdir c:\phpgroup\php
if exist "c:\Program Files\Apache Group\Apache2\conf\httpd_php.conf" del "c:\Program Files\Apache Group\Apache2\conf\httpd_php.conf"
echo Links removed
if %1==4 goto php4
if %1==5 goto php5

:php4
ln c:\phpgroup\php4 c:\phpgroup\php
ln "c:\Program Files\Apache Group\Apache2\conf\httpd_php4.conf" "c:\Program Files\Apache Group\Apache2\conf\httpd_php.conf"
goto runservice

:php5
ln c:\phpgroup\php5 c:\phpgroup\php
ln "c:\Program Files\Apache Group\Apache2\conf\httpd_php5.conf" "c:\Program Files\Apache Group\Apache2\conf\httpd_php.conf"
goto runservice

:runservice
echo New links created
net start apache2
php -v

:end



11. теперь можно запустить
phpsw 4 (phpsw 5)

по идее все должно работать.
Текущую версию можно проверить запустив наш переключатель без параметров
phpsw

Переключается легко и удобно:
phpsw номер_версии.

Дальше можно вынести виртуальные хосты в отдельный файл, чтобы не мешались в основном конфиге и легко переносились при переезде. Но это уже детали, на ваш вкус.

Почитать:
Установка php4 и php5 на один Apache
DOS 7 Batch Programming
NTFS Hard Links, Directory Junctions, and Windows Shortcuts
Tags: development
Subscribe

  • lenna.tiff

    via users.livejournal.com/_winnie/365667.html Эта картинка знакома всем, кто изучал графические форматы, сжатие, обработку изображений. Т.е. это…

  • NCSA Mosaic. Тени оживают в полдень.

    http://github.com/alandipert/ncsa-mosaic This is NCSA Mosaic 2.7, one of the first graphical web browsers. If you're on Ubuntu or something like…

  • Старый, но любимый комп.

    Ко мне вернулся побывавший во многих руках знакомых и родственников компутер 11 летней давности. Этот комп я покупал на одну из первых нормальных…

  • Post a new comment

    Error

    default userpic

    Your reply will be screened

    When you submit the form an invisible reCAPTCHA check will be performed.
    You must follow the Privacy Policy and Google Terms of use.
  • 10 comments

  • lenna.tiff

    via users.livejournal.com/_winnie/365667.html Эта картинка знакома всем, кто изучал графические форматы, сжатие, обработку изображений. Т.е. это…

  • NCSA Mosaic. Тени оживают в полдень.

    http://github.com/alandipert/ncsa-mosaic This is NCSA Mosaic 2.7, one of the first graphical web browsers. If you're on Ubuntu or something like…

  • Старый, но любимый комп.

    Ко мне вернулся побывавший во многих руках знакомых и родственников компутер 11 летней давности. Этот комп я покупал на одну из первых нормальных…