为什么命令“apt install php”尝试安装 Apache?

为什么命令“apt install php”尝试安装 Apache?

我正在尝试在 Ubuntu 18.04 上安装 WordPress + LEMP。我对安装 Apache 不感兴趣。为什么 PHP 安装程序会假设我想要安装?

答案1

根据这个答案AskUbuntu:如何在没有 Apache 网络服务器的情况下安装 php?

Ubuntu包裹详细信息表示phpphp7.2)取决于 libapache2-mod-php7.2OR php7.2-fpmOR php7.2-cgi

似乎默认使用第一个包,而它本身依赖于 apache2。但是如果你先安装后者之一,然后再安装phpapache2则不会安装。

如果你正在使用 nginx,你可能需要:

sudo apt install php php7.2-fpm

答案2

作为这个答案你可以告诉 APT 你使用哪个依赖项您还可以指定您想要的想要。例如在 Ubuntu 20.04 中(该方法在 18.04 中仍然有效php7.2),显示php7.3软件包的依赖项(省略了不相关的行):

$ apt show php7.3
Depends: libapache2-mod-php7.3 | php7.3-fpm | php7.3-cgi, php7.3-common

| 符号表示“或”,告诉您依赖关系可以通过libapache2-mod-php7.3php7.3-fpm或来满足php7.3-cgi

如果我们继续安装该软件包,我们可以看到 APT 将从列表中选择第一个依赖项(libapache2-mod-php7.3):

# apt install php7.3
The following NEW packages will be installed:
  apache2 apache2-bin apache2-data apache2-utils libapache2-mod-php7.3 libapr1 libaprutil1
  libaprutil1-dbd-sqlite3 libaprutil1-ldap libjansson4 liblua5.2-0 php-common php7.3
  php7.3-cli php7.3-common php7.3-json php7.3-opcache php7.3-readline ssl-cert
Do you want to continue? [Y/n] n
Abort.

如果您对此不满意,可以通过在不需要的软件包名称后放置连字符来告诉 APT 您不想要该依赖项。如果您这样做,那么 APT 将从列表中选择第二个依赖项(php7.3-fpm):

# apt install php7.3 libapache2-mod-php7.3-
The following NEW packages will be installed:
  php-common php7.3 php7.3-cli php7.3-common php7.3-fpm php7.3-json php7.3-opcache
  php7.3-readline
Do you want to continue? [Y/n] n
Abort.

如果您知道自己不需要某个依赖项,但又对使用哪种替代方案无所谓,则此方法很有用。另一方面,如果您知道自己需要某个特定的依赖项,请使用另一个答案中的方法。

相关内容