FreeBSD上にOwnCloud 8.2を入れてみた
実家の録画PCからのデータ中継の手間が結構大変なので前々から考えていたOwnCloud導入をさくっとやってみることに。何が大変だったかというと
- WAN越しのCIFSのためそもそもエクスプローラの動きが遅い (エンプラならWAN高速化装置とか入れるよね)
- しかも長距離転送のため時々セッションが切れてコピーが失敗する。失敗するとやり直し
- ファイルサイズがでかい (1GiBとか当たり前) ので帯域を結構食うのであまり並列度を高めたくない。けれど1つ1つファイルを指定するのは手間
など。なのでDropboxやOneDriveのようにバックエンドでちびちび同期してくれるモノが使いたいものの、ファイルサイズ的に商用サービスを借りるのは費用対効果で弱い。となると結局OwnCloudしかなくなる。…欲を言えばS3をバックエンドに使ったOwnCloudにしたいけれど、S3はS3でトラフィック課金が馬鹿にならないため使いにくい。保管料は安くて魅力的だけれど…。
そもそもOwnCloudをHyper-V上で動かすのが苦肉の策 (IIS上で動かすのを試したものの、非ASCII文字のファイル名の扱いに多大な問題があったため断念) なので、バックエンドDBのMariaDBはWindows Server上で稼働させる。バックエンドストレージはReadyNASを使い、WindowsからはCIFS、OwnCloudからはWebDAVでアクセスする。ちなみに録画PCがHyper-V Hostだったりする。
- Windows ServerにMariaDBを導入
- Windows ServerにHyper-V Hostを設定
- Hyper-V GuestとしてFreeBSDを導入 (最近のFreeBSDはHyper-Vの仮想デバイスに対応しているのでおすすめ!)
- OwnCloudの前提としている各種pkgを導入。確かこのあたり。依存関係は省きます :)
- Apache周り
- apache24
- memcached
- ImageMagick
- Libav
- libav
- LibreOffice
- PHP周り
- php56
- php56-bz2
- php56-ctype
- php56-curl
- php56-dom
- php56-exif
- php56-extensions
- php56-fileinfo
- php56-filter
- php56-ftp
- php56-gd
- php56-hash
- php56-iconv
- php56-json
- php56-ldap
- php56-mbstring
- php56-mcrypt
- php56-mysql
- php56-opcache
- php56-openssl
- php56-pdo
- php56-pdo_mysql
- php56-pdo_sqlite
- php56-phar
- php56-posix
- php56-session
- php56-simplexml
- php56-sqlite3
- php56-tokenizer
- php56-xml
- php56-xmlreader
- php56-xmlwriter
- php56-zip
- php56-zlib
- pecl-APCu
- pecl-imagick
- pecl-memcached (pecl-memcacheではない)
- mod_php56
- Apache周り
- OwnCloudを設定
基本的にハマりどころはそれほど無い。強いて言えば依存しているパッケージが分かりにくいことか。
またOwnCloudのディレクトリは素のHTTPはRejectするのがおすすめ。上図では敢えて80/tcpと443/tcpを両方通しているが、80/tcpはLet's Encryptの証明書発行のために開けておりOwnCloudのディレクトリはLANからのアクセスとSSLのいずれかのみを許容するよう設定。日米間はIX2015のIPsec VPNで暗号化しているのでSSLを使う意味が無いので。