Обновление Денвера до PHP 5.4

UPD: Обновление PHP из пакета Денвер до версии 5.5.9

Итак, мы решили обновить всем интерпретатор php всем известного пакета Денвер до последней версии — 5.4.0. Минорная версия php не столь важна в данном случае, привел для точности и на будущее для решения возможных проблем (5.2.1 ввел много изменений по сравнению с 5.2.0).

Итак, первым делом посещаем сайт PHP For Windows и загружаем потокобезопасную (thread safe) сборку PHP.

Далее распаковываем с заменой в папку z:\usr\local\php5\ с заменой только те файлы, что уже присутствуют в целевой папке, а также всю папку /ext/.

Следом за этим надлежит удалить файл /ext/php_pdo.dll, он был разбит на много субмодулей в этой сборке, убедиться в этом можете сами. Также необходимо удалить его из конфигурационного файла.

extension=php_pdo.dll

И заменить это на такие строки:

extension=php_pdo_mysql.dll
extension=php_pdo_sqlite.dll

Также потребуется удалить директивы

  • allow_call_time_pass_reference
  • magic_quotes_gpc
  • register_long_arrays

После этих шагов вы увидите приветствие интерпретатора:

Z:\usr\local\php5>php.exe -v
PHP 5.4.0 (cli) (built: Feb 29 2012 19:24:02)
Copyright (c) 1997-2012 The PHP Group
Zend Engine v2.4.0, Copyright (c) 1998-2012 Zend Technologies

Это уже не относится непосредственно к PHP, но советую вам в z:\usr\local\mysql5\my.cnf заменить все вхождения cp1251 на utf8.

Запись опубликована автором admin в рубрике windows с метками , . Добавьте в закладки постоянную ссылку.
  • http://chuikoff.ru/ Кот

    Получилось обновиться, спасибо, всё работает. Но почему-то при запуске денвера выдаёт ошибку:

    Точка входа в процедуру php_chekuid не найдена в библиотеке DLL php5ts.dll

    • admin

      Рад, что вам помогло!

      php5ts.dll

      был переписан самым свежим из 5.4.3?

      php_chekuid или php_checkuid?

      • Андрей

        Спасибо за инструкцию. Всё запускается и работает, но возникает точно такая же ошибка.

        Версия PHP 5.4.4, Apache 2.2.2

        • Андрей

          Данная ошибка самоустранилась комментированием строки в php.ini
          ; extension=php_sqlite.dll

          • admin

            Большое спасибо за полезный комментарий!

          • Neuron

            Достаточно переименовать в строку вида extension=php_sqlite3.dll, потому что старого sqlite уже нету.

          • Сергей

            благодарю!

  • ыва

    Инструкция для тех, кому денвер и не нужен.
    > с заменой только те файлы, что уже присутствуют в целевой папке, а также всю папку /ext/.
    ничего не понял, что с папкой ext делать. старую удалить и на её место положить новую или слить папки с заменой совпадающих файлов?
    > Также необходимо удалить его из конфигурационного файла.

    php.ini?
    в последнем денвере там нет строки «extension=php_pdo.dll»
    > Также потребуется удалить директивы
    Удалить вообще или выставить Off?
    Ни так, ни так не заработало, короче.

  • oira

    Не берите старый файл php.ini — от версии к версии он может здорово меняться. Некоторые дирктивы удалены совсем, а кое-что доабвлено. Поэтому лучше возьмите настройки из файла php.ini — production и скопируйте из него, а потом сравните со старым php.ini Что нужно будет — исправите. И никаких ошибок (кроме несовместимостей версий php). Ура.

    • Михаил

      Сделал так. Все работает.

      Не забудьте расскомментировать строку

      extension_dir = «ext»
      в php.ini

    • kuzroman

      В той сборке которую я поставил не было php.ini, но вполне прокатил и старый с вашими изменениями.

  • Marcis Gasuns

    PHP Version 5.3.13 у меня.

    Не дает скопировать поверх тех файлов, что уже есть. Пробовал остановить денвер, но тогда и виртуального диска Z нет, поэтому не помогло. Как дойти до 5.5.5?

    • troom007

      Все правильно, после того, как виртуальный диск отключится — перейдите в папку «C:WebServers» и продолжайте работу оттуда.

    • troom007

      Все правильно, после того, как виртуальный диск отключится — перейдите в папку «C:WebServers» и продолжайте замену оттуда.

    • aldentas
  • http://party.com.ua/ Sergiy Koval

    Сделал все, как написано в инструкции. Получаю ошибку: The procedure entry point php_body_write could not be located in the dynamic link library php5ts.dll

  • kuzroman

    ОС win8 — в ней после обновления вылетает ошибка:

    Точка входа в процедуру php_body_write не найдена в библиотеке DLL Z:usrlocalphp5extphp_xdebug-2.2.0-5.3-vc9.dll.

    и денвер на 127.0.0.1 не запускался.

    Но, однако, через некоторое время все сам собой заработало. Но ошибка вылетающая каждый раз после запуска раздражает.

    • kavaler

      Я скачал xdebug для обновленной версии php http://xdebug.org/files/php_xdebug-2.2.0-5.4-vc9.dll
      Мне помогло.

      • kuzroman

        Спасибо, уже поставил WAMP Server, там версия php по дефолту новее.

  • Егор

    Спасибо, сэкономил время.

  • Gordan

    Сделал как написано в инструкции, была версия PHP5.3
    При запуске получаю два раза ошибку
    Точка входа в процедуру php_body_write не найдена в библиотеке DLL php5ts.dll

  • Pingback: Обновление PHP из пакета Денвер до версии 5.5.9 - Andrew Berezovskiy // Django/ASP.NET MVC fan

  • Лев Баздырев

    после ваших манипуляций, у меня накрылся mySQL.
    Номер ошибки #2002
    я думаю Вы понимаете что за ошибка.
    Ищу пока решения, но очень бы хотелось чтобы вы их предоставили

  • Bill Geits

    инструкция для тех ому нужен Вамп

  • lllu3o

    Спасибо, помогло.

    Хотя пришлось скачать и заменить ext/php_xdebug-2.2.0-5.3-vc9.dll на последнюю версию (http://xdebug.org/download.php) и обновить это имя файла в php.ini. Иначе при запуске 2 раза выдавало ошибку «Точка входа в процедуру php_body_write не найдена в библиотеке php5ts.dll» и не могло установить laravel должным образом.

  • Иван

    Спасибо. Все работет. Только Сайты где требуется более ранняя версия пхп не работают)

  • Виталий Краторов

    Подскажите почему апач отказывается работать. Денвер запускается как и раньше без ошибок, но апач почему то не хочет. Если вернуть старую версию пхп, то все прекрасно работает.

  • Вася

    Вот бы бы было где скачать всю папку пхп и заменить без этих манипуляций.