我正在尝试在 Ubuntu 18.04 上安装 WordPress + LEMP。我对安装 Apache 不感兴趣。为什么 PHP 安装程序会假设我想要安装?
答案1
根据这个答案在AskUbuntu:如何在没有 Apache 网络服务器的情况下安装 php?:
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
答案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.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.
如果您知道自己不需要某个依赖项,但又对使用哪种替代方案无所谓,则此方法很有用。另一方面,如果您知道自己需要某个特定的依赖项,请使用另一个答案中的方法。