Могу ли я перейти с 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, поскольку в моем случае они одинаковы для всех режимов.
Кроме того, миграция прошла гладко.