2014-08-30 6 views
12

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

Я использую следующую 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 5.6.0) был выпущен группой PHP развития.

Мой вопрос, так как я использую версию 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

Вы должны всегда использовать диспетчер пакетов для обновления программного обеспечения. Обновление вручную только тогда, когда это абсолютно необходимо, поэтому, когда пакет отсутствует в официальных репозиториях, и вы не хотите использовать сторонние репозиторы. – Luka

+0

@ Luka: Что означает менеджер пакетов и какой менеджер пакетов я должен использовать? – user2839497

+1

Менеджер пакетов - это программа, которая используется для автоматического поиска и установки пакетов и их зависимостей. 'apt' - пример менеджера пакетов. Все дистрибутивы на основе Debian (поэтому Ubuntu также) имеют его по умолчанию. На дистрибутивы на основе RedHat, например, есть 'yum'. Поэтому вы всегда должны устанавливать обновления, используя 'apt-get install php'. Если пакет уже установлен и появятся новые обновления, они будут установлены. Если пакет не установлен вообще, он будет установлен через несколько минут после запуска 'apt-get install'. Посмотрите на ответ DevilishDB. – Luka

ответ

8

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

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

Вместо этого я предлагаю вам обновить дистрибутив до 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 обновляет все (и удаляет некоторые пакеты), когда он обычно может быть сдержан.

+0

Я нашел redditor. Болел его –

5

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

С this PHP page вы получаете информацию о переходе от 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.iniextension_dir, возможно, придется скорректировать

  • Кроме того, /etc/php5 реж более затратным с точки зрения структуры: ниже, реж является mods-available (а-ля Nginx), который содержит список модули ini-файлов. Затем в cli, fpm, apache2 ... dirs - это каталог conf.d, который имеет символические ссылки на эти основные 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, поскольку они одинаковы для всех режимов в моем случае.

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