我必须在我的服务器上执行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 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/
首先检查哪些版本支持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保存软件包,可以执行以下命令:
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保存包,例如:
sudo aptitude hold php5
恢复通话:
sudo aptitude unhold php5
另请参阅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 …一切都很好。