Eseguire il downgrade di PHP da 5.4 a 5.3 in Debian


8

Ho dovuto fare un dist-upgrade Debian sul mio server ... nel frattempo, PHP è stato aggiornato a 5.4. Usiamo ioncube che supporta solo fino a 5,3 atm e ho qualche problema a trovare il downgrade a 5.3 da 5.4. Qualcuno sa come?


3
Spero sicuramente che questo non significhi che stai usando debian unstable (sid) su un server. Perché sarebbe davvero una pessima idea.
duskwuff -inattivo-

Ho dovuto fare un aggiornamento dist per soddisfare alcuni requisiti di conformità PCI

2
Sid prende il nome dal bambino malvagio di Toy Story. Rompe i giocattoli. E server.
duskwuff -inattivo-

Se il sito pacchetti.debian.com è aggiornato (cosa che riterrei che sia), allora devi essere su Debian Unstable. Un dist-upgrade non ti sposterebbe in una versione diversa.
Andrew R

@duskwuff si chiama instabile ma non è davvero instabile. In alcune occasioni potrebbe essere migliore della versione stabile. Ovviamente su un server pubblico non è spesso la soluzione migliore, perché non ottiene aggiornamenti di sicurezza veloci da parte del team di sicurezza debian ...

Risposte:


11

Nessuna delle soluzioni sopra ha funzionato per me. Ciò che ha funzionato è stato fissare i pacchetti necessari alla vecchia stalla come

Aggiungi quanto segue a /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

Creare

/etc/apt/preferences.d/preferences

E aggiungi i pacchetti di cui hai bisogno per il downgrade come nel mio caso

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

Quindi eseguire i comandi

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

Se vuoi sapere quali pacchetti devi aggiornare, esegui:

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

1
W: Impossibile recuperare ftp.us.debian.org/debian/dists/squeeze/main/source/Sorgenti : 404 non trovato [IP: 2610: 148: 1f10: 3 :: 89 80]
dionyziz

Devi aggiornare il file sources.list con questo ora: deb http://archive.debian.org/debian squeeze main contrib non-free deb-src http://archive.debian.org/debian squeeze main contrib non-free Vedi wiki.debian.org/DebianSqueeze
StevieD

2

Potresti provare questo, ma fallo a tuo rischio. Non l'ho provato da solo. ;)

  • apt-get remove php5
  • Scarica il pacchetto PHP5 da Stable
  • dpkg --force php5_5.3.3-7+squeeze8_all.deb
  • dpkg --set-selections PHP5 hold

L'ultima riga per impedire l'aggiornamento a 5.4. Quando sei pronto per la 5.4, corridpkg --set-selections PHP5 install

IonCube per 5.4 è un po 'fuori da quello che ho letto.


Ho questodpkg: error: unknown force/refuse option 'php5_5.3.3-7+squeeze13_all.deb'
holms

1
Se stai ancora lavorando su questo, dovresti sapere che IonCube è stato aggiornato per funzionare con PHP 5.4. Basta attenersi a PHP 5.4 e scaricare le ultime librerie IonCube.
Andrew R

1

Puoi installare entrambe le versioni PHP in parallelo, ad esempio PHP 5.5x e 5.3x, o anche tre versioni PHP in parallelo, ad esempio PHP 5.5x, 5.4x e 5.3x, usando fastcgi.

1. Installa 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. Compilare PHP e verificarlo

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

3. Configurare 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

Rendi eseguibile questo file.

4. Creare un nuovo host virtuale

Metti questo nel tuo host:

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

Aggiungi i domini a / etc / hosts

127.0.0.1 fastcgidemo.dev

5. Prova tutto

Abilita il sito e riavvia apache e crea un nuovo file con phpinfo () in / var / www / fastcgidemo per testare la tua configurazione.

Vai al browser e digita fastcgidemo.dev

Spero che sia d'aiuto!

Tutorial completo su:

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


0

Declassamento di PHP da 5.4 a 5.3

Prima controlla quali versioni sono supportate per php5:

apt-cache showpkg php5

Ecco lo script che potresti trovare utile ( rimuove PHP 5.4 e installa 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

Dove le versioni disponibili è possibile controllare tramite comando: apt-cache showpkg php5

Dopo l'installazione, verificarlo con il comando: php --version

Fai attenzione e non installare altri pacchetti senza la versione del pacchetto specificata (come php5-xcache), altrimenti apt-get sostituirà di nuovo la tua istanza PHP con 5.4!

Per evitare che ciò accada, puoi conservare questi pacchetti.

Tenere i pacchi usando dpkg

Per conservare i pacchetti di dpkg, è possibile eseguire il comando seguente:

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

Per contenere tutti i pacchetti PHP, esegui il seguente comando:

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

Il seguente comando ti mostrerà lo stato di possesso dei tuoi pacchetti php:

sudo dpkg --get-selections | grep ^php

Tenere i pacchetti usando aptitude

Puoi anche conservare i pacchetti usando aptitude, ad esempio:

sudo aptitude hold php5

unhold:

sudo aptitude unhold php5

extra

Vedi anche le stesse domande per Ubuntu, per qualche altra idea.


0

Vorrei prima vedere cosa ho installato

dpkg -l |grep php

quindi disinstallare qualsiasi php di esempio versione 5.4 ...

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

quindi è necessario ripulire i vecchi file (non necessario ma potrebbe aiutare)

apt-get clean

quindi come sopra modifica e aggiungi

nano /etc/apt/preferences.d/preferences

se il problema persiste, ripetere questa operazione, ma questa volta disabilita i repository che dicono respiro sibilante e lascia solo quelli laterali. potresti

apt-get install --reinstall 

-1

Ho dovuto fare un upgrade completo a wheezy cambiando le mie fonti apt con le fonti wheezy. Disinstallato php, aggiornato il sistema con le nuove fonti apt, installato php ... tutto è d'oro.


quali fonti potresti almeno pubblicarle. le mie fonti apt non hanno php5.3 lì = =
holms

Nessuna risposta a tutti ...
pduersteler il
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.