Debian: php и php5

436
kRYOoX

Я использую небольшой частный сервер 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.

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] 

Я надеюсь, что кто-то может объяснить, почему на моем сервере сосуществуют две версии PHP, и если так или иначе есть, я могу убедиться, что это phpуказывает на пакет php5, который я установил по умолчанию.

Спасибо.

1

1 ответ на вопрос

1
peterh

Это плохо, что-то не так в вашей системе.

На пути к debian /usr/bin/phpдолжна быть символическая ссылка на /etc/alternatives/php, которая должна быть символической ссылкой на /usr/bin/php5. Таким образом, если вы получаете различную информацию о версии для команды phpи php5это плохо.

Эта альтернатива позволяет вам иметь одновременно разные версии php в одной системе. Например, у вас могут быть php4 и php5. Но разные версии php5 у вас не могут быть, эти пакеты заменяют друг друга.

Я думаю, что иногда в вашей системе происходила установка php, не основанная на исходных текстах или не debianic, что приводило вас к потере /usr/bin/php. На Debian Jessie это должна быть символическая ссылка, как я писал выше .

Ваши проблемы проистекают из этого. Я предлагаю удалить не-debian версию php и выполнить dist-upgrade. Может быть, некоторая очистка системы также будет полезна, так как не-debianic php install, вероятно, установит и другие файлы.

Это на самом деле менее серьезно, чем вы говорите, но ваш ответ позволил мне найти проблему. Мой PATH неправильно указывал на / usr / local / bin перед / usr / bin. И по причине, которую я, вероятно, никогда не вспомню, там есть бинарный файл PHP. Я исправил мой путь, и теперь php указывает обратно на правильное место и версию. Спасибо ! kRYOoX 7 лет назад 0

Похожие вопросы