21

在命令下运行时出现此错误

sudo apt install php7.2 php7.2-common php7.2-cli php7.2-fpm   

读取状态信息...完成

E: Unable to locate package php7.2
E: Couldn't find any package by glob 'php7.2'
E: Couldn't find any package by regex 'php7.2'
E: Unable to locate package php7.2-common
E: Couldn't find any package by glob 'php7.2-common'
E: Couldn't find any package by regex 'php7.2-common'
E: Unable to locate package php7.2-cli
E: Couldn't find any package by glob 'php7.2-cli'
E: Couldn't find any package by regex 'php7.2-cli'
E: Unable to locate package php7.2-fpm
E: Couldn't find any package by glob 'php7.2-fpm'
E: Couldn't find any package by regex 'php7.2-fpm'
4

5 回答 5

44

您需要手动添加 ondrej PPA 才能在 Ubuntu 17 上安装 PHP7.2

sudo add-apt-repository ppa:ondrej/php
sudo apt-get update
sudo apt-get install php7.2

或者通过克隆 git 存储库从源代码编译它,检查到您想要的版本,make & make install

有关从源代码编译 PHP 的更多信息,请查看如何从源代码构建/编译 PHP

于 2018-06-20T11:43:21.677 回答
22

我有一个类似的问题。这个页面帮助我解决了它。 https://tecadmin.net/install-php-debian-9-stretch/

具体来说,在 php 安装之前运行这些命令

sudo apt install ca-certificates apt-transport-https

wget -q https://packages.sury.org/php/apt.gpg -O- | sudo apt-key add -

echo "deb https://packages.sury.org/php/ stretch main" | sudo tee /etc/apt/sources.list.d/php.list

于 2018-09-17T22:58:13.543 回答
0

在我的情况下,安装了更新的 php(7.4),所以我只是用 7.4 版本替换了命令

sudo apt install php7.4 php7.4-common php7.4-cli php7.4-fpm

要知道安装的 php 版本,请使用:

php --version
于 2020-10-04T13:53:15.747 回答
0

如果您收到错误,例如php7.2 php7.2-curl没有可安装的候选者或找不到任何包或依赖php7.2-common项,请libcurl3执行此操作。记住根据您的要求更改您的包裹名称

你必须以成熟的方式应对。安装 aptitude 这些 ubuntu 包管理器会找到所有依赖项,并会一一安装。

apt-get install aptitude

现在你必须检查 aptitude 是否可以下载它是否按照说明下载

sudo aptitude install php7.2-curl

如果您遇到这样的错误

E: Unable to locate package php7.2-curl
E: Couldn't find any package by glob 'php7.2-curl'

任何类型的错误我都不是在谈论正确的这些错误

再次尝试添加php包

sudo apt-add-repository ppa:ondrej/php

sudo apt-get update

现在试试这个命令

sudo aptitude install php7.2-curl

Aptitude 会询问您是否要保留所有依赖项的当前版本

The following actions will resolve these dependencies:

     Keep the following packages at their current version:
1)     php7.2-curl [Not Installed]                        



Accept this solution? [Y/n/q/?]

n然后输入Enter

Aptitude 将找到所有依赖项并要求您安装所有包类型

y

再次

y

然后

systemctl restart apache2

对于 rhel 的 centos

systemctl restart httpd

默认情况下它不会启用 PHP 7.2 FPM。注意:要在 Apache2 中启用 PHP 7.2 FPM,请执行

a2enmod proxy_fcgi setenvif

a2enconf php7.2-fpm

此方法不仅针对此错误您可以使用 aptitude 找到任何 php apache2 或 ubuntu 系统包解决方案。

Upvote if you find your solution
于 2021-10-09T20:47:52.203 回答
0
  1. 完全删除所有版本的 PHP

    sudo apt-get purge 'php*' 
    
  2. 从未签名的存储库强制更新:

    在您的 sources.list(位于 /etc/apt/sources.list)中添加此选项:

    deb [trusted=yes] https://deb.sury.org/ stretch main 
    
  3. 将当前软件包升级到最新版本:

    sudo apt update  
    
    sudo apt upgrade  
    
  4. 首先在您的系统上安装所需的软件包:

    sudo apt install ca-certificates apt-transport-https  
    

    然后导入包签名密钥:

    wget -q https://packages.sury.org/php/apt.gpg -O- | sudo apt-key add -  
    

    之后为系统上的 PHP 包配置 PPA:

    echo "deb https://packages.sury.org/php/ stretch main" | sudo tee /etc/apt/sources.list.d/php.list 
    
  5. 最后,使用以下选项之一来安装您要求的 PHP:

    用于安装 PHP 7.2

    sudo apt install php7.2-cli 
    

    用于安装 PHP 7.1

    sudo apt install php7.1-cli 
    
于 2019-10-23T12:53:11.160 回答