【CakePHP4】composer install時にエラーが発生「the requested PHP extension intl is missing from your system」解決方法
2021年08月02日2023年10月10日
新しい開発環境でCakePHP4をinstallしようとしたら、「composer install」でエラーが発生しました。
今回のエラーは「ext-intl」のエラーですが、解決方法をまとめました。
エラーの内容
「composer install」を実行したところ下記のエラーが発生しました。
[root@localhost cakephp]# /usr/local/bin/composer install
Do not run Composer as root/super user! See https://getcomposer.org/root for details
Loading composer repositories with package information
Installing dependencies (including require-dev) from lock file
Your requirements could not be resolved to an installable set of packages.
Problem 1
- Installation request for cakephp/cakephp 4.2.7 -> satisfiable by cakephp/cakephp[4.2.7].
- cakephp/cakephp 4.2.7 requires ext-intl * -> the requested PHP extension intl is missing from your system.
Problem 2
- cakephp/cakephp 4.2.7 requires ext-intl * -> the requested PHP extension intl is missing from your system.
- cakephp/debug_kit 4.4.3 requires cakephp/cakephp ^4.2.0 -> satisfiable by cakephp/cakephp[4.2.7].
- Installation request for cakephp/debug_kit 4.4.3 -> satisfiable by cakephp/debug_kit[4.4.3].
To enable extensions, verify that they are enabled in your .ini files:
- /etc/php.ini
- /etc/php.d/10-opcache.ini
- /etc/php.d/20-bz2.ini
~省略~
You can also run `php --ini` inside terminal to see which files are used by PHP in CLI mode.
どうやら、下記の文言を翻訳したらPHPの拡張ライブラリが足りてなかったようです。
the requested PHP extension intl is missing from your system
翻訳:要求されたPHP拡張機能intlがシステムにありません
PHPのライブラリであるintlがインストールされている確認してみます。
[root@localhost cakephp]# php -m | grep intl
[root@localhost cakephp]#
たしかにインストールされていなかった。
解決方法「intl」のインストール
このエラーの解決方法は、足りていない「intl」ライブラリをインストールすると解決します。
まず、自分の環境のPHPのバージョンを確認します。
[root@localhost cakephp]# php -v
PHP 7.4.21 (cli) (built: Jun 29 2021 15:17:15) ( NTS )
Copyright (c) The PHP Group
Zend Engine v3.4.0, Copyright (c) Zend Technologies
with Zend OPcache v7.4.21, Copyright (c), by Zend Technologies
私の環境は「PHP7.4」なので、remiのバージョンも同じバージョンを指定してPHPライブラリをインストールします。
[root@localhost cakephp]# yum --enablerepo=remi-php74 install php-intl
~省略~
Complete!
remiのバージョンを指定せずに実行すると、違うバージョンを参照してかエラーが出るので必ず指定しましょう。
Resolving Dependencies
--> Running transaction check
---> Package php-intl.x86_64 0:5.4.45-18.el7.remi will be installed
--> Processing Dependency: php-common(x86-64) = 5.4.45-18.el7.remi for package: php-intl-5.4.45-18.el7.remi.x86_64
--> Finished Dependency Resolution
Error: Package: php-intl-5.4.45-18.el7.remi.x86_64 (remi)
インストールができたか確認するには、最初に実行したコマンドをもう一度実行します。
[root@localhost cakephp]# php -m | grep intl
intl
「intl」と表示されたら無事インストールができています。
エラーの原因が解決したところで、composer installを実行してみます。
[root@localhost cakephp]# /usr/local/bin/composer install
Do not run Composer as root/super user! See https://getcomposer.org/root for details
Loading composer repositories with package information
Installing dependencies (including require-dev) from lock file
Package operations: 94 installs, 0 updates, 0 removals
- Installing cakephp/plugin-installer (1.3.1): Downloading (100%)
- Installing squizlabs/php_codesniffer (3.5.8): Downloading (100%)
- Installing dealerdirect/phpcodesniffer-composer-installer (v0.7.1): Loading from cache
- Installing psr/http-message (1.0.1): Loading from cache
~省略~
Created `/vagrant_data/genba/cakephp/tmp/sessions` directory
Created `/vagrant_data/genba/cakephp/tmp/tests` directory
Set Folder Permissions ? (Default to Y) [Y,n]? yes
This is not a valid answer. Please choose Y or n.
Set Folder Permissions ? (Default to Y) [Y,n]? Y
Updated Security.salt value in config/app_local.php
[root@localhost cakephp]#
問題なくインストールできました。
さいごに
「よしこれから開発するぞー」という時にcomposer installでエラーが発生すると一気にやる気なくしますね。
コメント
コメントを残す