Downgrade von PHP 5.4 auf 5.3 in Debian


8

Ich musste ein Debian-Dist-Upgrade auf meinem Server durchführen ... dabei wurde PHP auf 5.4 aktualisiert. Wir verwenden Ioncube, der nur bis zu 5,3 atm unterstützt, und ich habe Probleme, ein Downgrade von 5.4 auf 5.3 zu finden. Weiß jemand wie?


3
Ich hoffe auf jeden Fall, dass dies nicht bedeutet, dass Sie Debian Instable (Sid) auf einem Server verwenden. Weil das eine wirklich, wirklich, wirklich schlechte Idee wäre.
Abenddämmerung -inaktiv-

Ich musste ein Dist-Upgrade durchführen, um bestimmte Anforderungen für die PCI-Konformität zu erfüllen

2
Sid ist nach dem bösen Kind in Toy Story benannt. Er bricht Spielzeug. Und Server.
Abenddämmerung -inaktiv-

Wenn die Website packages.debian.com auf dem neuesten Stand ist (was ich glaube), müssen Sie sich auf Debian Unstable befinden. Ein Dist-Upgrade würde Sie nicht zu einer anderen Version bewegen.
AndrewR

@duskwuff es heißt instabil, aber es ist nicht wirklich instabil. In einigen Fällen kann es besser sein als die stabile Version. Offensichtlich ist auf einem öffentlichen Server nicht oft die beste Lösung, da das Debian-Sicherheitsteam keine schnellen Sicherheitsupdates erhält ...

Antworten:


11

Keine der oben genannten Lösungen hat bei mir funktioniert. Was funktionierte, war, die notwendigen Pakete an den alten Stall zu heften, wie z

Fügen Sie Folgendes hinzu: /etc/apt/sources.lst

deb http://ftp.us.debian.org/debian/ squeeze main contrib non-free
deb-src http://ftp.us.debian.org/debian/ squeeze main contrib non-free

Erstellen

/etc/apt/preferences.d/preferences

Und fügen Sie die Pakete hinzu, die Sie herabstufen müssen, wie in meinem Fall

Package: php5*
Pin: release a=oldstable
Pin-Priority: 700

Package: libapache2-mod-php5    
Pin: release a=oldstable
Pin-Priority: 700

Package: libapache2-mod-php5
Pin: release a=oldstable
Pin-Priority: 700

Package: php-pear
Pin: release a=oldstable
Pin-Priority: 700

Package: *
Pin: release a=stable
Pin-Priority: 600

Führen Sie dann die Befehle aus

aptitude update
aptitude reinstall <necessary packages>
/etc/init.d/apache2 restart

Wenn Sie wissen möchten, welche Pakete Sie aktualisieren müssen, führen Sie einfach Folgendes aus:

dpkg -l|grep php|grep 5.4|awk '{print $2}'

1
W: Fehler beim Abrufen von ftp.us.debian.org/debian/dists/squeeze/main/source/Sources : 404 Nicht gefunden [IP: 2610: 148: 1f10: 3 :: 89 80]
dionyziz

Sie müssen die Datei sources.list jetzt damit aktualisieren: deb http://archive.debian.org/debian squeeze main contrib non-free deb-src http://archive.debian.org/debian squeeze main contrib non-free Siehe wiki.debian.org/DebianSqueeze
StevieD

2

Sie können dies versuchen, aber auf eigenes Risiko. Ich habe es nicht selbst versucht. ;)

  • apt-get remove php5
  • Laden Sie das PHP5-Paket von Stable herunter
  • dpkg --force php5_5.3.3-7+squeeze8_all.deb
  • dpkg --set-selections PHP5 hold

Die letzte Zeile, um ein Upgrade auf 5.4 zu verhindern. Wenn Sie für 5.4 bereit sind, führen Sie ausdpkg --set-selections PHP5 install

IonCube für 5.4 ist eine Weile von dem entfernt, was ich gelesen habe.


Ich habe diesedpkg: error: unknown force/refuse option 'php5_5.3.3-7+squeeze13_all.deb'
Holms

1
Wenn Sie noch daran arbeiten, sollten Sie wissen, dass IonCube für PHP 5.4 aktualisiert wurde. Bleiben Sie einfach bei PHP 5.4 und laden Sie die neuesten IonCube-Bibliotheken herunter.
AndrewR

1

Sie können beide PHP-Versionen parallel installieren, z. B. PHP 5.5x und 5.3x, oder sogar drei PHP-Versionen parallel, z. B. PHP 5.5x, 5.4x und 5.3x, mit fastcgi.

1. Installieren Sie Libs, fastCGI, git

sudo apt-get update
sudo apt-get install build-essential
sudo apt-get install libxml2 libxml2-dev libssl-dev
sudo apt-get install libcurl4-openssl-dev pkg-config
sudo apt-get install libcurl4-gnutls-dev libjpeg-dev libpng12-dev libmysqlclient-dev

sudo apt-get install git
cd /opt
sudo git clone https://github.com/cweiske/phpfarm

sudo apt-get install libapache2-mod-fastcgi apache2-mpm-worker apache2-suexec
sudo a2enmod actions fastcgi suexec
sudo service apache2 restart

2. Kompilieren Sie PHP und überprüfen Sie es

cd /opt/phpfarm/src
sudo ./compile.sh 5.3.29
cd /opt/phpfarm/inst/bin
./php-5.3.29 --version

3. Konfigurieren Sie FastCGI

sudo mkdir /var/www/cgi-bin
cd /var/www/cgi-bin
sudo nano php-cgi-5.3.29

