teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

2

環境構築後の反映手順を追加しました。

2021/04/27 20:44

投稿

zembutsu
zembutsu

スコア1584

answer CHANGED
@@ -1,3 +1,5 @@
1
+ ## Laravel 環境構築時に GMP を有効にしたい場合
2
+
1
3
  Laravel環境で GMP を使う場合は、あらかじめ Laravel の `.env` で GMP が有効を有効にする必要があります。
2
4
 
3
5
  `docker-compose.yml` のあるディレクトリで、初期設定で `.env` ファイルを作成すると思います。
@@ -10,4 +12,17 @@
10
12
  WORKSPACE_INSTALL_GMP=true
11
13
  PHP_FPM_INSTALL_GMP=true
12
14
  PHP_WORKER_INSTALL_GMP=true
13
- ```
15
+ ```
16
+
17
+ ## 既に設定済みの環境で、GMP を有効にしたい場合
18
+
19
+ 設定を反映するには、`.env` ファイルは Laravel のビルド時に参照されるため、 Docker イメージも作成し直す必要があります。
20
+
21
+ (どれを動作するかの依存関係も考慮する必要があるかもしれませんが)ビルド後に Docker Compose でリスータトが必要です。
22
+
23
+ たとえば、 `docker-compose up -d nginx workspace` のような構成でのを想定しますと
24
+ `.env` 書き換え後に `docker-compose build php-fpm`を行います。
25
+
26
+ それから「docker-compose down」を実行して、関連するものを停止します。
27
+
28
+ 再度`docker-compose up -d nginx workspace` で起動し直すと、phpinfoの情報も新しいものへと切り替わります。

1

LaravelのPHP環境を前提として、回答内容を修正しました。

2021/04/27 20:43

投稿

zembutsu
zembutsu

スコア1584

answer CHANGED
@@ -1,7 +1,13 @@
1
- phpinfo(); の情報見る限り、gmpは有効になっていように見えます。
1
+ Laravel環境で GMP 使う場合、あらかじめ Laravel の `.env` で GMP が有効を有効必要があります。
2
2
 
3
- エラー内容「Call to undefined function App\Http\Controllers\gmp_lcm()」については、gmp とは別に、Laravel 側関数のエラーの可能性が他の記述見直されをおすすめします。
3
+ `docker-compose.yml` のあるディレクトリで初期設定で `.env` ファイル作成すると思います。
4
4
 
5
- 私は Laravel は分からないのですが検索しまと、このよう類似の質問・回答がありました
5
+ もし `.env.example` をコピーして `.env` に書き換えれた場合どは GMP 関る設定が無効(false)にっている可能性がありま
6
6
 
7
- - [PHP - (laravel5.5) 単純関数設定→呼び出し→Call to undefined functionエラー|teratail](https://teratail.com/questions/123107)
7
+ 今回のケースであれば、 `.env` ファイルのかで、以下 GMP に関する項目を true に書き換えて、そ後 `docker-compose up -d workspace nginx` などを実行されているかどうか、確認されることをおすすめします。
8
+
9
+ ```.env
10
+ WORKSPACE_INSTALL_GMP=true
11
+ PHP_FPM_INSTALL_GMP=true
12
+ PHP_WORKER_INSTALL_GMP=true
13
+ ```