
こんにちは、あきぞらです。
Docker
にPHP
とComposer
をいれて検証をしようと思っていたところ、
composer require
を実行したときに、エラーが返ってきてしまいました。
これについて対応方法を書いていきたいと思います。
環境
実行したときの環境はこちらです。
- Windows10 HOME
- Docker Quickstar Terminal
- Ubuntu 20.04
- PHP、Composerは導入済
「composer require」した時のエラー
出力されたエラーはこちらです。
phpspreadsheet
をインストールしようとしていました。
$ composer require phpoffice/phpspreadsheet Using version ^1.12 for phpoffice/phpspreadsheet ./composer.json has been updated Loading composer repositories with package information Updating dependencies (including require-dev) Your requirements could not be resolved to an installable set of packages. Problem 1 - Installation request for phpoffice/phpspreadsheet ^1.12 -> satisfiable by phpoffice/phpspreadsheet[1.12.0]. - phpoffice/phpspreadsheet 1.12.0 requires ext-dom * -> the requested PHP extension dom is missing from your system. To enable extensions, verify that they are enabled in your .ini files: - /etc/php/7.4/cli/php.ini
...(省略)...
エラー内容を見ると、「Problem1」のところに、requires ext-dom
とありますね。
「PHP extension dom」というのが必要そうです。
必要な拡張モジュールをインストール
PHPマニュアルのこちらのページを参照すると、
こちらを実行してインストールできそうです。
今回はUbuntu
なのでこちらを実行します。
$ sudo apt-get install php7.4-xml
........ Problem 1 - Installation request for phpoffice/phpspreadsheet ^1.12 -> satisfiable by phpoffice/phpspreadsheet[1.12.0]. - phpoffice/phpspreadsheet 1.12.0 requires ext-gd * -> the requested PHP extension gd is missing from your system. ........
再度composer require
を実行してみますが、
再度似たようなエラーがでます。
今度は、「requires ext-gd」とあります。
こちらもインストールしていきます。
$ sudo apt-get install php7.4-gd
エラー文を確認しながら必要な拡張モジュールをインストール
必要な拡張モジュールが全てインストールできるまで繰り返します。
これも実行して、やっとcomposer require
が通りました。
今回インストールが必要だったものはこちらです。
- php7.4-xml
- php7.4-gd
- php7.4-mbstring
以下を実行した形になります。
$ sudo apt-get install php7.4-gd
$ sudo apt-get install php7.4-xml
$ sudo apt-get install php7.4-mgstring
結論とまとめ
エラーを読みながら必要な拡張モジュールを入れていきましょう。
必要なものは一気に見せてくれれば良いんですけどね…。
では、また!