Могу ли я перейти с PHP 5.3.10 на PHP 5.6.0?

Я в основном разработчик PHP. В настоящее время я использую Ubuntu Linux 12.04 LTS на моей локальной машине.

Я использую следующую версию PHP для разработки моего проекта PHP:

php -v //command run at terminal to know the `PHP` version installed

PHP 5.3.10-1ubuntu3.13 with Suhosin-Patch (cli) (built: Jul  7 2014 18:54:55) 
Copyright (c) 1997-2012 The PHP Group
Zend Engine v2.3.0, Copyright (c) 1998-2012 Zend Technologies

Теперь пару дней назад команда PHP была выпущена новая последняя стабильная версия версии PHP (PHP 5.6.0).

Мой вопрос в том, что я использую версию PHP на моей старой машине, которая является слишком старой, а также все версии PHP ниже 5.4 официально не поддерживаются или объявляются в конце срока службы. Я иду за PHP 5.6.0?

Если ваш ответ "да", пожалуйста, объясните мне, как это сделать? Будет ли код, который я написал в моем проекте, работать после этой миграции? Какие изменения мне нужно будет сделать?

Если ваш ответ отрицательный, объясните, пожалуйста, почему?

Прежде чем задать этот вопрос, я просмотрел документацию Google и PHP. Там я нашел заметки миграции для следующих миграций версий:

   **5.3.x->5.4.x
   5.4.x->5.5.x
   5.5.x->5.6.x**

Не удалось выполнить переход с PHP 5.3.10 на PHP 5.6.0.

Так кто-то может помочь мне в этом отношении?

Если вам нужна дополнительная информация о моей проблеме, пожалуйста, дайте мне знать.

Ответ 1

TL; DR PHP 5.3.x все равно получит обновления безопасности от Ubuntu, но обновится до 14.04.1 для более новой версии

Вы можете загрузить и установить/установить источник для PHP 5.6 с веб-сайта, но не делайте этого, поскольку это означает, что вы рискуете потерять стабильность в своей системе, потому что другие пакеты в вашей системе не будут предназначены для этой версии, и вы вам придется обновлять его вручную каждый раз, когда выйдет новая версия, рискуя стабильностью, если эти обновления связаны с безопасностью, поскольку вы не сможете быстро их обновить, как если бы вы использовали диспетчер пакетов.

Вместо этого я предлагаю вам обновить свой дистрибутив до Ubuntu 14.04.1, который содержит PHP 5.5.9; намного выше, чем 5.3.10. Конечно, 5.3.x по-прежнему будет получать обновления безопасности до тех пор, пока Ubuntu 12.04 не достигнет EOL, но если вы хотите, чтобы последние функции вам нужно было обновить. Вы можете сделать это графически в программе обновления Ubuntu или запустить apt-get dist-upgrade как root (например, с sudo) в TTY, если вы используете версию сервера. Обновление: используйте sudo do-release-upgrade вместо этого.

Изменить: просто для уточнения, apt-get - это менеджер пакетов. Если вы обычно используете графические инструменты для установки и обновления пакетов (программный центр ubuntu, synaptic и т.д.), Вот несколько простых команд. # указывает, что он должен быть запущен как root (например, sudo apt-get install <package>), $ указывает, что вам не нужно sudo. Замените вещи тем, что вы хотите использовать (например, apt-get install chromium-browser)

# apt-get update обновляет репозитории
# apt-get upgrade обновляет до более новых пакетов (запустите сначала!)
# apt-get upgrade <package> как выше, но только обновляет один пакет (не тот полезный, если у вас нет конкретной причины)
# apt-get install <package> устанавливает пакет
# apt-get remove <package> удаляет пакет
# apt-get autoremove автоматически удаляет пакеты, которые были установлены зависимостями и больше не нужны
$ apt-cache search <query> выполняет поиск запроса, который вы дали
$ apt-cache show <package> показывает информацию для пакета
# yes "" | apt-get install <package> устанавливает пакет, отвечающий на ответ по умолчанию на все (вы можете использовать yes с большим количеством команд)
# apt-get dist-upgrade обновляет все (и удаляет некоторые пакеты), когда обычно может быть сдержан.

Ответ 2

Перейдите на Ubuntu 14.04.1, чтобы получить пакет PHP 5.5.9 в качестве пакета и воспользоваться обновлениями Ubuntu. В любом случае, я бы не пошел на 5.6.0 в производственной среде.

Из эта страница PHP вы получаете информацию о переходе от 5.3 до 5.4 и 5.4 к 5.5.

Помимо изменений и новых функций, команды PHP работали над управлением памятью и оптимизацией между 5.3 и 5.5.9. Только эти улучшения мотивируют миграцию.

Советы по миграции

  • APC: PHP теперь внедряет OPCache в качестве замены APC. Если вы использовали переменные APC, доступна некоторая информация о OPCache - в моем случае с использованием старого APC через новый модуль (смена имени), php5-apcu (примечание "u" ), была лучшей альтернативой.

  • Модули были установлены в другом каталоге. Если вы намерены сохранить php.ini extension_dir, возможно, придется отрегулировать extension_dir

  • Кроме того, dir /etc/php5 является более сложным с точки зрения структуры: ниже этого dir является mods-available (à la nginx), который содержит список модулей ini файлов. Затем в cli, fpm, apache2... dirs - это conf.d dir, который имеет символические ссылки на основные mods-available модули ini файлов; добавьте только ссылку, если вы собираетесь использовать этот модуль для этой конфигурации PHP (например, mysqli может не понадобиться для cli).

  • JSON: модуль php5-json должен быть установлен (apt-get install php5-json), чтобы получить функции PHP JSON (json_encode, decode...)

  • Заметьте, что существует проблема с привязкой /etc/php5/MODE/php.ini (MODE cli,...) к основному php.ini где-нибудь (например, в fpm) - во время обновлений Ubuntu ошибка предотвращает установку - я просто скопировал php.ini, поскольку в моем случае они одинаковы для всех режимов.

Кроме того, миграция прошла гладко.