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

質問編集履歴

1

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

2018/06/12 00:38

投稿

oragen
oragen

スコア7

title CHANGED
@@ -1,1 +1,1 @@
1
- laravel、Docker(win)でffmpegが動きません
1
+ Docker、WEBサーバーからffmpegのパス見えません
body CHANGED
@@ -1,69 +1,38 @@
1
1
  ### 前提・実現したいこと
2
- laradockで、wavファイルアップロードて、ffmpegでmp3に変換して保存しようとしてす。
2
+ laravel PHPからffmpeg実行す。
3
- (docker Version 18.03.1-ce-win65、Ubuntu 16.04.3、laravel5.6、nginx/1.13.12、php7.2.4)
4
3
 
4
+ Windows10、Dockerで、Ubuntu 16.04.3、nginx/1.13.12、php7.2.4です。
5
+
5
- workspaceにffmpegをインストールし、さらにLaravel上で使うためにPHP-FFMpegのラッパーライブラリであるLaravel-FFMpegも追加しました
6
+ Dockerのworkspaceにffmpegをインストールし、Laravel-FFMpegを使って、phpからffmpegを実行しま
6
7
  https://github.com/pascalbaljetmedia/laravel-ffmpeg
7
8
 
9
+ ### 該当のソースコード
8
- 上記ライブラリの設定ファイルに'ffmpeg.binaries'と'ffprobe.binaries'があり、ffmpegとffprobeパス指定する必要があるので、whichで得られたパスを指定しした
10
+ powershellでdocker-compose exec workspace bashしwhich ffmpegを実行するパスが見え
9
11
  ```
10
12
  root@2a8f4fad3301:/var/www# which ffmpeg
11
13
  /usr/local/bin/ffmpeg
12
- root@2a8f4fad3301:/var/www# which ffprobe
13
- /usr/local/bin/ffprobe
14
14
 
15
15
  ```
16
-
16
+ ### 発生している問題・エラーメッセージ
17
+ しかし、PHPで上でwhich ffmpegを実行してもパスが得られません。
17
18
  ```
18
- 'ffmpeg.binaries' => '/usr/local/bin/ffmpeg',
19
+ var_dump(exec('which ffmpeg'));
19
- 'ffprobe.binaries' => '/usr/local/bin/ffprobe',
20
- ```
21
20
 
22
-
23
- ### 該当のソースコード
24
- ファイルをオープンするだけの下記のプログラムを実行します。
21
+ string(0) ""
25
22
  ```
26
- FFMpeg::fromDisk('local')->open(test.wav);
27
- ```
28
23
 
24
+ PHP上からはffmpegが見えていないということかと思うのですが、対応方法が分かりません。
29
- ### 発生してる問題・エラーメッセージ
25
+ アドバイスただけますと幸いです。
30
- 下記のエラーが出ます。
26
+ よろしくお願いします。
31
- ```ここに言語名を入力
32
- "Unable to load FFProbe"
33
- ```
34
- ```ここに言語名を入力
35
- "Executable not found, proposed : /usr/local/bin/ffprobe"
36
- ```
37
27
 
38
28
  ### 試したこと
39
-
40
- ネットで調べて、
41
- 1./usr/local/bin/ffprobe、'/usr/local/bin/ffmpeg'をchmod777する
42
- 2.'ffmpeg.binaries'と'ffprobe.binaries'のパスwhichで得れるパスにす
29
+ phpか/usr/local/binにパスが通っていか確認。
43
- を行いましたが状況は変わりません。
44
-
45
- ただ、 冒頭の通りworkspace上で
46
- ```ここに言語名を入力
47
- which ffprobe
48
30
  ```
49
- を実行するとパスが得られますが、
50
-
51
- PHPで下記を実行すると、パスが返ってきませんでした、
52
- ```ここに言語名を入力
53
- var_dump(exec('which ffprobe'));
54
- var_dump(is_file(exec('which ffprobe')));
55
- var_dump(is_executable(exec('which ffprobe')));
56
31
  var_dump(getenv('PATH'));
57
32
 
58
- string(0) ""
59
- bool(false)
60
- bool(false)
61
33
  string(60) "/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
62
34
  ```
63
35
 
64
- PHP上からは見えていないということかと思うのですが、対応方法が分かりません。
65
- アドバイスいただけますと幸いです。
66
- よろしくお願いします。
67
36
 
68
37
  ### 補足情報(FW/ツールのバージョンなど)
69
38