ownCloud と MariaDB のインストール後の初期設定です。ここまで来ると FreeNAS とか h2o とか無関係ですね。
環境
過去に投稿した通りです。
FreeNAS 9.3 jail + h2o + PHP に ownCloud をインストール
FreeNAS 9.3 jail に MariaDB をインストール
名前解決に関する環境は下記。
自宅サーバを立てる際の家庭内名前解決の落とし穴
https を使う為の電子証明書に関する環境というか設定は下記。
FreeNAS 9.3 jail + h2o でオレオレ認証局
ようやく役者が揃いました…
データベース用意
MariaDB をインストールしたマシンのコンソール画面で作業します。
- データベース名: owncloud
- ユーザ名: owncloud
- パスワード: Naish0!
なお過去記事の通り、ownCloud をインストールしたマシンの名前は jiro.machine.example.com です。ここから MariaDB にアクセスします。
root@maria:/ # mysql -uroot
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MariaDB connection id is 6
Server version: 10.0.22-MariaDB-log FreeBSD Ports
Copyright (c) 2000, 2015, Oracle, MariaDB Corporation Ab and others.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
MariaDB [(none)]> create database owncloud default character set utf8;
Query OK, 1 row affected (0.00 sec)
MariaDB [(none)]> grant all on owncloud.* to 'owncloud'@'jiro.machine.example.com' identified by 'Naish0!';
Query OK, 0 rows affected (0.00 sec)
MariaDB [(none)]> quit;
Bye
ownCloud 初期設定
過去記事の通り、ownCloud には https://owncloud.example.com/ でアクセスします。初期画面が表示されますが、ごく普通の ownCloud 設定です。画面の入力欄に必要な情報を入力するだけで、難しい事は何もありません。
- 管理者の名前とパスワード。適当に決めて入力。
- データフォルダーはデフォルトが嫌なら適当に決めて入力。我が家は
/media/www/owncloud
とした。 - データベースとして MySQL/MariaDB を選択。
- すると MariaDB の接続情報の入力欄が表示される。上記で作成した通りに入力。
- ユーザ名: owncloud
- パスワード: Naish0!
- データベース名: owncloud
- データベースホスト: maria
完了ボタンを押してしばらく待つと… https://owncloud.example.com/index.php/apps/files/ が表示されました!やった!
追記
色々と、調整が必要なようです。メンドクサイなぁ… ownCloud を設定して見つかった調整内容を適宜追記します。簡単な内容はコメントに追記するかも知れません。ご注意ください。
最大アップロードファイルサイズ
2MB?なにそれ?なんでそんなに小さいの?しかもownCloudの設定画面では変更できない?どうなってんのPHP?
この件、かなり根が深いみたいです。調べれば調べるほど設定項目が増えていく…。どうなってんでしょうねPHP これだからPHPは(以下略)
※追記。参考文献 Uploading big files > 512MB - ownCloud 8.2 Server Administration Manual これは英語ですが、公式サイトの公式文献です。情報は可能な限り一次情報に当たりましょう。これに基づいて、下記内容を修正予定です。
# cd /usr/local/etc
# vi php.ini
《修正内容は下記diff結果を参照》
# diff php.ini-development php.ini
372c372
< max_execution_time = 30
---
> max_execution_time = 3600
382c382
< max_input_time = 60
---
> max_input_time = 3600
393c393
< memory_limit = 128M
---
> memory_limit = -1
660c660
< post_max_size = 8M
---
> post_max_size = 3G
810c810
< upload_max_filesize = 2M
---
> upload_max_filesize = 3G
設定を変更したら h2o を再起動。
# /usr/local/etc/rc.d/h2o restart
PhotoSync との相性
私は iPhone や iPad の写真を同期するのに PhotoSync を使っています。便利なんですよ、帰宅した途端に自宅の Wifi 経由で自動的に転送してくれて。値段も缶ジュース3本分って所ですしね、ケチる理由はありません。
ですが ownCloud と連動させるには WebDAV 経由しかありません。そして ownCloud WebDAV の最後の地雷。
最終的には、別の手段でファイルを転送して該当ディレクトリに配置し、コマンドラインツールを使って ownCloud に読み込ませるしかないのかも知れません。
諦めました!
この環境と設定で ownCloud の WebDAV に対してファイルを書き込むと、150MB弱のファイルの転送終了間際(80〜90%くらいか?いつも同じ頃)でエラーが発生してしまいます。FreeNASのプラグインで ownCloud を導入すると、300MB超でも何の問題もありませんでした。状況から見て PHP の設定がマズいのだと考えていますが、どこをどういじれば解決するのかわかりません。プラグインの ownCloud の設定も少しチェックしたのですが、php.ini はあの分量だし phpinfo() 出力もあの分量だし、とてもとても全部チェックする気にはなれません。httpサーバを h2o から変えてみるとか、色々実験してみたい所ではありますが、とっとと実用に供さないと私のスケジュール管理(カレンダー機能を使用)もままならず、試行錯誤の時間がありません。というわけで発想を変えて、ファイル転送は FreeNAS の WebDAV を使用して、 ownCloud の外部ストレージ機能を利用する事にしました。詳細は別稿にて。
追記
出来ました。結論から言うと、h2oの設定で、http処理時間の上限が10秒に設定されていたのでした。
参考: Configure > HTTP/1 Directives "http1-request-timeout"
1時間(=3600秒)にします。
http1-request-timeout: 3600
これで、長大なファイルも転送できるようになりました。やった