技術的ひとりごと(備忘録)

いろいろな備忘録的な何か

OwnCloud の video palyer で シークバー が動作しない場合の対処法

debian + apache 2.2 + php5 な環境に ownCloud を突っ込んでいるが、apt-get で標準導入しただけの状態だと、video player のシークバーが機能しない事が判明。対応手順を見つけたのでメモメモ。

  1. 原因
    • video player のシークを有効にするためには、Webサーバ側がステータスコード206を返答できる状態になっている必要があるらしい。
    • 今回の環境では、php5 がステータスコード206に対応していなかったっぽい。
  2. 対応方法
    1. モジュールをインストールする。
      1. pecl導入準備
        • apt-get install php-pear
        • apt-get install php5-dev
      2. pecl_http導入準備
        • apt-get install re2c
        • apt-get install libcurl3-dev
        • apt-get install make
      3. pecl_http導入
    2. php.ini に以下を追加する。
      • vi /etc/php5/apache2/php.ini
      • extension=http.so
    3. owncloud のソースを改造する。
      • 参考URL1.のページとおんなじ対応をします。
        1. 以下のファイルを開く。
          • vi owncloud_install_dir/lib/private/files.php
        2. ファイルを変更する。

○変更前
if ($xsendfile) {
/*省略*/
} else {
\OC\Files\Filesystem::readfile($filename);
}

○変更後
if ($xsendfile) {
/*省略*/
} else {
$filename = \OC\Files\Filesystem::getLocalFile($filename);
http_send_file($filename);
}