БлогNot. Denwer 3 и PHP 5.5 - как их подружить?

Denwer 3 и PHP 5.5 - как их подружить?

Переход на PHP 5.4 и выше становится всё актуальней, хотя бы из-за этого:

Начиная с PHP 5.4 возможно использовать короткий синтаксис определения массивов, который заменяет языковую конструкцию array() на []

Однако многие по инерции сидят на Denwer, который версии PHP выше 5.3.13 на сегодняшний день не содержит. Выходов 2 - или переходить на альтернативные продукты вроде XAMPP, или, если вы верный сторонник Denwer, попытаться обновить PHP в имеющейся сборке этого пакета.

Предположим, что Denwer установлен со всеми настройками по умолчанию, как обычно и бывает.

Остановим его стандартным скриптом Stop Denwer, проверим, что виртуального диска z: в папке "Мой компьютер" не стало, если есть - выполним файл c:\WebServers\denwer\SwithOff.exe

Вот сборка PHP 5.5.9, которая сработала с последним опубликованным Denwer (PHP 5.3.13, MySQL 5.1, PostgreSQL 8.4 etc.):

 Скачать сборку PHP 5.5.9 для Denwer 3 в архиве ZIP, развернуть, не создавая новой папки

Теоретически можно было бы и Apache обновить с 2.2 до 2.4, чем лепить какую-то сборку, но это может породить дополнительные проблемы - в Denwer полно всяких Perl-скриптов, привязанных к конкретной версии Апача.

Кстати, выложу и сам установщик Denwer, для тех, кому лень заполнять анкету на сайте:

 Cкачать Denwer 3 (установщик exe под Windows)

Распаковываем сборку PHP 5.5.9 в отдельную папку. Старую папку C:\WebServers\usr\local\php5 переименовываем, например, в C:\WebServers\usr\local\php5.old , создаём новую папку C:\WebServers\usr\local\php5 и копируем туда всё, что развернули из архива, а файл php.ini скопируем из старой папки в новую, чтобы не возиться заново со всеми настройками.

Закомментарим в php.ini директиву allow_call_time_pass_reference, то есть, поставим точку с запятой перед ней:

;allow_call_time_pass_reference = On

Если на старте вылазят модальные окошечки с предупреждениями - установите Visual C++ Redistributal Pack посвежее вот отсюда, мне помогла именно версия 2012. Перезагрузитесь. Всё должно заработать :)

При какой-то конфигурации Windows 7 пришлось ещё, чтобы избавиться от назойливых предупреждений при запуске Денвера (несмотря на которые, всё работало) скопировать файлы с именами libpq.dll и fbclient.dll из папки Z:\usr\local\php5.old\ в Z:\usr\local\php5\ , после чего выполнил Restart Denwer.

27.06.2016, 02:00 [21730 просмотров]


теги: софт php сервер

показать комментарии (7)