Nginx

為什麼命令“apt install php”會嘗試安裝 Apache?

  • March 31, 2020

我正在嘗試在我的 Ubuntu 18.04 上安裝 WordPress + LEMP。我對安裝 Apache 沒有興趣。為什麼 PHP 安裝程序假定我這樣做?

根據AskUbuntu 上的這個答案:How to install php without Apache webserver ?

Ubuntu軟體包詳細資訊php( php7.2) 取決於 libapache2-mod-php7.2OR php7.2-fpmOR php7.2-cgi

它似乎預設為第一個包,它本身依賴於 apache2. 但是如果你先安裝後者之一,php 然後,apache2將不會安裝。

如果您使用的是 nginx,您可能想要:

sudo apt install php php7.2-fpm

作為此答案中使用的方法的替代方法,在該方法中您告訴 APT 您確實想要哪個依賴項,您還可以指定您想要的依賴項。例如在 Ubuntu 20.04(該方法在 18.04 for 中仍然有效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.3,php7.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.

如果您知道您不想要特定的依賴項但對使用哪種替代方案無動於衷,則此方法很有用。另一方面,如果您知道您需要特定的,請使用另一個答案中的方法。

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