DebianでPHP 5.4から5.3にダウングレード


8

サーバーでDebian dist-upgradeを実行する必要がありました...その過程で、PHPは5.4にアップグレードされました。5.3 atmまでしかサポートしていないioncubeを使用していますが、5.4から5.3にダウングレードする方法を見つけるのに苦労しています。誰か知ってる?


3
これが、サーバーでdebian不安定版(sid)を使用しているという意味ではないことを私は確信しています。それは本当に、本当に、本当に悪い考えになるからです。
duskwuff -inactive- 2012

PCIコンプライアンスの特定の要件を満たすためにdist-upgradeを行わなければなりませんでした

2
シドはトイ・ストーリーの邪悪な子供にちなんで名付けられました。彼はおもちゃを壊します。そしてサーバー。
duskwuff -inactive- 2012

packages.debian.comサイトが最新である(私はそうであると信じています)場合は、Debian Unstableを使用している必要があります。dist-upgradeを実行しても、別のリリースに移動することはありません。
AndrewR

@duskwuffは不安定と呼ばれていますが、実際には不安定ではありません。場合によっては、安定版リリースよりも優れていることがあります。明らかに、debianセキュリティチームによる高速なセキュリティアップデートを取得できないため、パブリックサーバー上では、多くの場合、最善の解決策ではありません...

回答:


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が見つかりません[IP:2610:148:1f10:3 :: 89 80]
dionyziz

これでsources.listファイルを今すぐ更新する必要があります。wiki.debian.orgdeb http://archive.debian.org/debian squeeze main contrib non-free deb-src http://archive.debian.org/debian squeeze main contrib non-free
DebianSqueezeを

2

これを試すこともできますが、自己責任で行ってください。私はそれを自分で試しませんでした。;)

5.4へのアップグレードを防止する最後の行。5.4の準備ができたら、次を実行します。dpkg --set-selections PHP5 install

IonCube for 5.4は、私が読んだことから少し外れています。


私はこれを持っていますdpkg: error: unknown force/refuse option 'php5_5.3.3-7+squeeze13_all.deb'
ホルムズ

1
まだこの問題に取り組んでいる場合は、IonCubeがPHP 5.4で動作するようにアップグレードされていることを知っておく必要があります。PHP 5.4を使い続け、最新のIonCubeライブラリをダウンロードしてください。
AndrewR 2012

1

fastcgiを使用して、PHP 5.5xと5.3xなどの両方のPHPバージョンを並列にインストールすることも、PHP 5.5x、5.4x、5.3xなどの3つの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.すべてをテストする

サイトを有効にしてApacheを再起動し、phpinfo()を使用して/ var / www / fastcgidemoに新しいファイルを作成し、構成をテストします。

ブラウザに移動し、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

aptitudeを使用してパッケージを保持する

aptitudeを使用してパッケージを保持することもできます。例:

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

それでも動作しない場合は、これを繰り返しますが、今回はwheezeと言うリポジトリを無効にし、sidリポジトリのみを残します。あなたは出来る

apt-get install --reinstall 

-1

私は自分の適切なソースをwheezyソースに変更することでwheezyに完全にアップグレードする必要がありました。PHPをアンインストールし、システムを新しいaptソースでアップグレードし、PHPをインストールしました...すべてが黄金色です。


少なくともそれらを投稿できるソース。私の適切なソースにはphp5.3がありません= /
holms

まったく答えではありません...
pduersteler 2013年
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.