Как перейти с PHP 5.4 на 5.3


18

Недавно я обновил PHP до 5.4, но мне кажется, что он не работает, потому что APC не работает с ним, однако у меня не было выбора, кроме как перейти на 5.3, как я могу это сделать?

Я выполнил apt-get remove php5и apt-get purge php5затем я снял 5,4 репо с APT-получить затем казнены apt-get install php5, он говорит , что это была установка 5.3, и я перезагрузил php-fastcgiи php5-fpmно при запуске php -vон говорит 5.4.

Как я могу понизить рейтинг с 5,4 до 5,3?

Мой сервер работает под управлением Ubuntu 11.04.

Ответы:


11

Понижение версии PHP с 5.4 до 5.3

В Ubuntu процесс понижения - это действительно беспорядок. Вот скрипт, который вы можете найти полезным ( он удаляет PHP 5.4 и устанавливает PHP 5.3 ):

sudo apt-get remove --purge `dpkg -l | grep php | grep -w 5.4 | awk '{print $2}' | xargs`
sudo apt-get install php5=5.3.10-1ubuntu3.4 php5-cli=5.3.10-1ubuntu3.4 php5-common=5.3.10-1ubuntu3.4 libapache2-mod-php5=5.3.10-1ubuntu3.4
sudo apt-get install php5=5.3.10-1ubuntu3.4 php5-cli=5.3.10-1ubuntu3.4 php5-common=5.3.10-1ubuntu3.4 libapache2-mod-php5=5.3.10-1ubuntu3.4
sudo apt-get install php-pear=5.3.10-1ubuntu3.4 php5-curl=5.3.10-1ubuntu3.4 php5-gd=5.3.10-1ubuntu3.4 php5-intl=5.3.10-1ubuntu3.4 php5-mysql=5.3.10-1ubuntu3.4 php5-pspell=5.3.10-1ubuntu3.4 php5-recode=5.3.10-1ubuntu3.4 php5-snmp=5.3.10-1ubuntu3.4 php5-sqlite=5.3.10-1ubuntu3.4 php5-tidy=5.3.10-1ubuntu3.4 php5-xmlrpc=5.3.10-1ubuntu3.4 php5-xsl=5.3.10-1ubuntu3.4

Где доступные версии вы можете проверить командой: apt-cache showpkg php5

После установки проверьте это командой: php --version

Пожалуйста, будьте осторожны и не устанавливайте другие пакеты без указания версии пакета (например, php5-xcache), иначе apt-get снова заменит ваш экземпляр PHP на 5.4!

Чтобы этого не случилось, вы можете держать эти пакеты.

Удержание пакетов с использованием dpkg

Чтобы хранить пакеты с помощью dpkg, вы можете выполнить следующую команду:

echo "php5 hold" | sudo dpkg --set-selections

Чтобы сохранить все пакеты PHP, выполните следующую команду:

dpkg --get-selections | grep ^php5 | sed s/install/hold/g | sudo dpkg --set-selections

Следующая команда покажет вам статус ваших пакетов php:

sudo dpkg --get-selections | grep ^php

Удержание пакетов с использованием aptitude

Вы также можете хранить пакеты, используя aptitude, например:

sudo aptitude hold php5

Возврат:

sudo aptitude unhold php5

3
В Ubuntu 13.x 5.3.10-1ubuntu3.4 больше не существует.
Кенорб

Как бы отменить то, что в вашем ответе?
tolgap

Вы имеете в виду вернуться к PHP 5.4 или восстановить конфигурационные файлы? Файлы конфигурации должны быть сохранены в том виде, в котором они есть (личная конфигурация не должна быть удалена). Если вы хотите вернуться к PHP 5.4, отмените, чтобы открепить пакеты, которые вы держите, и снова переустановить php5, например, sudo apt-get install php5с помощью переустановки или удаления / установки.
Кенорб

4

Сначала выполните apt-cache showpkg php5. Там вы увидите версию и другую информацию о пакете php5.

Чтобы установить конкретную версию, запустите apt-get install <package name>=<version>

В моем Ubuntu 11.10 это было бы apt-get install php5=5.3.6-13ubuntu3.6


6
Что делать, если apt-cache showpkg php5больше не отображается 5.3.x?
Кенорб

2

У меня была аналогичная проблема.

Я удалил репозитории.

Вы должны помнить, что php -vзапускается исполняемый файл в php-cliпакете, поэтому вы должны удалить его тоже.

Поэтому я сделал следующее, чтобы вернуться к 5.3.10:

sudo apt-get remove php5-cli php5 php5-common
sudo apt-get install php5 php5-mysql php5-curl

Теперь это должно показать желаемую версию:

php -v

Он устанавливает последнюю версию 5.6 для меня.
JohnnyQ


1

из шагов, которые вы описали, вы забыли apt-get update после очистки php5.4 и удаления репо php5.4.

если у вас больше нет репо в apt источниках, если вы запустите:

apt-get remove --purge php5 && apt-get update && apt-get install php5

ты должен вернуться на 5.3


В Ubuntu 13.x по умолчанию php5 указывает на 5.4.x
kenorb
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.