Faça o downgrade do PHP 5.4 para 5.3 no Debian

8

Eu tive que fazer um dist-upgrade do Debian no meu servidor ... no processo, o PHP foi atualizado para 5.4. Usamos o ioncube, que suporta apenas 5,3 atm, e estou tendo alguns problemas para descobrir como fazer o downgrade para 5,3 da versão 5.4. Alguém sabe como?

Carnivoris
fonte
3
Eu certamente espero que isso não signifique que você esteja usando o debian unstable (sid) em um servidor. Porque isso seria uma idéia muito, muito, muito ruim.
duskwuff -inactive-
Eu tive que fazer um dist-upgrade para atender a certos requisitos de conformidade PCI
2
Sid é nomeado após o garoto mal em Toy Story. Ele quebra brinquedos. E servidores.
duskwuff -inactive-
Se o site packages.debian.com estiver atualizado (o que eu acredito que seja), você deverá estar no Debian Unstable. Uma atualização dist não levaria você a uma versão diferente.
AndrewR
@duskwuff é chamado de instável, mas não é realmente instável. Em algumas ocasiões, pode ser melhor que a versão estável. Obviamente em um servidor público não é muitas vezes a melhor solução, porque ele não recebe atualizações de segurança rápidos pela equipe de segurança debian ...

Respostas:

11

Nenhuma das soluções acima funcionou para mim. O que funcionou foi fixar os pacotes necessários no antigo estábulo, como

Adicione o seguinte 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

Crio

/etc/apt/preferences.d/preferences

E adicione os pacotes que você precisa desclassificado, como no meu 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

Em seguida, execute os comandos

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

Se você deseja saber quais pacotes precisa atualizar, execute:

dpkg -l|grep php|grep 5.4|awk '{print $2}'
Dedo gordo
fonte
1
W: falha ao buscar ftp.us.debian.org/debian/dists/squeeze/main/source/Sources : 404 não encontrado [IP: 2610: 148: 1f10: 3 :: 89 80]
dionyziz
Você precisa atualizar o arquivo sources.list agora: 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

Você pode tentar isso, mas por sua conta e risco. Eu não tentei eu mesmo. ;)

  • apt-get remove php5
  • Faça o download do pacote PHP5 no Stable
  • dpkg --force php5_5.3.3-7+squeeze8_all.deb
  • dpkg --set-selections PHP5 hold

A última linha para impedir a atualização para a 5.4. Quando estiver pronto para a versão 5.4, executedpkg --set-selections PHP5 install

O IonCube for 5.4 está um pouco longe do que li.

AndrewR
fonte
Eu tenho issodpkg: error: unknown force/refuse option 'php5_5.3.3-7+squeeze13_all.deb'
holms
1
Se você ainda está trabalhando nisso, deve saber que o IonCube foi atualizado para funcionar com o PHP 5.4. Basta seguir o PHP 5.4 e baixar as últimas bibliotecas do IonCube.
AndrewR
1

Você pode instalar as duas versões paralelas do php, por exemplo, PHP 5.5x e 5.3x, ou mesmo três versões PHP paralelas, por exemplo, PHP 5.5x, 5.4x e 5.3x usando o fastcgi.

1. Instale 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 o PHP e verifique-o

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

3. Configure o 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

Torne este arquivo executável.

4. Crie um novo host virtual

Coloque isso no seu 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>

Adicione os domínios ao / etc / hosts

127.0.0.1 fastcgidemo.dev

5. Teste tudo

Habilite o site e reinicie o apache e crie um novo arquivo com phpinfo () em / var / www / fastcgidemo para testar sua configuração.

Vá para o navegador e digite fastcgidemo.dev

Espero que ajude!

Tutorial completo sobre:

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

jb7AN
fonte
0

Fazendo o downgrade do PHP 5.4 para 5.3

Primeiro verifique quais versões são suportadas pelo php5:

apt-cache showpkg php5

Aqui está o script que você pode achar útil ( ele remove o PHP 5.4 e instala o 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

Onde as versões disponíveis você pode verificar por comando: apt-cache showpkg php5

Após a instalação, verifique-o por comando: php --version

Por favor, tenha cuidado e não instale nenhum outro pacote sem a versão do pacote especificada (como php5-xcache), caso contrário o apt-get substituirá sua instância do PHP por 5.4 novamente!

Para evitar que isso aconteça, você pode manter esses pacotes.

Retendo pacotes usando o dpkg

Para manter pacotes pelo dpkg, você pode executar o seguinte comando:

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

Para armazenar todos os pacotes PHP, execute o seguinte comando:

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

O comando a seguir mostrará o status dos seus pacotes php:

sudo dpkg --get-selections | grep ^php

Mantendo pacotes usando o aptitude

Você também pode armazenar pacotes usando o aptitude, por exemplo:

sudo aptitude hold php5

Retirar:

sudo aptitude unhold php5

Extras

Veja também as mesmas perguntas para o Ubuntu, para mais algumas idéias.

kenorb
fonte
0

Gostaria de ver primeiro o que eu instalei

dpkg -l |grep php

desinstale qualquer php que seja o exemplo da versão 5.4 ...

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

então você precisa limpar os arquivos antigos (não é necessário, mas pode ajudar)

apt-get clean

então como acima editar e fixar

nano /etc/apt/preferences.d/preferences

se isso ainda não funcionar, repita isso, mas desta vez desative os repositórios que dizem chiado e deixe apenas os sid. você poderia

apt-get install --reinstall 
user2630659
fonte
-1

Eu tive que fazer uma atualização completa para o wheezy alterando minhas fontes apt para as fontes wheezy. O php não desinstalado, atualizou o sistema com as novas fontes apt, instalou o php ... tudo está dourado.

Carnivoris
fonte
quais fontes você pode pelo menos publicá-las. minhas fontes apt não tem nenhum php5.3 lá = /
holms 08/08
Não é uma resposta a todos ...
pduersteler