데비안: php와 php5

데비안: php와 php5

저는 개인 클라우드/호스팅 플랫폼 역할을 하는 소규모 개인 Debian Jessie 서버를 운영하고 있습니다.

종종 최근 PHP 요구 사항으로 인해 서비스를 설치하는 데 '어려움'에 직면했습니다. 대부분의 문서에서는 php특정 방식(예: 작곡가 설치)으로 호출하라고 지시하지만 실제로는 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

나쁘네요. 시스템에 문제가 있는 것 같습니다.

데비안 방식에서는 /usr/bin/php에 대한 심볼릭 링크여야 하며 /etc/alternatives/php, 이는 에 대한 심볼릭 링크여야 합니다 /usr/bin/php5. 따라서 명령 php과 명령에 대해 다른 버전 정보를 얻는다면 php5이는 잘못된 것입니다.

이 대안을 사용하면 동일한 시스템에서 동시에 다른 PHP 버전을 가질 수 있습니다. 예를 들어 php4와 php5가 있을 수 있습니다. 그러나 다른 버전의 php5는 가질 수 없습니다. 이러한 패키지는 서로를 대체합니다.

내 생각에 때로는 소스 기반 또는 데비안이 아닌 PHP 설치가 시스템에 발생하여 /usr/bin/php. 데비안 제시에서,위에서 쓴 것처럼 심볼릭 링크여야 합니다..

귀하의 문제는 이로 인해 발생합니다. 데비안이 아닌 PHP 버전을 제거하고 dist-upgrade를 수행하는 것이 좋습니다. 어쩌면 일부 시스템 정리도 유용할 수 있습니다. 데비안이 아닌 PHP 설치는 아마도 다른 파일도 설치했을 것입니다.

관련 정보