CentOS 7でLaravel Novaを使用したcomposer installでエラー

環境情報

  • PHP7.2
  • CentOS7.4
  • Laravel5.7
  • Laravel Nova 1.2

エラー内容

composer installを実行すると下記のエラーがでます。
エラー内容をよく読めば解決できる内容でしたが、MAMP環境では一度も発生しなかったのと初めて遭遇したエラーだったので少し戸惑いました。

$ composer install
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 moontoast/math 1.1.2 -> satisfiable by moontoast/math[1.1.2].
    - moontoast/math 1.1.2 requires ext-bcmath * -> the requested PHP extension bcmath is missing from your system.
  Problem 2
    - moontoast/math 1.1.2 requires ext-bcmath * -> the requested PHP extension bcmath is missing from your system.
    - laravel/nova dev-master requires moontoast/math ^1.1 -> satisfiable by moontoast/math[1.1.2].
    - Installation request for laravel/nova dev-master -> satisfiable by laravel/nova[dev-master].

  To enable extensions, verify that they are enabled in your .ini files:
    - /etc/php.ini
    - /etc/php.d/20-bz2.ini
    - /etc/php.d/20-calendar.ini
    - /etc/php.d/20-ctype.ini
    - /etc/php.d/20-curl.ini
    - /etc/php.d/20-dom.ini
    - /etc/php.d/20-exif.ini
    - /etc/php.d/20-fileinfo.ini
    - /etc/php.d/20-ftp.ini
    - /etc/php.d/20-gd.ini
    - /etc/php.d/20-gettext.ini
    - /etc/php.d/20-iconv.ini
    - /etc/php.d/20-json.ini
    - /etc/php.d/20-mbstring.ini
    - /etc/php.d/20-mysqlnd.ini
    - /etc/php.d/20-pdo.ini
    - /etc/php.d/20-phar.ini
    - /etc/php.d/20-posix.ini
    - /etc/php.d/20-shmop.ini
    - /etc/php.d/20-simplexml.ini
    - /etc/php.d/20-soap.ini
    - /etc/php.d/20-sockets.ini
    - /etc/php.d/20-sqlite3.ini
    - /etc/php.d/20-sysvmsg.ini
    - /etc/php.d/20-sysvsem.ini
    - /etc/php.d/20-sysvshm.ini
    - /etc/php.d/20-tokenizer.ini
    - /etc/php.d/20-xml.ini
    - /etc/php.d/20-xmlwriter.ini
    - /etc/php.d/20-xsl.ini
    - /etc/php.d/30-mcrypt.ini
    - /etc/php.d/30-mysqli.ini
    - /etc/php.d/30-pdo_mysql.ini
    - /etc/php.d/30-pdo_sqlite.ini
    - /etc/php.d/30-wddx.ini
    - /etc/php.d/30-xmlreader.ini
    - /etc/php.d/30-xmlrpc.ini
    - /etc/php.d/40-apcu.ini
    - /etc/php.d/40-igbinary.ini
    - /etc/php.d/40-zip.ini
    - /etc/php.d/50-apc.ini
    - /etc/php.d/50-redis.ini
  You can also run `php --ini` inside terminal to see which files are used by PHP in CLI mode.

対処方法

bcmathという拡張モジュールがないとのことなのでremiリポジトリを有効にし、yumでインストールすれば解決します。

yum install --enablerepo=remi,remi-php72 php-bcmath

bcmathについて

初めて聞きましたが、任意制度数学関数というものらしいです。

任意精度演算に関して、 文字列として表された 2147483647-1 (0x7FFFFFFF-1) までの範囲の、 任意の大きさおよび精度の数字をサポートするバイナリ計算機を提供します。

http://php.net/manual/ja/book.bc.php#book.bc

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

ABOUTこの記事をかいた人

山中 雅彦

大分でWebシステム受託開発会社のバックエンドエンジニアとして働いてます。 Laravel5でのシステム開発を中心に仕事してます。 高校卒業後に鉄鋼会社で電気整備の仕事をする傍ら、HTML、CSS、JS、PHP、MySQL、サーバ関連技術を独学で勉強。 2017年9月にWebシステム開発会社に入社し、システム開発をしています。 Web技術全般が好きなPHPerです。