我必须在服务器上进行Debian dist升级...在此过程中,PHP升级到了5.4。我们使用的ioncube仅支持最高5.3 atm,而我在寻找如何从5.4降级到5.3时遇到了一些麻烦。有人知道吗?
我必须在服务器上进行Debian dist升级...在此过程中,PHP升级到了5.4。我们使用的ioncube仅支持最高5.3 atm,而我在寻找如何从5.4降级到5.3时遇到了一些麻烦。有人知道吗?
Answers:
上面的解决方案都不适合我。所做的工作是将必要的程序包固定到旧的马stable上,例如
将以下内容添加到 /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}'
deb http://archive.debian.org/debian squeeze main contrib non-free deb-src http://archive.debian.org/debian squeeze main contrib non-free
请参阅wiki.debian.org/DebianSqueeze
您可以尝试使用此方法,但后果自负。我自己没有尝试过。;)
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距离我阅读的内容还有一段时间。
dpkg: error: unknown force/refuse option 'php5_5.3.3-7+squeeze13_all.deb'
您可以使用fastcgi并行安装两个PHP版本,例如PHP 5.5x和5.3x,甚至安装三个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/
首先检查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将再次用5.4替换您的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
我先来看一下我已经安装了什么
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
我必须将apt来源更改为wheezy来源,以全面升级到wheezy。卸载了php,使用新的apt源码升级了系统,安装了php ...一切都很顺利。