Смена версий PHP

Материал из Энциклопедия хостинга
Версия от 15:27, 24 августа 2016; I.artemev (обсуждение | вклад)

(разн.) ← Предыдущая | Текущая версия (разн.) | Следующая → (разн.)
Перейти к: навигация, поиск

В статье приведены актуальные способы смены версий PHP вручную на разных ОС.

Внимание! Если на сервере установлена панель ISPmanager 5, то меняйте версию PHP только с помощью модуля панели "Возможности" - "Альтернативные версии PHP".

Если Вы установите или настроите ПО вручную, нет гарантий, что панель сможет работать корректно в дальнейшем с данным ПО.

Содержание

CentOS 6

Подключаем сторонние репозитории

# wget -O /etc/yum.repos.d/centosup.repo http://centosup.ispsystem.info/centosup.repo
# yum makecache

Содержимое файла /etc/yum.repos.d/centosup.repo должен быть такой:

[centosup]
name=CentOSUP Repository
gpgcheck=0
enabled=1
baseurl=http://centosup.ispsystem.info/repo/$basearch/

Также должен быть подключен репозиторий EPEL, если нет, то подключаем. rpm -ivh http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm

Обновляем PHP 5.3 до последней версии

# yum update php-\*

обновляем PHP до 5.4

# yum install yum-plugin-replace
# yum replace php-common --replace-with=php54-common

обновляем PHP до 5.5

# yum install yum-plugin-replace
# yum replace php-common --replace-with=php55-common

обновляем PHP до 5.6

# yum install yum-plugin-replace
# yum replace php-common --replace-with=php56-common

Делаем даунгрейд до 5.2.17

# yum install yum-plugin-replace
# yum replace php-common --replace-with=php52-common

Debian

PHP 5.4.x >> PHP 5.3.x

В файл /etc/apt/sources.list добавляем строки

deb http://ftp.debian.org/debian/ squeeze main contrib non-free
deb http://security.debian.org/ squeeze/updates main contrib non-free

для подключения старого репозитория.

Создаем файл /etc/apt/preferences.d/php53 со следующим содержимым:

Package: php5*
Pin: release a=oldoldstable
Pin-Priority: 700

Package: libapache2-mod-php5
Pin: release a=oldoldstable
Pin-Priority: 700

Package: php-pear
Pin: release a=oldoldstable
Pin-Priority: 700

Package: php-apc
Pin: release a=oldoldstable
Pin-Priority: 700

Package: *
Pin: release a=oldstable
Pin-Priority: 600

Устанавливать нужно вручную из консоли: Запускаем обновление списка пакетов apt-get update и переустановку с заменой установленного php54 на требуемый php53 с теми же расширениями:

apt-get install --reinstall `dpkg -l|grep php|grep 5.4|awk '{print $2}'`

Ubuntu 12.04

PHP 5.3.x >> PHP 5.5.x

Для начала установим python-software-properties
Это программное обеспечение предоставляет средства для управления используемыми APT-репозиториями. Оно управляет как дистрибутивом, так и независимыми репозиториями программ.

apt-get install make python-software-properties

Добавляем репозиторий

add-apt-repository ppa:ondrej/php5

Если выдаёт ошибку

pycurl.error: (6, "Couldn't resolve host 'launchpad.net'")

Добавляем гугловский резолвер в свой /etc/resolv.conf:

echo "nameserver 8.8.8.8" >> /etc/resolv.conf

И повторяем добавление репозитория.

Обновляем дистрибутив

apt-get update

Устанавливаем PHP последней версии(5.5.x)

apt-get install php5 libapache2-mod-php5

Проверяем версию:

php -v
PHP 5.5.7-1+sury.org~precise+1 (cli) (built: Dec 12 2013 21:37:40) 
Copyright (c) 1997-2013 The PHP Group
Zend Engine v2.5.0, Copyright (c) 1998-2013 Zend Technologies
   with Zend OPcache v7.0.3-dev, Copyright (c) 1999-2013, by Zend Technologies
   with Xdebug v2.2.3, Copyright (c) 2002-2013, by Derick Rethans

Далее нужно будет установить необходимые расширения для PHP 5.5

apt-get install php5-расширение

Расширения, установленные вручную, нужно будет удалить и установить снова. Например, через pecl:

pecl uninstall расширение
pecl install расширение

so для PHP 5.5.x лежат в директории /usr/lib/php5/20121212/ - возможно понадобится изменить пути для расширений (например, для zend_extension)

Личные инструменты
Пространства имён

Варианты
Действия
Навигация
Инструменты

Заметили ошибку?

Выделите ее и нажмите CTRL+ENTER