在 Debian 中将 PHP 5.4 降级到 5.3

在 Debian 中将 PHP 5.4 降级到 5.3

我必须在我的服务器上执行 Debian dist-upgrade...在此过程中,PHP 升级到了 5.4。我们使用的 ioncube 目前仅支持最高 5.3 版本,而我在查找如何从 5.4 降级到 5.3 时遇到了一些麻烦。有人知道怎么做吗?

答案1

上述两种解决方案都不适合我。我唯一能做的是将必要的软件包固定到旧的稳定版本中,例如

将以下内容添加到/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}'

答案2

你可以尝试一下,但风险自负。我自己没试过。;)

最后一行用于防止升级到 5.4。当你准备好升级到 5.4 时,运行dpkg --set-selections PHP5 install

据我所知,IonCube 5.4 版还有一段时间才发布。

答案3

您可以并行安装两个 php 版本(例如 PHP 5.5x 和 5.3x),甚至可以使用 fastcgi 并行安装三个 PHP 版本(例如 PHP 5.5x、5.4x 和 5.3x)。

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,并在 /var/www/fastcgidemo 中使用 phpinfo() 创建一个新文件来测试您的配置。

转到浏览器并输入 fastcgidemo.dev

希望能帮助到你!

完整教程:

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

答案4

我首先会看看我安装了什么

dpkg -l |grep php

然后卸载任何 php 版本 5.4 示例...

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 

相关内容