[PHPmotion] 動画アップロードのトラブルシュート

500 Internal Server Error

テストユーザから動画をアップロードしたらいきなりエラー。

エラーログを確認。/var/log/httpd/error_log

Perlのファイルに不適切な文字コードでも入っているのだろうか。

ネットで検索した情報から、以下の2つのファイルの先頭に — を追加してみる。

/var/www/httpd/cgi-bin/uu_ini_status.pl
/var/www/httpd/cgi-bin/uu_upload.pl

すると500 Internet Server Errorは解決。動画のアップロードは正常終了するようになった。

アップした動画が表示されない

アップロード自体は成功している模様。

エンコードエラーが起きてるっぽい。

何が悪いのかわからないので、1つずつ可能性を潰していく。

mencoderは存在した。

mencodeはコマンドラインから実行できた。

ログに記録されたコマンドを手打ちしてみたらエラーになった。アップした動画が壊れているのか?

Wikiにトラブルシュートがあったのでなぞる。

PHPmotion Wiki: Debugging FFPmpeg – Mencoder
http://wiki.phpmotion.com/ServerVPSDebugging

(1)~(6)の手順に従って手作業で処理したら静止画キャプチャも動画エンコードも出来たので、関連するモジュールのインストールには問題なさそう。

書かれているチェックポイントを順に確認。まずは最初のチェックポイント。

You server does not support what is called command line php. This gives phpmotion the ability to run these same command when a video finishes uploading

インストールされている。問題ない。

次のチェックポイント。

Your server has the **exec** command disabled in your php settings. PHPmotion needs access to this command in order to be able to execute command via ssh shell. To check if this is the case, upload a [[http://wiki.phpmotion.com/HelpPHPinfoFile phpinfo]]file to your server and check the **disable_functions** section to see if **exec **is listed there.

phpinfoを表示してみる。問題ない。

次のチェックポイント。

You have some security features installed on your server that are preventing PHPmotion access to ffmpeg and mencoder.

This could be either:
– You have “open_basedir” or “safe_mode” restriction set in your php. Check using a phpinfoe
– You have either “Selinux” or “Suhosin” installed on your server and its restricting PHPmotion from working correctly

これらもphpinfoを表示して確認。問題ない。

悪いところはなさそう。さらに読み進む。

HINT

If you managed to convert videos is ssh but you still dont see them when you upload. Try this

Upload a video as normal on your website
Once complete, open the url http://www.yourdomain.com/convertor.php
Check to see if the video is now showing

if the video show after doing this, you should check to see if curl is installed on your server. If its not installed, you should consider installing it.

良くわからないけど、curlはインストールされていないのでインストールしておく。

結局・・・

さっきの手作業で気になったのは、動画ファイルの拡張子がmpgだったこと。僕がアップした動画ファイルの拡張子はmp4。試しに拡張子をmp4からmpgに変えてアップしたらサーバー上で無事にエンコードされてサイトで動画が観れるようになった。アップする動画ファイルに相性がありそうな感じ。