
我正在運行一個小型私有 Debian Jessie 伺服器,充當私有雲/託管平台。
很多時候,我在安裝具有最新 PHP 要求的服務時遇到了“困難”,因為雖然大多數文件告訴您以某種方式調用php
(例如安裝 Composer),但我實際上必須調用php5
.如果只是這樣,我可以輕鬆處理它,但我並不總是完全控制使用什麼二進位文件,而不必重新編寫大量腳本等。
$ php5 -v
PHP 5.6.20-0+deb8u1 (cli) (built: Apr 27 2016 11:26:05)
Copyright (c) 1997-2016 The PHP Group
Zend Engine v2.6.0, Copyright (c) 1998-2016 Zend Technologies
with Zend OPcache v7.0.6-dev, Copyright (c) 1999-2016, by Zend Technologies
$ php -v
PHP 5.5.15 (cli) (built: Oct 4 2014 14:03:37)
Copyright (c) 1997-2014 The PHP Group
Zend Engine v2.5.0, Copyright (c) 1998-2014 Zend Technologies
兩個二進位檔案都指向不同版本的 PHP,我不明白為什麼。當我列出我已安裝的軟體包時,只有一個 php.ini。
php-auth/stable,now 1.6.4-1 all [installed]
php-auth-sasl/stable,now 1.0.6-1+deb8u1 all [installed,automatic]
php-db/stable,now 1.7.14-3 all [installed,automatic]
php-gettext/stable,now 1.0.11-1 all [installed,automatic]
php-http-request/stable,now 1.4.4-4 all [installed,automatic]
php-log/stable,now 1.12.8-2 all [installed,automatic]
php-mail/stable,now 1.2.0-7 all [installed,automatic]
php-mail-mime/stable,now 1.8.9-1+deb8u1 all [installed,automatic]
php-mdb2/stable,now 2.5.0b5-1 all [installed,automatic]
php-net-dime/stable,now 1.0.2-2 all [installed,automatic]
php-net-smtp/stable,now 1.6.2-2 all [installed,automatic]
php-net-socket/stable,now 1.0.14-1 all [installed,automatic]
php-net-url/stable,now 1.0.15-3 all [installed,automatic]
php-pear/stable,now 5.6.20+dfsg-0+deb8u1 all [installed]
php-soap/stable,now 0.13.0-1 all [installed,automatic]
php-tcpdf/stable,now 6.0.093+dfsg-1 all [installed,automatic]
php-xml-parser/stable,now 1.3.4-7 all [installed,automatic]
php5/stable,now 5.6.20+dfsg-0+deb8u1 all [installed] <--- HERE
php5-apcu/stable,now 4.0.7-1 amd64 [installed]
php5-cgi/stable,now 5.6.20+dfsg-0+deb8u1 amd64 [installed]
php5-cli/stable,now 5.6.20+dfsg-0+deb8u1 amd64 [installed]
php5-common/stable,now 5.6.20+dfsg-0+deb8u1 amd64 [installed]
php5-curl/stable,now 5.6.20+dfsg-0+deb8u1 amd64 [installed]
php5-gd/stable,now 5.6.20+dfsg-0+deb8u1 amd64 [installed]
php5-imagick/stable,now 3.2.0~rc1-1 amd64 [installed]
php5-imap/stable,now 5.6.20+dfsg-0+deb8u1 amd64 [installed]
php5-intl/stable,now 5.6.20+dfsg-0+deb8u1 amd64 [installed]
php5-json/stable,now 1.3.6-1 amd64 [installed,automatic]
php5-ldap/stable,now 5.6.20+dfsg-0+deb8u1 amd64 [installed,automatic]
php5-mcrypt/stable,now 5.6.20+dfsg-0+deb8u1 amd64 [installed]
php5-memcache/stable,now 3.0.8-5 amd64 [installed]
php5-memcached/stable,now 2.2.0-2 amd64 [installed]
php5-mysql/stable,now 5.6.20+dfsg-0+deb8u1 amd64 [installed]
php5-pgsql/stable,now 5.6.20+dfsg-0+deb8u1 amd64 [installed,automatic]
php5-pspell/stable,now 5.6.20+dfsg-0+deb8u1 amd64 [installed]
php5-readline/stable,now 5.6.20+dfsg-0+deb8u1 amd64 [installed,automatic]
php5-recode/stable,now 5.6.20+dfsg-0+deb8u1 amd64 [installed]
php5-sqlite/stable,now 5.6.20+dfsg-0+deb8u1 amd64 [installed]
php5-tidy/stable,now 5.6.20+dfsg-0+deb8u1 amd64 [installed]
php5-xmlrpc/stable,now 5.6.20+dfsg-0+deb8u1 amd64 [installed]
php5-xsl/stable,now 5.6.20+dfsg-0+deb8u1 amd64 [installed]
我希望有人能解釋為什麼 2 個版本的 PHP 在我的伺服器上共存,如果有的話我可以確保它php
指向我預設安裝的 php5 套件。
謝謝。
答案1
這很糟糕,你的系統出了問題。
在 debian 方式上,/usr/bin/php
應該是到 的符號鏈接/etc/alternatives/php
,這應該是到 的符號鏈接/usr/bin/php5
。因此,如果您獲得命令php
和 的不同版本信息php5
,那就不好了。
這個替代方案使您能夠在同一系統上同時擁有不同的 php 版本。例如,您可以有 php4 和 php5。但是,不同版本的php5,你不能擁有,這些套件是互相取代的。
我認為,有時您的系統上會發生基於原始程式碼或非 debianic 的 php 安裝,這會浪費您的/usr/bin/php
.在 Debian 傑西上,它必須是我上面寫的符號鏈接。
你的問題就是由此產生的。我建議刪除非 debian php 版本,並進行 dist 升級。也許一些系統清理也很有用,非 debianic php 安裝可能也安裝了其他檔案。