Как откатиться до PHP 5.2?

13

Я только что установил 10.04 LTS на свой сервер разработки, но система, на которой мне нужно работать (Magento ecommerce), не совместима с PHP 5.3, который поставляется с новейшей версией Ubuntu. Существует ли безопасный и надежный способ установки PHP 5.2 или будет проще использовать более старую версию Ubuntu?

Silvo
источник

Ответы:

9

Вы можете использовать мой ppa , который я создал для этой цели. Пожалуйста, обратите внимание на закрепление, которое необходимо. Кроме того, aptitude не распознает закрепление. Вы должны использовать специфичный для aptitude метод, если хотите его использовать.

Примечание - это только для 10.04 (lucid)

txwikinger
источник
1
Где находится ваш PPA?
Натан Осман
Извините .. Я не так быстр: D launchpad.net/~txwikinger/+archive/php5.2
txwikinger
Не могли бы вы также объяснить, что я должен делать с этим PPA?
Сильво
@silvo: вам нужно добавить ppa в списки источников, используя менеджер пакетов или add-apt-repository в командной строке. Детали для PPA находятся на веб-сайте PPA.
txwikinger
Это почти идеальный ответ, спасибо. Для тех, кто не уверен, добавить ppa к вашим источникам sudo add-apt-repository ppa:txwikinger/php5.2из командной строки. Обязательно перейдите по ссылке ppa в сообщении и примените решение закрепления txwikinger. Убедитесь, что вы запустили, sudo apt-get updateпрежде чем пытаться установить пакеты!
adamnfish
2

Можно использовать кармические пакеты и прикрепить их с помощью aptitude. Это можно сделать с помощью следующих команд:

# remove all php packge
sudo aptitude purge `dpkg -l | grep php| awk '{print $2}' |tr "\n" " "`
# use karmiс for php pakage
# pin-params:  a (archive), c (components), v (version), o (origin) and l (label).
echo -e "Package: php5\nPin: release a=karmic\nPin-Priority: 991\n"  | sudo tee   /etc/apt/preferences.d/php > /dev/null
apt-cache search php5-|grep php5-|awk '{print "Package:", $1,"\nPin: release   a=karmic\nPin-Priority: 991\n"}'|sudo tee -a /etc/apt/preferences.d/php > /dev/null
apt-cache search -n libapache2-mod-php5 |awk '{print "Package:", $1,"\nPin: release a=karmic\nPin-Priority: 991\n"}'| sudo tee -a /etc/apt/preferences.d/php > /dev/null
echo -e "Package: php-pear\nPin: release a=karmic\nPin-Priority: 991\n"  | sudo tee -a     /etc/apt/preferences.d/php > /dev/null
# add karmic to source list
grep 'main restricted' /etc/apt/sources.list|grep -v "#"| sed s/lucid/karmic/g | sudo tee             /etc/apt/sources.list.d/karmic.list > /dev/null
# update package database (use apt-get if aptitude crash)
sudo apt-get update
# install php
sudo aptitude install -t karmic php5-cli php5-cgi
# or (and) sudo apt-get install -t karmic  libapache2-mod-php5
sudo aptitude hold `dpkg -l | grep php5| awk '{print $2}' |tr "\n" " "`
#done

Получил это из текста ссылки

kone4040
источник
2

Я недавно пытался решить эту проблему сам. Вместо того, чтобы вносить изменения в управление пакетами, я сам скомпилировал PHP 5.2.17 из исходного кода, а затем использовал программу Checkinstall для установки нового пакета .deb в моей системе.

Я написал шаги в блоге, Компиляция PHP 5.2 для Ubuntu 10.10 , но эти шаги в основном включали следующее:

  1. Загрузите исходный код PHP (http://php.net/downloads.php) в / usr / local / src
  2. Сконфигурируйте источник, читая INSTALL doc и выводя из ./configure --help

моя команда configure выглядела так:

./configure --prefix=/opt --with-apxs2=/usr/bin/apxs2 --with-curl=/usr/lib --with-pgsql --with-pear --with-mysql --with-gd
  1. Скомпилируйте исходный код, используя make
  2. Установите скомпилированный пакет, используя 'checkinstall'

И это было все. Я уже установил Apache2 с помощью Synaptic (вам нужно использовать пакет apache2-mpm-prefork для использования с PHP). Кроме того, если у вас уже установлены какие-либо пакеты PHP5, вам нужно будет удалить их, прежде чем пытаться установить собственный скомпилированный пакет.

Собственная компиляция пакета на самом деле совсем не занимает много времени и является хорошим опытом, если вы еще этого не сделали на своей машине с Ubuntu.


источник