hej*_*san 16 php nginx apt ubuntu-18.04
我正在尝试在我的 Ubuntu 18.04 上安装 WordPress + LEMP。我对安装 Apache 没有兴趣。为什么 PHP 安装程序假定我这样做?
Kei*_*ith 23
根据这个答案对AskUbuntu:如何安装PHP没有Apache网络服务器?:
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
Run Code Online (Sandbox Code Playgroud)
Jon*_*ley 14
作为替代使用的方法这个答案在你告诉你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
Run Code Online (Sandbox Code Playgroud)
的| 符号表示“或”,并告诉您依赖关系可以通过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.
Run Code Online (Sandbox Code Playgroud)
如果您对此不满意,您可以通过在不需要的包的名称后面放置一个连字符来告诉 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.
Run Code Online (Sandbox Code Playgroud)
如果您知道自己不想要特定的依赖项,但对使用哪种替代方案无动于衷,则此方法很有用。另一方面,如果您知道自己需要一个特定的方法,请使用另一个答案中的方法。