Nginx
為什麼命令“apt install php”會嘗試安裝 Apache?
我正在嘗試在我的 Ubuntu 18.04 上安裝 WordPress + LEMP。我對安裝 Apache 沒有興趣。為什麼 PHP 安裝程序假定我這樣做?
根據AskUbuntu 上的這個答案:How to install php without Apache webserver ? :
Ubuntu軟體包詳細資訊說
php
(php7.2
) 取決於libapache2-mod-php7.2
ORphp7.2-fpm
ORphp7.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.
如果您知道您不想要特定的依賴項但對使用哪種替代方案無動於衷,則此方法很有用。另一方面,如果您知道您需要特定的,請使用另一個答案中的方法。