Php

安裝包和可執行版本列印不匹配版本

  • October 29, 2019

我面臨一個關於上次更新的 PHP 包與實際執行的包之間不匹配的問題。

最近我通過執行更新了我的 Ubuntu 伺服器:

apt-get update && apt-get upgrade

在輸出中,我注意到安裝了正確的軟體包版本:

Unpacking php7.1-fpm (7.1.33-1+ubuntu18.04.1+deb.sury.org+1) over (PHP Version 7.1.25-1+ubuntu18.04.1+deb.sury.org+1) ...

我通過執行以下命令控制了安裝的版本:

apt-cache madison php7.1-fpm
php7.1-fpm | 7.1.33-1+ubuntu18.04.1+deb.sury.org+1 | http://ppa.launchpad.net/ondrej/php/ubuntu bionic/main amd64 Packages

但是當我phpinfo()從 php-fpm socket 執行時,我仍然看到之前安裝的版本:

PHP Version 7.1.25-1+ubuntu18.04.1+deb.sury.org+1

我試過什麼?

  • 要重新啟動php7.1-fpm
  • 重新啟動 Nginx(位於 PHP fpm 之上)。

編輯 1

$ which php
/usr/bin/php

$ ls -al /usr/bin | grep php
php -> /etc/alternatives/php
php7.1

$ ls -al /etc/alternatives | grep php 
php -> /usr/bin/php7.1
php.1.gz -> /usr/share/man/man1/php7.1.1.gz

$ /usr/bin/php7.1 -v
PHP 7.1.25-1+ubuntu18.04.1+deb.sury.org+1 (cli) (built: Dec  7 2018 08:15:52) ( NTS )

編輯 2

$ dpkg -l 'php*'|grep ^ii
ii  php-common         2:69+ubuntu18.04.1+deb.sury.org+2+php7.3   all          Common files for PHP packages
ii  php-geoip          1.1.1-2+ubuntu18.04.1+deb.sury.org+10      amd64        GeoIP module for PHP
ii  php-igbinary       3.0.1+2.0.8-1+ubuntu18.04.1+deb.sury.org+1 amd64        igbinary PHP serializer
ii  php-memcached      3.1.3+2.2.0-1+ubuntu18.04.1+deb.sury.org+1 amd64        memcached extension module for PHP, uses libmemcached
ii  php-msgpack        2.0.3+0.5.7-1+ubuntu18.04.1+deb.sury.org+1 amd64        PHP extension for interfacing with MessagePack
ii  php-redis          5.0.2+4.3.0-2+ubuntu18.04.1+deb.sury.org+1 amd64        PHP extension for interfacing with Redis
ii  php7.1             7.1.33-1+ubuntu18.04.1+deb.sury.org+1      all          server-side, HTML-embedded scripting language (metapackage)
ii  php7.1-cli         7.1.25-1+ubuntu18.04.1+deb.sury.org+1      amd64        command-line interpreter for the PHP scripting language
ii  php7.1-common      7.1.25-1+ubuntu18.04.1+deb.sury.org+1      amd64        documentation, examples and common module for PHP
ii  php7.1-curl        7.1.25-1+ubuntu18.04.1+deb.sury.org+1      amd64        CURL module for PHP
ii  php7.1-fpm         7.1.25-1+ubuntu18.04.1+deb.sury.org+1      amd64        server-side, HTML-embedded scripting language (FPM-CGI binary)
ii  php7.1-gd          7.1.25-1+ubuntu18.04.1+deb.sury.org+1      amd64        GD module for PHP
ii  php7.1-gmp         7.1.25-1+ubuntu18.04.1+deb.sury.org+1      amd64        GMP module for PHP
ii  php7.1-intl        7.1.25-1+ubuntu18.04.1+deb.sury.org+1      amd64        Internationalisation module for PHP
ii  php7.1-json        7.1.25-1+ubuntu18.04.1+deb.sury.org+1      amd64        JSON module for PHP
ii  php7.1-mbstring    7.1.25-1+ubuntu18.04.1+deb.sury.org+1      amd64        MBSTRING module for PHP
ii  php7.1-mcrypt      7.1.25-1+ubuntu18.04.1+deb.sury.org+1      amd64        libmcrypt module for PHP
ii  php7.1-mysql       7.1.25-1+ubuntu18.04.1+deb.sury.org+1      amd64        MySQL module for PHP
ii  php7.1-opcache     7.1.25-1+ubuntu18.04.1+deb.sury.org+1      amd64        Zend OpCache module for PHP
ii  php7.1-readline    7.1.25-1+ubuntu18.04.1+deb.sury.org+1      amd64        readline module for PHP
ii  php7.1-sqlite3     7.1.25-1+ubuntu18.04.1+deb.sury.org+1      amd64        SQLite3 module for PHP
ii  php7.1-xml         7.1.25-1+ubuntu18.04.1+deb.sury.org+1      amd64        DOM, SimpleXML, WDDX, XML, and XSL module for PHP
ii  php7.1-zip         7.1.25-1+ubuntu18.04.1+deb.sury.org+1      amd64        Zip module for PHP

已安裝包的列表僅顯示php7.1為 7.1.33 版本,但所有子包都未升級到 7.1.33。您可能希望同時升級php7.1-cliphp7.1-fpm升級所有依賴包,因為它們具有更嚴格的版本依賴性。

您可能希望apt-cache policy將來使用,因為apt-cache madison顯示了可用的軟體包並且未安裝在系統上:

[jollyroger@desktop:~]% apt-cache policy vim-tiny
vim-tiny:
 Installed: 2:8.1.0875-5+b1
 Candidate: 2:8.1.2136-1
 Version table:
    2:8.1.2136-1 990
       990 http://deb.debian.org/debian sid/main amd64 Packages
*** 2:8.1.0875-5+b1 100
       100 /var/lib/dpkg/status
    2:8.1.0875-5 500
       500 http://deb.debian.org/debian buster/main amd64 Packages

請注意Installed行以及標有 的行***

引用自:https://serverfault.com/questions/989723