Drupal7で動画サイト

1.背景

D6 to D7へのアップグレードに関しては、Acquia Dev Desktopを利用してローカルサイトでテスト環境を構築してOKだったので本番で作業をしていましたが、さくらのレンタルサーバとの相性のためか以下の点で不都合が発生しました。

Druapl7での不都合点

不都合は動画ファイルをアップロードする際に発生しますのでMediaモジュールおよびその要件になっているモジュール等が関係します。

(1)ファイルアップロード時に500 Internal Server Errorが発生する場合がある

AJAX通信の影響のためか、エラーが発生しても処理中で通常の何倍もの時間を要する。
また、uploadprogressの進捗バーが表示されない。

(2)アップロードしたファイルのパーミッションが途中で664に変更される

最初は644でアップロードされているようだが、(1)が発生した直後には664に変更されている。

(3)アップロード中に(1)が発生した場合、ファイルが複数アップロードされてしまう

ファイル名、ファイル名_0、ファイル名_1と作成される。

(4)uploadprogressバーが表示されずアニメーションになる

フィールドの設定で進捗バーを選択していてもアニメーションになってしまいます。
動画ファイルのようなサイズの大きなファイルをアップロードするときに不便です。

(5)MediaBrowserにあるアップロードしたファイルが削除できない

処理中にエラーが発生したため削除できないケースと使用中であるため削除できないケースの2通り。

(6)CSVファイルやXMLファイルなどインポートに使ったファイルが一覧に表示される

MediaBrowserの仕様の可能性もあるが(5)のため一覧から削除できない。

※5番と6番はDrupalの権限以外にもファイルパーミッションも関係するのでローカルのWindows環境でテストを行ってもあまり意味がないと判断し、サーバ上で調査する予定でした。

2.目的と方針

動画ファイルサイズはトータルで10GB以上あるため、この不都合が完治しなければどうしようもありません。
このたび、原因究明を目的にテスト用サイトを構築することにしました。

テスト用サイトは、さくらインターネットのサブドメイン(無料)を使用、いわゆるマルチドメイン構成でサイトの構築を行います。
このサイトは原因究明が目的であるので、動画に関する機能だけに制限できるよう動画専用サイトとして構築します。

また、9月末にデータベースの強化として50個までデータベースが作成できるようになりましたので、テストサイト専用のデータベースを使用します。
これに関連しておそらくデータベースのストレージエンジンがMyISAMからInnoDBになってしまう可能性もありますので、InnoDBでのバックアップ方法などを確立することも視野にいれています。

以前、Drupalのマルチサイト構成のインストール方法を紹介したことがありますが、今回はあくまでシングルサイトでの構築です。
せっかくなので、Drupal7の新規導入のついでにdrushを使った方法を試してみようと思っています。

Drupal7はEntityが追加されています。
メディアに関するモジュールはこのEntityを利用するよう開発されているようなので、余裕があればEntityについても調査したいと思います。

さくらインターネットのレンタルサーバ(プレミアム)での構築となりますので、他の契約や他社ホスティングサービスの場合とは異なる点は多いと思いますが、何かの参考になればと思い公開します。