在 ubuntu 17.04 中安装 php 7.2 时出错

Error while installing php 7.2 in ubuntu 17.04

我在 运行 下面的命令

下遇到了这个错误
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'

您需要手动添加 ondrej PPA 才能在 Ubuntu17

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

或者通过克隆 git 存储库从源代码编译它,签出您想要的版本,然后进行安装

有关从源代码编译 PHP 的更多信息,请查看 how to build/compile PHP 来自源代码。

我遇到了类似的问题。 这个页面帮助我解决了它。 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

  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 您的要求:

    安装PHP7.2

    sudo apt install php7.2-cli 
    

    安装PHP7.1

    sudo apt install php7.1-cli 
    

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

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

要了解 php 安装的版本,请使用:

php --version

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

你必须以成熟的方式去应对。安装 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

此方法不仅针对此错误您还可以找到任何php apache2 或ubuntu system package using aptitude 解决方案。

Upvote if you find your solution