質問編集履歴

1

問題を絞って表現し直しました。

2018/06/12 00:38

投稿

oragen
oragen

スコア7

test CHANGED
@@ -1 +1 @@
1
- laravel、Docker(win)でffmpegが動きません
1
+ Docker、WEBサーバーからffmpegのパス見えません
test CHANGED
@@ -1,18 +1,22 @@
1
1
  ### 前提・実現したいこと
2
2
 
3
- laradockで、wavファイルをアップロードして、ffmpegでmp3に変換て保存しようとしてす。
3
+ laravel PHPからffmpegを実行す。
4
-
5
- (docker Version 18.03.1-ce-win65、Ubuntu 16.04.3、laravel5.6、nginx/1.13.12、php7.2.4)
6
4
 
7
5
 
8
6
 
7
+ Windows10、Dockerで、Ubuntu 16.04.3、nginx/1.13.12、php7.2.4です。
8
+
9
+
10
+
9
- workspaceにffmpegをインストールし、さらにLaravel上で使うためにPHP-FFMpegのラッパーライブラリであるLaravel-FFMpegも追加しました
11
+ Dockerのworkspaceにffmpegをインストールし、Laravel-FFMpegを使って、phpからffmpegを実行しま
10
12
 
11
13
  https://github.com/pascalbaljetmedia/laravel-ffmpeg
12
14
 
13
15
 
14
16
 
17
+ ### 該当のソースコード
18
+
15
- 上記ライブラリの設定ファイルに'ffmpeg.binaries'と'ffprobe.binaries'があり、ffmpegとffprobeパス指定する必要があるので、whichで得られたパスを指定しした
19
+ powershellでdocker-compose exec workspace bashしwhich ffmpegを実行するパスが見え
16
20
 
17
21
  ```
18
22
 
@@ -20,115 +24,49 @@
20
24
 
21
25
  /usr/local/bin/ffmpeg
22
26
 
23
- root@2a8f4fad3301:/var/www# which ffprobe
24
-
25
- /usr/local/bin/ffprobe
26
27
 
27
28
 
29
+ ```
30
+
31
+ ### 発生している問題・エラーメッセージ
32
+
33
+ しかし、PHPで上でwhich ffmpegを実行してもパスが得られません。
34
+
35
+ ```
36
+
37
+ var_dump(exec('which ffmpeg'));
38
+
39
+
40
+
41
+ string(0) ""
28
42
 
29
43
  ```
30
44
 
31
45
 
32
46
 
33
- ```
47
+ PHP上からはffmpegが見えていないということかと思うのですが、対応方法が分かりません。
34
48
 
35
- 'ffmpeg.binaries' => '/usr/local/bin/ffmpeg',
49
+ アドバイスいただけますと幸いです。
36
50
 
37
- 'ffprobe.binaries' => '/usr/local/bin/ffprobe',
38
-
39
- ```
40
-
41
-
42
-
43
-
44
-
45
- ### 該当のソースコード
46
-
47
- ファイルをオープンするだけの下記のプログラムを実行します。
48
-
49
- ```
50
-
51
- FFMpeg::fromDisk('local')->open(test.wav);
52
-
53
- ```
54
-
55
-
56
-
57
- ### 発生している問題・エラーメッセージ
58
-
59
- 下記のエラーが出ます。
51
+ よろしくお願いします。
60
-
61
- ```ここに言語名を入力
62
-
63
- "Unable to load FFProbe"
64
-
65
- ```
66
-
67
- ```ここに言語名を入力
68
-
69
- "Executable not found, proposed : /usr/local/bin/ffprobe"
70
-
71
- ```
72
52
 
73
53
 
74
54
 
75
55
  ### 試したこと
76
56
 
77
-
78
-
79
- ネットで調べて、
80
-
81
- 1./usr/local/bin/ffprobe、'/usr/local/bin/ffmpeg'をchmod777する
82
-
83
- 2.'ffmpeg.binaries'と'ffprobe.binaries'のパスwhichで得られパスにする
57
+ phpから/usr/local/binパスが通っていか確認。
84
-
85
- を行いましたが状況は変わりません。
86
-
87
-
88
-
89
- ただ、 冒頭の通りworkspace上で
90
-
91
- ```ここに言語名を入力
92
-
93
- which ffprobe
94
58
 
95
59
  ```
96
-
97
- を実行するとパスが得られますが、
98
-
99
-
100
-
101
- PHPで下記を実行すると、パスが返ってきませんでした、
102
-
103
- ```ここに言語名を入力
104
-
105
- var_dump(exec('which ffprobe'));
106
-
107
- var_dump(is_file(exec('which ffprobe')));
108
-
109
- var_dump(is_executable(exec('which ffprobe')));
110
60
 
111
61
  var_dump(getenv('PATH'));
112
62
 
113
63
 
114
-
115
- string(0) ""
116
-
117
- bool(false)
118
-
119
- bool(false)
120
64
 
121
65
  string(60) "/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
122
66
 
123
67
  ```
124
68
 
125
69
 
126
-
127
- PHP上からは見えていないということかと思うのですが、対応方法が分かりません。
128
-
129
- アドバイスいただけますと幸いです。
130
-
131
- よろしくお願いします。
132
70
 
133
71
 
134
72