在Debian中将PHP 5.4降级到5.3

我必须在我的服务器上执行Debian dist-upgrade …在这个过程中,PHP升级到了5.4。 我们使用最多只支持5.3个大气压的离子立方体,而我在5.4中从5.3降级到5.3时遇到一些麻烦。 任何人都知道?

以上两种解决scheme都不适合我。 做了什么工作就是把必要的软件包固定在旧的稳定器上

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

创build

/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}' 

你可以试试这个,但是要自己承担风险。 我没有自己尝试。 ;)

  • 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有一点,但我已经读过。

你可以同时安装两个PHP版本,例如PHP 5.5x和5.3x,甚至是三个并行的PHP版本,例如使用fastcgi的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并validation它

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

3.configurationFastCGI

 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.创build一个新的虚拟主机

把这个放入你的主机:

 <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.testing一切

启用网站并重新启动Apache,并在/ var / www / fastcgidemo中使用phpinfo()创build一个新文件来testing您的configuration。

转到浏览器并inputfastcgidemo.dev

希望它有帮助!

完整教程:

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

降级PHP 5.4到5.3

首先检查哪些版本支持php5:

 apt-cache showpkg php5 

这里是你可以find有用的脚本( 它删除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 --versionvalidation它

请小心,不要在没有指定包版本(如php5-xcache)的情况下安装任何其他包,否则apt-get会再次用5.4replace您的PHP实例!

为防止这种情况发生,您可以持有这些软件包。

拿着包使用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 

附加function

另请参阅Ubuntu的相同问题,了解更多的想法。

我会先看看我已经安装了什么

 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 

如果仍然不起作用,重复这一步,但这次禁用那些喘息的存储库,只留下sid的存储库。 你可以

 apt-get install --reinstall 

我必须做一个完整的升级,通过改变我的方便源来源。 卸载php,用新的apt源升级了系统,安装了php …一切都很好。