Debian: php und php5

Debian: php und php5

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

Ich hatte oft „Schwierigkeiten“ bei der Installation von Diensten mit aktuellen PHP-Anforderungen, weil die meisten Dokumentationen zwar vorschreiben, phpauf eine bestimmte Weise aufzurufen (um beispielsweise Composer zu installieren), ich aber tatsächlich aufrufen muss php5. Und wenn es nur das wäre, könnte ich problemlos damit umgehen, aber ich habe nicht immer die volle Kontrolle darüber, welche Binärdatei verwendet wird, ohne viele Skripte usw. überarbeiten zu müssen.

$ 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 Binärdateien verweisen auf unterschiedliche PHP-Versionen, und ich verstehe nicht, warum. Wenn ich meine installierten Pakete aufliste, gibt es nur ein 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 mir jemand erklären kann, warum auf meinem Server zwei PHP-Versionen gleichzeitig vorhanden sind und dass ich, wenn möglich, sicherstellen kann, dass phpauf das PHP5-Paket verwiesen wird, das ich standardmäßig installiert habe.

Danke schön.

Antwort1

Es ist schlimm. Mit Ihrem System stimmt etwas nicht.

Bei der Debian-Methode /usr/bin/phpsollte ein symbolischer Link zu sein /etc/alternatives/php, der wiederum ein symbolischer Link zu sein sollte /usr/bin/php5. Wenn Sie also unterschiedliche Versionsinformationen für den Befehl phpund erhalten php5, ist das schlecht.

Diese Alternativen ermöglichen es Ihnen, gleichzeitig verschiedene PHP-Versionen auf demselben System zu haben. Sie könnten beispielsweise PHP4 und PHP5 haben. Aber Sie können keine unterschiedlichen Versionen von PHP5 haben, diese Pakete ersetzen sich gegenseitig.

Ich denke, manchmal wurde auf Ihrem System eine Quellcode-basierte oder nicht-debianische PHP-Installation durchgeführt, die Ihre verschwendet hat /usr/bin/php. Unter Debian Jessiees muss ein symbolischer Link sein, wie ich oben geschrieben habe.

Ihre Probleme resultieren daraus. Ich schlage vor, die nicht-Debian-PHP-Version zu entfernen und ein Dist-Upgrade durchzuführen. Vielleicht wäre auch eine Systembereinigung sinnvoll, da die nicht-Debian-PHP-Installation wahrscheinlich auch andere Dateien installiert hat.

verwandte Informationen