Degradar PHP 5.4 a 5.3 en Debian

8

Tuve que hacer una actualización de Debian dist en mi servidor ... en el proceso, PHP se actualizó a 5.4. Usamos ioncube que solo admite hasta 5.3 atm, y estoy teniendo problemas para encontrar la forma de bajar a 5.3 de 5.4. Alguien sabe como?

Carnivoris
fuente
3
Ciertamente espero que esto no signifique que esté usando Debian inestable (sid) en un servidor. Porque esa sería una muy, muy, muy mala idea.
duskwuff -inactive-
Tuve que hacer una actualización dist para cumplir con ciertos requisitos para el cumplimiento de PCI
2
Sid lleva el nombre del niño malvado en Toy Story. Él rompe los juguetes. Y servidores.
duskwuff -inactive-
Si el sitio packages.debian.com está actualizado (lo cual creo que es), entonces debe estar en Debian Unstable. Una actualización dist no lo movería a una versión diferente.
AndrewR
@duskwuff se llama inestable pero no es realmente inestable. En algunas ocasiones puede ser mejor que la versión estable. Obviamente en un servidor público no suele ser la mejor solución, ya que no recibe actualizaciones de seguridad rápidas por parte del equipo de seguridad de Debian ...

Respuestas:

11

Ninguna de las soluciones anteriores funcionó para mí. Lo que sí funcionó fue fijar los paquetes necesarios al antiguo establo, como

Agregue lo siguiente 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

Crear

/etc/apt/preferences.d/preferences

Y agregue los paquetes que necesita degradados, como en mi 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

Luego ejecuta los comandos

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

Si desea saber qué paquetes necesita actualizar, simplemente ejecute:

dpkg -l|grep php|grep 5.4|awk '{print $2}'
Dedo gordo
fuente
1
W: no se pudo obtener ftp.us.debian.org/debian/dists/squeeze/main/source/Sources : 404 Not Found [IP: 2610: 148: 1f10: 3 :: 89 80]
dionyziz
Debe actualizar el archivo sources.list con esto ahora: deb http://archive.debian.org/debian squeeze main contrib non-free deb-src http://archive.debian.org/debian squeeze main contrib non-free consulte wiki.debian.org/DebianSqueeze
StevieD
2

Podría intentar esto, pero hágalo bajo su propio riesgo. No lo intenté yo mismo. ;)

  • apt-get remove php5
  • Descargue el paquete PHP5 de Stable
  • dpkg --force php5_5.3.3-7+squeeze8_all.deb
  • dpkg --set-selections PHP5 hold

La última línea para evitar la actualización a 5.4. Cuando estés listo para 5.4, ejecutadpkg --set-selections PHP5 install

IonCube para 5.4 está un poco alejado de lo que he leído.

AndrewR
fuente
Tengo estodpkg: error: unknown force/refuse option 'php5_5.3.3-7+squeeze13_all.deb'
holms
1
Si todavía está trabajando en esto, debe saber que IonCube se ha actualizado para funcionar con PHP 5.4. Simplemente siga con PHP 5.4 y descargue las últimas bibliotecas de IonCube.
AndrewR
1

Puede instalar ambas versiones de php en paralelo, por ejemplo, PHP 5.5x y 5.3x, o incluso tres versiones de PHP en paralelo, por ejemplo, PHP 5.5x, 5.4x y 5.3x utilizando fastcgi.

1. Instalar 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. Compile PHP y verifíquelo

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

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

Haga este archivo ejecutable.

4. Crear un nuevo host virtual

Pon esto en tu 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>

Agregue los dominios a / etc / hosts

127.0.0.1 fastcgidemo.dev

5. Prueba todo

Habilite el sitio y reinicie apache y cree un nuevo archivo con phpinfo () en / var / www / fastcgidemo para probar su configuración.

Vaya al navegador y escriba fastcgidemo.dev

¡Espero eso ayude!

Tutorial completo sobre:

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

jb7AN
fuente
0

Bajar de categoría de PHP 5.4 a 5.3

Primero verifique qué versiones son compatibles con php5:

apt-cache showpkg php5

Aquí está el script que podría resultarle útil ( elimina PHP 5.4 e instala 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

Donde las versiones disponibles puede verificar por comando: apt-cache showpkg php5

Después de la instalación, verifíquelo por comando: php --version

Tenga cuidado y no instale ningún otro paquete sin la versión del paquete especificada (como php5-xcache), de lo contrario, apt-get reemplazará su instancia de PHP con 5.4 nuevamente.

Para evitar que esto suceda, puede guardar estos paquetes.

Manteniendo paquetes usando dpkg

Para retener paquetes con dpkg, puede ejecutar el siguiente comando:

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

Para mantener todos los paquetes PHP, ejecute el siguiente comando:

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

El siguiente comando le mostrará el estado de mantenimiento de sus paquetes php:

sudo dpkg --get-selections | grep ^php

Manteniendo paquetes usando aptitude

También puede guardar paquetes usando aptitude, por ejemplo:

sudo aptitude hold php5

Unhold:

sudo aptitude unhold php5

Extras

Vea también las mismas preguntas para Ubuntu, para algunas ideas más.

kenorb
fuente
0

Primero miraría lo que he instalado

dpkg -l |grep php

luego desinstale cualquier php que sea el ejemplo de la versión 5.4 ...

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

entonces necesita limpiar los archivos antiguos (no es necesario pero podría ayudar)

apt-get clean

luego como arriba editar y anclar

nano /etc/apt/preferences.d/preferences

si eso aún no funciona, repita esto, pero esta vez deshabilite los repositorios que dicen sibilancias y deje solo los sid. tú podrías

apt-get install --reinstall 
usuario2630659
fuente
-1

Tuve que hacer una actualización completa a wheezy cambiando mis fuentes aptas a las fuentes wheezy. Desinstaló php, actualizó el sistema con las nuevas fuentes apt, instaló php ... todo está dorado.

Carnivoris
fuente
qué fuentes al menos podrías publicar. mis fuentes apt no tienen ningún php5.3 allí = /
holms
No es una respuesta en absoluto ...
pduersteler