如何在不安装Apache 2的情况下卸载php7.2-fpm(在LEMP机器上)

如何在不安装Apache 2的情况下卸载php7.2-fpm(在LEMP机器上),php,ubuntu,apache2,php-7.2,fpm,Php,Ubuntu,Apache2,Php 7.2,Fpm,这听起来可能很愚蠢,但我奇怪的配置似乎在尝试卸载php7.2-fpm时强制安装Apache2!我使用nginx,我最不想在服务器上看到的是Apache安装 下面是一个场景:我被Ubuntu 16.04.6 LTS安装卡住了对不起,我无法控制它,我只能维护它,使用apt安装我想要的任何东西,但不能将Ubuntu升级到当代版本 多年来,正如预期的那样,Ubuntu 16.04被许多软件包维护者抛弃,特别是那些来自Ubuntu官方存储库的软件包维护者;因此,我别无选择,只能添加许多替代存储库 而且,随

这听起来可能很愚蠢,但我奇怪的配置似乎在尝试卸载php7.2-fpm时强制安装Apache2!我使用nginx,我最不想在服务器上看到的是Apache安装

下面是一个场景:我被Ubuntu 16.04.6 LTS安装卡住了对不起,我无法控制它,我只能维护它,使用apt安装我想要的任何东西,但不能将Ubuntu升级到当代版本

多年来,正如预期的那样,Ubuntu 16.04被许多软件包维护者抛弃,特别是那些来自Ubuntu官方存储库的软件包维护者;因此,我别无选择,只能添加许多替代存储库

而且,随着时间的推移,我一直在升级PHP。第一件事是在几年前下降了5.6%。然后是7.0退役的时候了,最终也是7.1退役的时候了。同时,我安装了7.2、7.3和7.4版本,因为服务器上托管的每个站点都不多,顺便说一句,我们对它进行了严格的测试,以确保它在最新版本的PHP上继续工作

现在,我所有的网站都是在PHP7.4上运行的,除了两个网站,它们仍然需要PHP7.3,直到底层应用软件与7.4兼容,我相信这将在几周或几个月后发生。我可以安全地删除PHP7.2,因为它不再使用了

唉,它似乎并没有被完全移除——即使它并没有在启动时启动,也没有从任何地方调用它。但是,如果我尝试删除它,我会得到以下结果:

apt拆除php7.2-fpm 正在阅读软件包列表。。。多恩 构建依赖树 正在读取状态信息。。。多恩 将安装以下附加软件包: apache2 apache2 bin apache2 data apache2 utils libapache2-mod-php7.2 libapr1 libaprutil1 libaprutil1-dbd-sqlite3 libaprutil1 ldap liblua5.1-0 建议套餐: apache2 doc apache2 suexec原始款| apache2 suexec定制款 以下程序包将被删除 php7.2-fpm 将安装以下新软件包 apache2 apache2 bin apache2 data apache2 utils libapache2-mod-php7.2 libapr1 libaprutil1 libaprutil1-dbd-sqlite3 libaprutil1 ldap liblua5.1-0 0升级,10新安装,1删除,16不升级。 1未完全安装或拆除。 需要获得2879KB的档案。 执行此操作后,将使用6192 kB的额外磁盘空间。 你想继续吗?[是/否] 显然,我最不希望再次安装Apache2。此外,我相信这是我第一次看到apt希望在我请求它删除某个软件包时安装它

以下是我从apt展会上得到的信息:

