Як знизити рівень з 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

Тримання пакетів з використанням можливостей

Ви також можете зберігати пакети, використовуючи здатність, наприклад:

sudo aptitude hold php5

Утримувати:

sudo aptitude unhold php5

3
У Ubuntu 13.x 5.3.10-1ubuntu3.4 вже не існує.
kenorb

Як би ви скасували скасування того, що у вашій відповіді?
tolgap

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

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?
kenorb

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 repo.

припустимо, що у вас більше немає репо в доречних джерелах, якщо ви запустите:

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.