Instalacja (downgrade) php 5.2.x w Ubuntu 10.04 Lucid

Podziel się z innymi!

    W końcu zdecydowałem się zaktualizować Ubuntu do nowszej wersji 10.04. Ku mojemu zaskoczeniu upgradowi uległ też PHP do wersji 5.3. Nie jest to przeze mnie koniecznie porządane w tym momęcie gdyż mam masę projektów, które nie zadziałają (jeszcze) z PHP w najnowszej wersji. Dlatego koniecznym stał sie downgrade do wersji 5.2. Na necie można znaleść wiele wskazówek jak tego dokonać.

    Ja początkowo skorzystałem z artykułu pt. [Install (downgrade) php 5.2.x in Ubuntu 10.04 Lucid](http://mrkandy.wordpress.com/2010/04/16/install-php-5-2-x-in-ubuntu-10-04-lucid/). Niestety PHP po restarcie Apacha się nie odpalił. Ponieważ czasu miałem mało, nie zagłębiałem się w przyczynę niepowodzenia. Poszukałem i na jednym z forów o Ubuntu znalazłem gotowy skrypt bash-a.

    #!/bin/bash
    # by Ruben Barkow (rubo77) http://www.entikey.z11.de/
     
    # Originally Posted by Bachstelze http://ubuntuforums.org/showthread.php?p=9080474#post9080474
    # OK, here's how to do the Apt magic to get PHP packages from the karmic repositories:
     
    echo "Am I root?  "
    if [ "$(whoami &2>/dev/null)" != "root" ] && [ "$(id -un &2>/dev/null)" != "root" ] ; then
      echo "  NO!
     
    Error: You must be root to run this script.
    Enter
    sudo su
    "
      exit 1
    fi
    echo "  OK";
     
     
    # finish all apt-problems:
    apt-get -f install
     
    # remove all your existing PHP packages. You can list them with dpkg -l| grep php
    PHPLIST=$(for i in $(dpkg -l | grep php|awk '{ print $2 }' ); do echo $i; done)
    echo these pachets will be removed: $PHPLIST 
    # you need not to purge, if you have upgraded from karmic:
    aptitude remove $PHPLIST
    # on a fresh install, you need purge:
    # aptitude remove --purge $PHPLIST
     
     
    #Create a file each in /etc/apt/preferences.d like this (call it for example /etc/apt/preferences.d/php5_2);
    #
    #Package: php5
    #Pin: release a=karmic
    #Pin-Priority: 991
    #
    #The big problem is that wildcards don't work, so you will need one such stanza for each PHP package you want to pull from karmic:
     
    echo ''>/etc/apt/preferences.d/php5_2
    for i in $PHPLIST ; do echo "Package: $i
    Pin: release a=karmic
    Pin-Priority: 991
    ">>/etc/apt/preferences.d/php5_2; done
     
    # duplicate your existing sources.list replacing lucid with karmic and save it in sources.list.d:
    #sed s/lucid/karmic/g /etc/apt/sources.list | sudo tee /etc/apt/sources.list.d/karmic.list
     
    # better exactly only the needed sources, cause otherwise you can get a cachsize problem:
    echo "# needed sources vor php5.2:
    deb http://de.archive.ubuntu.com/ubuntu/ karmic main restricted
    deb-src http://de.archive.ubuntu.com/ubuntu/ karmic main restricted
     
    deb http://de.archive.ubuntu.com/ubuntu/ karmic-updates main restricted
    deb-src http://de.archive.ubuntu.com/ubuntu/ karmic-updates main restricted
     
    deb http://de.archive.ubuntu.com/ubuntu/ karmic universe
    deb-src http://de.archive.ubuntu.com/ubuntu/ karmic universe
    deb http://de.archive.ubuntu.com/ubuntu/ karmic-updates universe
    deb-src http://de.archive.ubuntu.com/ubuntu/ karmic-updates universe
     
    deb http://de.archive.ubuntu.com/ubuntu/ karmic multiverse
    deb-src http://de.archive.ubuntu.com/ubuntu/ karmic multiverse
    deb http://de.archive.ubuntu.com/ubuntu/ karmic-updates multiverse
    deb-src http://de.archive.ubuntu.com/ubuntu/ karmic-updates multiverse
     
    deb http://security.ubuntu.com/ubuntu karmic-security main restricted
    deb-src http://security.ubuntu.com/ubuntu karmic-security main restricted
    deb http://security.ubuntu.com/ubuntu karmic-security universe
    deb-src http://security.ubuntu.com/ubuntu karmic-security universe
    deb http://security.ubuntu.com/ubuntu karmic-security multiverse
    deb-src http://security.ubuntu.com/ubuntu karmic-security multiverse
    " >> /etc/apt/sources.list.d/karmic.list
     
    aptitude update
     
    apache2ctl restart
     
    echo install new from karmic:
    aptitude -t karmic install $PHPLIST
     
    # at the end retry the modul libapache2-mod-php5 in case it didn't work the first time:
    aptitude -t karmic install libapache2-mod-php5
     
    apache2ctl restart

    Powyższy kod wystarczy zapisać w pliku o dowolnej nazwie np. phpdowngrade.sh, nadac mu prawa wykonalności

    chmod +x ./phpdowngrade.sh

    … i odpalić.

    UWAGA!
    Aktualizacja PHP przez Synaptica przywróci nam z powrotem wersję 5.3. Doinstalowywanie wszelkich dodatków powinniśmy wykonywać z uwzględnieniem wydania. Najprościej to zrobić uzywając konsolowego programu aptitude.

    sudo aptitude -t karmic install php5-mysql
    sudo aptitude -t karmic install phpmyadmin
    Podziel się z innymi!

      3 Comments

      1. renq

        Ale właściwie po co downgrade? Wyłączenie w php.ini E_DEPRECATED nie wystarczyło?

      2. Zbigniew Heintze Post author

        No właśnie nie wiem czy by wystarczyło, a chciałem mieć pewność, że wszystko będzie hulać.

      3. p-avel

        super dzięki, po upgrade do php 5.3 przestał działać zend optimizer, downgrade był potrzebny

        Pozdrawiam
        Paweł

      Dodaj komentarz

      Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *