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 [21859 просмотров]