#!/bin/sh
PHPRC="/etc/php5/cgi/5.3.29/"
export PHPRC
PHP_FCGI_CHILDREN=3
export PHP_FCGI_CHILDREN
PHP_FCGI_MAX_REQUESTS=5000
export PHP_FCGI_MAX_REQUESTS
exec /opt/phpfarm/inst/bin/php-cgi-5.3.29

Machen Sie diese Datei ausführbar.

4. Erstellen Sie einen neuen virtuellen Host

Geben Sie dies in Ihren Host ein:

<VirtualHost *:80>
    ServerAdmin webmaster@localhost
    ServerName fastcgidemo.dev
    DocumentRoot /var/www/fastcgidemo

    #php-cgi setup
    #used for multiple php versions
    FastCgiServer /var/www/cgi-bin/php-cgi-5.3.29
    ScriptAlias /cgi-bin-php/ /var/www/cgi-bin/

    <Directory "/var/www/fastcgidemo">
        Options Indexes FollowSymLinks MultiViews
        AllowOverride All
        Require all granted

            AddHandler php-cgi .php
            Action php-cgi /cgi-bin-php/php-cgi-5.3.29
            <FilesMatch "\.php$">
                SetHandler php-cgi
            </FilesMatch>
    </Directory>

    ErrorLog ${APACHE_LOG_DIR}/error_fastcgidemo.log
    CustomLog ${APACHE_LOG_DIR}/access_fastcgidemo.log combined
</VirtualHost>

Fügen Sie die Domänen zu / etc / hosts hinzu

127.0.0.1 fastcgidemo.dev

5. Testen Sie alles

Aktivieren Sie die Site und starten Sie Apache neu und erstellen Sie eine neue Datei mit phpinfo () in / var / www / fastcgidemo, um Ihre Konfiguration zu testen.

Gehen Sie zum Browser und geben Sie fastcgidemo.dev ein

Ich hoffe es hilft!

Vollständiges Tutorial zu:

http://www.jabommi.de/wiki/downgrade-php-5-5-to-5-3-ubuntu-14-with-multiple-php-versions/


0

Herunterstufen von PHP 5.4 auf 5.3

Überprüfen Sie zunächst, welche Versionen für PHP5 unterstützt werden:

apt-cache showpkg php5

Hier ist das Skript, das Sie nützlich finden könnten ( es entfernt PHP 5.4 und installiert PHP 5.3 ):

sudo apt-get remove --purge `dpkg -l | grep php | grep -w 5.4 | awk '{print $2}' | xargs`
VERSION="php5_5.3.3-7+squeeze8_all" # CHANGES THIS WITH YOUR VERSION OF PACKAGE
sudo apt-get install php5=$VERSION php5-cli=$VERSION php5-common=$VERSION libapache2-mod-php5=$VERSION
sudo apt-get install php5=$VERSION php5-cli=$VERSION php5-common=$VERSION libapache2-mod-php5=$VERSION
sudo apt-get install php-pear=$VERSION php5-curl=$VERSION php5-gd=$VERSION php5-intl=$VERSION php5-mysql=$VERSION php5-pspell=$VERSION php5-recode=$VERSION php5-snmp=$VERSION php5-sqlite=$VERSION php5-tidy=$VERSION php5-xmlrpc=$VERSION php5-xsl=$VERSION

Wo die verfügbaren Versionen können Sie per Befehl überprüfen: apt-cache showpkg php5

Überprüfen Sie es nach der Installation mit dem folgenden Befehl: php --version

Bitte seien Sie vorsichtig und installieren Sie keine anderen Pakete ohne die angegebene Paketversion (wie php5-xcache), da sonst apt-get Ihre PHP-Instanz wieder durch 5.4 ersetzt!

Um dies zu verhindern, können Sie diese Pakete aufbewahren.

Pakete mit dpkg halten

Um Pakete von dpkg zu halten, können Sie den folgenden Befehl ausführen:

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

Führen Sie den folgenden Befehl aus, um alle PHP-Pakete zu speichern:

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

Der folgende Befehl zeigt Ihnen den Status Ihrer PHP-Pakete:

sudo dpkg --get-selections | grep ^php

Pakete mit Eignung halten

Sie können Pakete auch mit aptitude halten, z. B.:

sudo aptitude hold php5

Unhold:

sudo aptitude unhold php5

Extras

Siehe auch die gleichen Fragen für Ubuntu, um weitere Ideen zu erhalten.


0

Ich würde mir zuerst ansehen, was ich installiert habe

dpkg -l |grep php

dann deinstallieren Sie alle PHP, die Version 5.4 Beispiel ist ...

apt-get remove libapache2-mod-php5 php-db php-pear php5 php5-cli php5-common

dann müssen Sie die alten Dateien bereinigen (nicht notwendig, könnte aber helfen)

apt-get clean

dann wie oben bearbeiten und anheften

nano /etc/apt/preferences.d/preferences

Wenn dies immer noch nicht funktioniert, wiederholen Sie dies, aber deaktivieren Sie diesmal die Repositorys, die Keuchen enthalten, und lassen Sie nur die Seiten-Repositorys. du könntest

apt-get install --reinstall 

-1

Ich musste ein vollständiges Upgrade auf Keuchen durchführen, indem ich meine passenden Quellen auf Keuchenquellen umstellte. PHP deinstalliert, das System mit den neuen apt-Quellen aktualisiert, PHP installiert ... alles ist golden.


Welche Quellen könnten Sie zumindest posten. Meine passenden Quellen haben kein PHP5.3 drin = /
Holms

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.