Nginx
在 debian 上使用 nginx、php-fpm 執行特定(舊)php 版本
為了遷移舊的 php 軟體,我想執行 php 5.3.* 所以我:
- 通過刪除 php
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非常有用的工具。因此,如果有人面臨同樣的問題,這可能是一個很好的解決方案。
您還需要執行:
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。