前提・実現したいこと
- Mac上のdocker環境にてlaravelでアプリを作成中
- 特定2つのの数値の最小公倍数を計算できるようにしたい
gmp_lcmという関数を使って実現しようとしましたが、エラーが出てしまいます。
発生している問題・エラーメッセージ
Call to undefined function App\Http\Controllers\gmp_lcm()
該当のソースコード
↓コントローラー
php
1$hoge = gmp_lcm("12", "21");
書き方が間違っているというよりは、関数自体が使えないように見受けられます。
php公式のページ
によると、
これらの関数を利用可能とするには、オプション --with-gmp を使用することにより GMP サポートを有効にして PHP をコンパイルする必要が あります。
との記載がありますが、具体的に何をすればいいのかわかりません。
何かしらのコマンドに「オプション --with-gmp」を加えて叩けば、この関数を使える状態にできるということなのでしょうか?
試したこと
####①phpinfoで確認
phpinfo();
でgmpが有効になっているか確かめました。
有効になっているように見えます。
####②php.iniのコメントアウトを外してnginxを再起動
\laradock\php-fpm\php7.3.ini
php
1;extension=php_gmp.dll 2↓ 3extension=php_gmp.dll
docker-compose restart nginx Restarting laradock_nginx_1 ... done
状況変わらず
####③コンテナ内でphp7.3-gmpインストールコマンド実行
apt-get install php7.3-gmp
念のためnginx再起動するも変わらず
####④コマンドなら関数が使えるか
php artisan tinker Psy Shell v0.9.12 (PHP 7.3.11 — cli) by Justin Hileman >>> gmp_lcm(2,3) PHP Fatal error: Call to undefined function gmp_lcm() in Psy Shell code on line 1
NGです。
###⑤php-fpmの再起動
TakashiAbeさんの回答に基づき、php-fpmも再起動してみました。
MacBook-Pro laradock % docker-compose restart nginx php-fpm Restarting laradock_nginx_1 ... done Restarting laradock_php-fpm_1 ... done
しかし、同じようにCall to undefined function App\Http\Controllers\gmp_lcm()
のエラーが出て関数が使えませんでした。
phpinfo();
で表示されるGMPのステータスも質問時のスクリーンショットと同じ状態です。
php-fpmの再起動が効いたのか定かではないのですが、1点変化がありました。
php artisan tinkerでコマンドライン上でgmp関数を使うと、動作するようになりました。
Psy Shell v0.9.12 (PHP 7.3.27-9+ubuntu18.04.1+deb.sury.org+1 ― cli) by Justin Hileman >>> gmp_lcm(2,3) => GMP {#3291 value: 6, }
何か方法があるのでしょうか?
それとも私の環境ではできないことをしようとしているのでしょうか?
知恵を貸していただきたいです。
補足情報(FW/ツールのバージョンなど)
docker20.10.0
ubuntu18.04.1
php7.3
laravel6
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/04/23 02:11
2021/04/23 02:24