apt显示php7.2-fpm 包装:php7.2-fpm 版本:7.2.31-1+ubuntu16.04.1+deb.sury.org+1 优先级:可选 章节:php 资料来源:php7.2 维护者:Debian PHP维护者 安装大小:4960 kB 提供:php fpm,phpapi-20170718 取决于:libmagic1、libpcre3>=2:8.41、mime支持、php7.2-cli、php7.2-common=7.2.31-1+ubuntu16.04.1+deb.sury.org+1、php7.2-json、php7.2-opcache、procps、systemd | systemd tmpfiles、tzdata、ucf、init系统帮助程序>=1.18~、libappargmor1>=2.7.0~beta1+bzr1772-0、libargon2-0>=201606、libm23>、libm23.14,libssl1.1>=1.1.0,libsystemd0,libxml2>=2.8.0,zlib1g>=1:1.1.4 建议:php梨 下载大小:1394KB 安装APT手册:是 APT资料来源:http://ppa.launchpad.net/ondrej/php/ubuntu xenial/main amd64封装 描述:服务器端,HTML嵌入式脚本语言FPM-CGI二进制 此软件包提供运行的Fast Process Manager解释器 作为守护进程,接收Fast/CGI请求。请注意,大多数Apache用户 可能需要libapache2-mod-php7.2包。 . 内置以下扩展:核心日期筛选器哈希libxml openssl pcre反射会话钠SPL标准zlib。 . PHP的递归缩写:超文本预处理器是一种广泛使用的 开源通用脚本语言,特别适合 用于web开发,可以嵌入HTML。 请注意,Apache 2尚未安装,尽管我相信它在几年前已经安装过一次-我从未使用/配置过它,但它可能是预装的,我不知道,我只是在这里猜测-尽管apt说它不再安装了,但在删除包时可能会有一些旧文件“混淆”apt

但是我找不到这个非常奇怪的依赖项,也找不到如何修复它我尝试了这么多选项

我没有尝试允许apt继续安装apache2,并立即对apache2包发出删除/清除请求。也许这将修复存储库依赖项

像往常一样,我提前感谢你们对我的apt初学者问题的容忍

注:很明显,我在谷歌上搜索了一个解决方案,并在这里进行了大量搜索。虽然我发现了很多关于安装/删除各种PHP版本的示例
ons,主要是Apache,有时也是nginx,我还没有找到适合我的具体案例的解决方案。在删除软件包时,apt是否有忽略某些依赖项的命令行选项?

如果直接安装PHP7.2,则会安装Apache。请试试这个

apt-get purge apache2
apt-get autoremove
apt-get install php7.2-cli php7.2-fpm

如果直接安装PHP7.2,则安装Apache。请试试这个

apt-get purge apache2
apt-get autoremove
apt-get install php7.2-cli php7.2-fpm

好吧,纯属偶然,当我再次尝试解决这个问题时,我偶然发现了以下解释:

虽然这与我自己的php7.2-fpm问题没有直接关系,但我注意到了一件非常重要的事情:末尾的星号

所以我基本上做到了:

apt get移除php7.2*

而且,为了更好的衡量

apt获取清除php7.2*

令人惊讶的是,还有一些额外的包没有被删除

而且,因为它不会受伤

apt get autoremove返回时,已无需删除的内容


此外,令我惊讶的是,我仍然发现php7.1中的一些旧软件包可用!!我用同样的方法删除了它们。而且,不幸的是,因为我有一个如此古老的基本Ubuntu系统,我需要一些来自php7.0的文件来获得一个对我的服务器整体运行至关重要的工作文件,但我的下一个清理任务将是找出如何在不干扰Roundcube的情况下清除它…

好的,很偶然,当再次尝试修复此问题时,我偶然发现了以下解释:

虽然这与我自己的php7.2-fpm问题没有直接关系,但我注意到了一件非常重要的事情:末尾的星号

所以我基本上做到了:

apt get移除php7.2*

而且,为了更好的衡量

apt获取清除php7.2*

令人惊讶的是,还有一些额外的包没有被删除

而且,因为它不会受伤

apt get autoremove返回时,已无需删除的内容


此外,令我惊讶的是,我仍然发现php7.1中的一些旧软件包可用!!我用同样的方法删除了它们。不幸的是,因为我有一个如此古老的Ubuntu系统,我需要一些php7.0中的文件来获得服务器整体运行的关键文件,但我的下一个清理任务将是找出如何在不干扰Roundcube的情况下摆脱它…

一个好主意,但不幸的是,apt get说:没有安装“apache2”包,所以没有删除,然后继续做各种愚蠢的事情,比如尝试重新启动php7.2-fpm…一个好主意,但不幸的是apt get说:包'apache2'没有安装,所以没有删除,然后继续做各种愚蠢的事情,比如尝试重新启动php7.2-fpm。。。