回答編集履歴

2

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

2021/04/27 20:44

投稿

zembutsu
zembutsu

スコア1584

test CHANGED
@@ -1,3 +1,7 @@
1
+ ## Laravel 環境構築時に GMP を有効にしたい場合
2
+
3
+
4
+
1
5
  Laravel環境で GMP を使う場合は、あらかじめ Laravel の `.env` で GMP が有効を有効にする必要があります。
2
6
 
3
7
 
@@ -23,3 +27,29 @@
23
27
  PHP_WORKER_INSTALL_GMP=true
24
28
 
25
29
  ```
30
+
31
+
32
+
33
+ ## 既に設定済みの環境で、GMP を有効にしたい場合
34
+
35
+
36
+
37
+ 設定を反映するには、`.env` ファイルは Laravel のビルド時に参照されるため、 Docker イメージも作成し直す必要があります。
38
+
39
+
40
+
41
+ (どれを動作するかの依存関係も考慮する必要があるかもしれませんが)ビルド後に Docker Compose でリスータトが必要です。
42
+
43
+
44
+
45
+ たとえば、 `docker-compose up -d nginx workspace` のような構成でのを想定しますと
46
+
47
+ `.env` 書き換え後に `docker-compose build php-fpm`を行います。
48
+
49
+
50
+
51
+ それから「docker-compose down」を実行して、関連するものを停止します。
52
+
53
+
54
+
55
+ 再度`docker-compose up -d nginx workspace` で起動し直すと、phpinfoの情報も新しいものへと切り替わります。

1

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

2021/04/27 20:43

投稿

zembutsu
zembutsu

スコア1584

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