데비안에서 PHP 5.4를 5.3으로 다운 그레이드


8

내 서버에서 데비안 dist-upgrade를 수행해야했습니다 ... 그 과정에서 PHP는 5.4로 업그레이드되었습니다. 우리는 5.3 atm까지만 지원하는 ioncube를 사용하며 5.4에서 5.3으로 다운 그레이드하는 방법을 찾는 데 어려움을 겪고 있습니다. 아무도 어떻게 알아?


3
확실히 이것이 서버에서 데비안 불안정 (sid)을 사용하고 있음을 의미하지는 않기를 바랍니다. 왜냐하면 그것은 정말로, 정말로, 정말로 나쁜 생각 일 것입니다.
duskwuff -inactive-

PCI 준수에 대한 특정 요구 사항을 충족시키기 위해 업그레이드 업그레이드를 수행해야했습니다.

2
Sid는 토이 스토리에서 사악한 아이의 이름을 따서 명명되었습니다. 그는 장난감을 끊습니다. 그리고 서버.
duskwuff -inactive-

packages.debian.com 사이트가 최신 인 경우 (내 생각에 따라) 데비안 불안정에 있어야합니다. dist-upgrade는 다른 릴리스로 이동하지 않습니다.
AndrewR

@duskwuff 그것은 불안정하다고 불린다. 그러나 그것은 실제로 불안정하지 않다. 경우에 따라 안정적인 릴리스보다 낫습니다. 데비안 보안 팀이 빠른 보안 업데이트를받지 않기 때문에 공개 서버에있는 것이 가장 좋은 해결책은 아닙니다.

답변:


11

위의 해결책 중 어느 것도 나를 위해 일하지 않았습니다. 필요한 것은 필요한 패키지를 오래된 마구간에 고정시키는 것입니다.

에 다음을 추가하십시오 /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

창조하다

/etc/apt/preferences.d/preferences

필자의 경우와 같이 다운 그레이드해야 할 패키지를 추가하십시오.

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

그런 다음 명령을 실행하십시오.

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

업그레이드해야 할 패키지를 알고 싶다면 다음을 실행하십시오.

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

1
W : ftp.us.debian.org/debian/dists/squeeze/main/source/Sources 를 가져 오지 못했습니다 : 404 Not Found [IP : 2610 : 148 : 1f10 : 3 :: 89 80]
dionyziz

다음과 같이 sources.list 파일을 업데이트해야합니다. wiki.debian.org/DebianSqueezedeb http://archive.debian.org/debian squeeze main contrib non-free deb-src http://archive.debian.org/debian squeeze main contrib non-free
StevieD를

2

시도해 볼 수는 있지만 위험을 감수하십시오. 나는 그것을 직접 시도하지 않았다. ;)

  • apt-get remove php5
  • Stable 에서 PHP5 패키지 다운로드
  • dpkg --force php5_5.3.3-7+squeeze8_all.deb
  • dpkg --set-selections PHP5 hold

5.4 로의 업그레이드를 막는 마지막 줄. 5.4 준비가되면 다음을 실행하십시오.dpkg --set-selections PHP5 install

5.4 용 IonCube는 내가 읽은 내용과 약간 다릅니다.


나는 이것을 얻었다dpkg: error: unknown force/refuse option 'php5_5.3.3-7+squeeze13_all.deb'
holms

1
이 작업을 계속 진행하고 있다면 IonCube가 PHP 5.4와 함께 작동하도록 업그레이드 된 것입니다. PHP 5.4 만 사용하고 최신 IonCube 라이브러리를 다운로드하십시오.
AndrewR

1

PHP 5.5x 및 5.3x와 같은 PHP 버전을 병렬로 설치하거나 fastcgi를 사용하여 PHP 5.5x, 5.4x 및 5.3x와 같은 세 가지 PHP 버전을 병렬로 설치할 수 있습니다.

1. 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. PHP를 컴파일하고 확인하십시오

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

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

이 파일을 실행 가능하게 만드십시오.

4. 새로운 가상 호스트 생성

이것을 호스트에 넣으십시오.

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

/ etc / hosts에 도메인 추가

127.0.0.1 fastcgidemo.dev

5. 모든 것을 테스트

사이트를 활성화하고 아파치를 다시 시작하고 / var / www / fastcgidemo에서 phpinfo ()를 사용하여 새 파일을 만들어 구성을 테스트하십시오.

브라우저로 이동하여 fastcgidemo.dev를 입력하십시오

그것이 도움이되기를 바랍니다!

전체 튜토리얼 :

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


0

PHP 5.4에서 5.3으로 다운 그레이드

먼저 php5에서 지원되는 버전을 확인하십시오.

apt-cache showpkg php5

다음은 유용한 스크립트입니다 ( PHP 5.4를 제거하고 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

명령으로 확인할 수있는 버전 : apt-cache showpkg php5

설치 후 다음 명령으로 확인하십시오. php --version

php5-xcache와 같이 패키지 버전이 지정되지 않은 다른 패키지는 설치하지 마십시오. 그렇지 않으면 apt-get이 PHP 인스턴스를 5.4로 다시 바꿉니다!

이런 일이 발생하지 않도록 이러한 패키지를 보관할 수 있습니다.

dpkg를 사용하여 패키지 유지

dpkg로 패키지를 유지하려면 다음 명령을 실행할 수 있습니다.

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

모든 PHP 패키지를 보유하려면 다음 명령을 실행하십시오.

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

다음 명령은 PHP 패키지의 보류 상태를 보여줍니다.

sudo dpkg --get-selections | grep ^php

적성을 사용하여 패키지 보관

적성을 사용하여 패키지를 보유 할 수도 있습니다. 예 :

sudo aptitude hold php5

보류 :

sudo aptitude unhold php5

엑스트라

더 많은 아이디어를 얻으려면 Ubuntu와 동일한 질문을 참조하십시오.


0

먼저 내가 설치 한 것을 살펴볼 것입니다

dpkg -l |grep php

그런 다음 5.4 버전의 PHP를 제거하십시오 ...

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

그런 다음 이전 파일을 정리해야합니다 (필요하지는 않지만 도움이 될 수 있음)

apt-get clean

그런 다음 위의 편집 및 고정

nano /etc/apt/preferences.d/preferences

그래도 작동하지 않으면이 반복하지만 이번에는 천명 소리가 나는 저장소를 비활성화하고 sid 저장소 만 남겨 두십시오. 넌 할 수있어

apt-get install --reinstall 

-1

내 apt 소스를 wheezy 소스로 변경하여 wheezy로 완전히 업그레이드해야했습니다. PHP를 제거하고 새로운 적절한 소스로 시스템을 업그레이드하고 PHP를 설치했습니다 ... 모든 것이 황금색입니다.


적어도 어떤 소스를 게시 할 수 있는지 내 apt 소스에는 php5.3이 없습니다 = /
holms

전혀 대답이 아닙니다 ...
pduersteler
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.