为了迁移旧的 php 软件,我想运行 php 5.3.*,所以我:
- 删除 php via
apt-get purge php*
- 添加了相应的http://snapshot.debian.org/archive/debian/来源
- 已安装
apt-get install php5=5.3.10-2
现在如果我这样做apt-cache policy php5
我会得到:
php5:
Installed: 5.3.10-2
Candidate: 5.6.17+dfsg-0+deb8u1
Version table:
5.6.17+dfsg-0+deb8u1 0
500 http://ftp.debian.org/debian/ jessie/main amd64 Packages
5.6.14+dfsg-0+deb8u1 0
500 http://security.debian.org/ jessie/updates/main amd64 Packages
*** 5.3.10-2 0
500 http://snapshot.debian.org/archive/debian/20120221T041601Z/ unstable/main amd64 Packages
100 /var/lib/dpkg/status
到目前为止一切顺利,我的 nginx 设置如下:
location ~ \.php$ {
try_files $uri =404;
fastcgi_pass unix:/var/run/php5-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
但现在如果我这样做,php -v
我会得到:
PHP 5.6.17-0+deb8u1 (cli) (built: Jan 13 2016 09:10:12)
Copyright (c) 1997-2015 The PHP Group
Zend Engine v2.6.0, Copyright (c) 1998-2015 Zend Technologies
with Zend OPcache v7.0.6-dev, Copyright (c) 1999-2015, by Zend Technologies
如果我发球的话,<?php phpinfo(); ?>
我会获得:
PHP Version 5.6.17-0+deb8u1
dpkg -l php5* | egrep ^ii
输出:
ii php5 5.3.10-2 all server-side, HTML-embedded scripting language (metapackage)
ii php5-cli 5.6.17+dfsg-0+deb8u1 amd64 command-line interpreter for the php5 scripting language
ii php5-common 5.6.17+dfsg-0+deb8u1 amd64 Common files for packages built from the php5 source
ii php5-fpm 5.6.17+dfsg-0+deb8u1 amd64 server-side, HTML-embedded scripting language (FPM-CGI binary)
ii php5-json 1.3.6-1 amd64 JSON module for php5
ii php5-readline 5.6.17+dfsg-0+deb8u1 amd64 Readline module for php5
那么实际运行旧版本的 php 需要哪些步骤呢?
编辑:我发现了这个https://github.com/phpbrew/phpbrew非常有用的工具。所以如果有人遇到同样的问题,这可能是一个很好的解决方案。
答案1
您还需要运行:
apt-get install php5-cli=5.3.10-2 php5-fpm=5.3.10-2 php5-common=5.3.10-2 php5-readline=5.3.10-2
这些仍属于 5.6 版本,这就是您仍然看到 5.6 的原因。