Debian: PHP und PHP 5

490
kRYOoX

Ich betreibe einen kleinen privaten Debian Jessie-Server, der als private Cloud / Hosting-Plattform fungiert.

Ich habe häufig Probleme mit der Installation von Diensten mit den neuesten PHP-Anforderungen phpgehabt, da die meisten Dokumentationen Sie dazu auffordern, auf eine bestimmte Art und Weise aufzurufen (z. B. um Composer zu installieren), aber ich muss tatsächlich anrufen php5. Und wenn es nur das wäre, könnte ich leicht damit umgehen, aber ich habe nicht immer die vollständige Kontrolle darüber, welche Binärdatei verwendet wird, ohne viele Skripte überarbeiten zu müssen und so weiter.

$ 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 

Beide Binaries verweisen auf unterschiedliche PHP-Versionen, und ich verstehe nicht, warum. Wenn ich meine installierten Pakete aufliste, gibt es nur einen 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] 

Ich hoffe, dass jemand erklären kann, warum zwei PHP-Versionen auf meinem Server vorhanden sind, und wenn es trotzdem etwas gibt, kann ich sicherstellen, dass phpdas PHP-Paket, das ich standardmäßig installiert habe, verweist.

Vielen Dank.

1

1 Antwort auf die Frage

1
peterh

Es ist schlimm, etwas ist in Ihrem System nicht in Ordnung.

Auf dem Debian-Weg /usr/bin/phpsollte ein Symlink zu /etc/alternatives/php, der ein Symlink zu sein sollte /usr/bin/php5. Wenn Sie also verschiedene Versionsinformationen für den Befehl erhalten phpund php5ist es schlecht.

Diese alternative Sache ermöglicht es Ihnen, gleichzeitig verschiedene PHP-Versionen auf demselben System zu haben. Zum Beispiel könnten Sie PHP4 und PHP5 haben. Aber andere Versionen von PHP5 können Sie nicht haben, diese Pakete ersetzen sich gegenseitig.

Ich denke, manchmal kam es zu einer quellbasierten oder nicht-debianischen PHP-Installation auf Ihrem System, die Ihre verschwendete /usr/bin/php. Bei debian jessie muss es eine symbolische Verbindung sein, wie ich oben schrieb .

Ihre Probleme ergeben sich daraus. Ich empfehle, die Nicht-Debian-PHP-Version zu entfernen und ein dist-Upgrade durchzuführen. Möglicherweise wäre auch eine Systembereinigung hilfreich, die nicht-debianische PHP-Installation hat wahrscheinlich auch andere Dateien installiert.

Es ist eigentlich weniger ernst als Sie sagen, aber Ihre Antwort lässt mich das Problem finden. Mein PATH zeigte vor / usr / bin fälschlicherweise auf / usr / local / bin. Und aus einem Grund, an den ich mich wahrscheinlich nie erinnern werde, gibt es eine PHP-Binärdatei. Ich habe meinen Pfad korrigiert, und jetzt weist php wieder auf die richtige Stelle und Version hin. Vielen Dank ! kRYOoX vor 7 Jahren 0