pecl install
も docker-php-ext-install
も拡張モジュールをインストールするコマンド。
インストールできる拡張モジュールの種類が違う。
pecl install
PECLとは
PHP Extension Community Libraryの略。
PHP言語を拡張するためのモジュールレポジトリ。C言語で記述されており、PEARよりも高速に動作する。ネットワーク経由でライブラリをインストールすることができる。
C言語で記述されているPHP拡張モジュールがPECL
Dockerfile に記述する時は下記のように記述
RUN pecl install xdebug && \ #インストール
docker-php-ext-enable xdebug #有効化
pecl install
した拡張モジュールは有効化する必要があります。
有効化で一般的な方法は2つあります
① php.ini に設定
extension = モジュール名 の形式で記述
モジュールを読み込むには、 php.ini ファイルに extension ディレクティブを追加
https://www.php.net/manual/ja/install.pecl.intro.php
② docker-php-ext-enable
を使用する
docker-php-ext-enable モジュール名 の形式で記述
docker-php-ext-install
こちらは?
このコマンドは、PHPの標準の拡張モジュールをインストール & 有効化する
RUN docker-php-ext-install intl pdo_mysql zip bcmath #インストールと有効化
こちらはdocker-php-ext-install
コマンドで、インストールと有効化をしてくれるので有効化のコマンドは不要です。
実際に拡張モジュールはどう選んだらいいのか?
Dockerでlaravelの環境を構築する時などには、要件としてPHPの拡張モジュールが指定されていたりするので、
最低限そのような拡張モジュールはインストールするようにDockerfileを書く必要がありそうです。
Laravelフレームワークにはいくつかのシステム要件があります。Webサーバへ確実に以下のPHP最低バージョンと拡張機能を用意してください。
BCMath PHP 拡張
Ctype PHP 拡張
Fileinfo PHP 拡張
JSON PHP 拡張
Mbstring PHP 拡張
OpenSSL PHP 拡張
PDO PHP 拡張
Tokenizer PHP 拡張
XML PHP 拡張
あとは実装、使用したい機能などが、既に拡張モジュールとして提供されているかどうか確認して必要に応じて選択していけば良さそうです。
PECL拡張は下記から検索できます
参考にさせていただいた記事