web-dev-qa-db-ja.com

コマンド 'apt install php'がApacheをインストールしようとするのはなぜですか?

WordPress + LEMPをUbuntu 18.04にインストールしようとしています。Apacheのインストールに興味がありません。なぜPHPインストーラーが私がそうすることを想定しているのですか?

14
hejsan

この答え によると AskUbuntu:Apacheウェブサーバーなしでphpをインストールする方法?

Ubuntu パッケージの詳細 は言うphpphp7.2)はlibapache2-mod-php7.2 OR php7.2-fpm ORに依存するphp7.2-cgi

デフォルトでは最初のパッケージになっているようですが、それ自体はApache2に依存しています。ただし、後者のいずれかを最初にインストールし、その後phpをインストールすると、Apache2はインストールされません。

Nginxを使用している場合は、おそらく次のようにします。

Sudo apt install php php7.2-fpm
21
Keith

この答え で使用されるアプローチの代替としてAPTどの依存関係を使用するかdo必要な場合は、不要なものを指定することもできます。たとえば、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は代わりにリストから2番目の依存関係を選択します(_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.
_

このアプローチは、特定の依存関係は必要ないが、どの代替策が使用されるかについて無関心であることがわかっている場合に役立ちます。一方、特定のものが必要であることがわかっている場合は、他の回答でメソッドを使用します。

13
Jon Bentley