debian + apache 2.2 + php5 な環境に ownCloud を突っ込んでいるが、apt-get で標準導入しただけの状態だと、video player のシークバーが機能しない事が判明。対応手順を見つけたのでメモメモ。
- 原因
- video player のシークを有効にするためには、Webサーバ側がステータスコード206を返答できる状態になっている必要があるらしい。
- 今回の環境では、php5 がステータスコード206に対応していなかったっぽい。
- 対応方法
- モジュールをインストールする。
- pecl導入準備
- apt-get install php-pear
- apt-get install php5-dev
- pecl_http導入準備
- apt-get install re2c
- apt-get install libcurl3-dev
- apt-get install make
- pecl_http導入
- php.ini に以下を追加する。
- vi /etc/php5/apache2/php.ini
- extension=http.so
- owncloud のソースを改造する。
- 参考URL1.のページとおんなじ対応をします。
- 以下のファイルを開く。
- vi owncloud_install_dir/lib/private/files.php
- ファイルを変更する。
○変更前
if ($xsendfile) {
/*省略*/
} else {
\OC\Files\Filesystem::readfile($filename);
}
○変更後
if ($xsendfile) {
/*省略*/
} else {
$filename = \OC\Files\Filesystem::getLocalFile($filename);
http_send_file($filename);
}