2013-11-01 4 views
1

Недавно я обновился до Ubuntu 13.10, и у меня проблема с версиями с PHP.Перейти на версию php5 до 5.4.9-4ubuntu2.2 в Ubuntu 13.10

Клиент, у меня есть старая версия php5, из которых самая последняя версия, которая будет работать с ней без ошибок устаревания, равна 5.4.9-4ubuntu2.2. Ubuntu 13.10 поставляется с 5.5.3-1ubuntu2.

Я хотел бы узнать, есть ли способ получить 5.4.9-4ubuntu2.2 для установки на 13.10 без необходимости прибегать к компиляции исходных пакетов. Я полагаю, что должна быть командная строка apt-get для установки более старой версии, о которой я просто не знаю.

Я пробовал sudo apt-get install php5=5.4.9-4ubuntu2.2 без успеха.

Любая помощь очень ценится.

+1

Это не ответа на ваш вопрос, но почему бы не просто удалить ошибки E_DEPRECATED отчетов для этого клиента виртуального хоста вместо понижая все? – Lepidosteus

+0

Вы уверены, что получили эти номера версий правильно, потому что они читаются так же, как вы пытаетесь понизить * от * 5.3.3 * до * 5.4.9, что не имеет никакого смысла. – Sammitch

+0

Вам нужно будет найти репозиторий с этой версией. Вы можете сделать 'sudo apt-get update', чтобы убедиться, что у вас есть текущий список пакетов. Если 'sudo apt-get -s install php5' не показывает 5.4, google, чтобы узнать, работает ли другой репозиторий. – aynber

ответ

0

E_DEPRECATED сообщения информация, не должны рассматриваться на тех же уровнях, что и предупреждение. Их цель - просто сообщить разработчикам, что некоторые функциональные возможности, которые они используют, исчезнут в будущей версии.

От the documentation:

времени выполнения уведомления. Включите это, чтобы получать предупреждения о коде, который не будет работать в будущих версиях.

Хотя эти уведомления могут быть полезными при разработке, их, безусловно, следует отключать на производстве. Вы можете сделать это, добавив ~E_DEPRECATED к вашей error_reporting линии в php.ini, или добавив следующую строку в ваш скрипт/приложение:

error_reporting(error_reporting() ~E_DEPRECATED); 

Function documentation.

Если я правильно прочитал ваш комментарий, эти сообщения проистекают из вашего использования семейства функций mysql_*, которые были устарели от PHP 5.5. Эти функции по-прежнему широко используются, и пока они могут удалить, начиная с PHP 5.6, это все еще для обсуждения.

Короткий ответ: вам не нужно никого понижать, просто отмените настройки отчетов об ошибках, чтобы они не были сгенерированы.

1

У меня такая же проблема, и я нашел следующее решение. Я тестирую его в ближайшее время и опубликую результаты, но он выглядит солидно.

# upgrade system, so you can add to ignore all updates later 
sudo apt-get update 
sudo apt-get upgrade 

# remove your php, apache, etc 
sudo apt-get purge apache2 php5 libapache2-mod-php5 # add here your server packages 

# change repositories to raring (with backup) 
sudo sed -i.bak "s/saucy/raring/g" /etc/apt/sources.list 

# update and install server packages 
sudo apt-get update 
sudo apt-get install apache2 php5 libapache2-mod-php5 phpmyadmin 

# change repositories back to saucy 
sudo sed -i "s/raring/saucy/g" /etc/apt/sources.list 

# ignore all current upgrades (package hold) 
dpkg --get-selections | egrep '^(apache|php)' | sed 's/install/hold/g' | sudo dpkg --set-selections 
+0

На самом деле я нашел обходной путь в файле ini PHP, который остановил сценарии от умирания от ошибок устаревания, но это решение кажется жизнеспособной альтернативой. –

0

Мое решение:

sudo add-apt-repository 'deb http://cn.archive.ubuntu.com/ubuntu raring main' #add back raring 
sudo apt-get update 
sudo apt-get remove php5-cli php5-common 
sudo apt-get install php5-cli=5.4.9-4ubuntu2 #specify php version, lookup versions from: apt-cache policy php5-cli 
sudo apt-mark hold php5-cli #hold the version 
Смежные вопросы