我必须在我的服务器上执行 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
你可以尝试一下,但风险自负。我自己没试过。;)
apt-get remove php5
- 下载来自稳定版的 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
据我所知,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