Dropboxはとても簡単にチームでファイル共有を行うことが出来ますが、無料の場合、
最大2GBの制限があります。
Dropboxを無料で容量を増やすためには、友人を紹介したり、モバイルデバイスにDropboxをインストールするなど、いくつかテクニックがあるようです。
ただ、本質的な解決策にならないので、今回、オンプレミスで使えるファイル共有サービス
ownCloud(オウンクラウド)
をインストールしてみました。
目次
ownCloud(オウンクラウド)とは
ownCloud
はオープンソースオンラインストレージ、ファイル共有ソフトのリーディングカンパニーであるownCloud社(ドイツ)が提供するオンラインストレージ構築パッケージです。
2010年よりKDEの開発者だったFrank Karlitschekにより開発が始まり、2015年2月にVersion 8.0.2がリリースされています。
ownCloudはオンラインストレージを、企業法人や教育機関内の専用サーバー環境に構築し、セキュアにファイル共有するためのオープンソースのパッケージソフトウェアです。
「Dropbox」や「Google Drive」のような使い勝手を維持したまま、データ容量を気にせず安心して、自社内で、または、取引先や国内外拠点との安全なファイル共有を行いたい企業・法人や教育機関で使うことが可能になります。
また、同期するためのクライアントソフトウェアとして、Windows版、MacOS版、Linux版、Android版、iOS版が用意されています。
ownCloud 8.0.2をCentOS 7にインストールする
ownCloud 8.0.2をCentOS 7にインストールする手順は以下の通りです。
CentOS 7、PHP、MariaDB、SELinux、Apacheまでの設定は以下の通りです(WordPressのバーチャルホストの設定は不要です)。
その後の手順は次の通りです。
php.iniを変更します。
1 2 3 4 |
# vi /etc/php.ini date.timezone ="Asia/Tokyo" default_charset = "UTF-8" |
ownCloud 8.0.2をインストールします。
yum.repos.dにリポジトリの場所を設定しないままで、yumでowncloudをインストールすると古いowncloudがインストールされてしまうので、以下のように変更しておきます。
1 2 3 |
# cd /etc/yum.repos.d/ # wget http://download.opensuse.org/repositories/isv:ownCloud:community/CentOS_CentOS-7/isv:ownCloud:community.repo # yum install owncloud |
ownCloudで使うデータベースを作成します(厳密には、デフォルトではSQLiteが使われるので、この設定は不要です)。
1 2 3 4 |
# systemctl start mariadb # mysql -u root -p MariaDB [(none)]> create database owncloud default character set utf8; MariaDB [(none)]> grant all privileges on owncloud.* to 'owncloud'@'localhost' identified by 'owncloud'; |
文字化けしないように、my.cnfを変更します。
1 2 3 4 5 6 7 8 9 10 |
# vi /etc/my.cnf [mysqld] character-set-server = utf8 [client] default-character-set = utf8 [mysql] default-character-set = utf8 [mysqldump] default-character-set = utf8 |
このまま、
http://(localhost)/owncloud
をブラウザで開きます。
パフォーマンス警告
SQLiteをデータベースとして使用しています。
For larger installations we recommend to
choose a diferent database backend.
Especially when using the desktop client
for file syncing the use of SQLite is
discouraged.
と表示されました。
SQLiteで作るならこのままでOKです。
MariaDBを使う時は、ストレージとデータベースを選択して変更します。
デフォルトでは、データフォルダの場所が、/var/www/html/owncloud/dataとなっている可能性があります。
このままでセットアップしてしまうと、データフォルダがhttpからのアクセスでダダ見えになってしまいます。
そこで、あらかじめサーバーに
mkdir /usr/local/data
chown -R apache:apache /usr/local/data
としてから、データフォルダを/usr/local/dataに変更しておきましょう。
このまま、管理者アカウントを入力して、「セットアップを完了します」を押します。
こんなエラーが出ました。
セキュリティ警告
HTTP経由で ownCloud にアクセスしています。HTTPSを使用するようサーバーを設定することを強くおすすめします。
データベースパフォーマンス情報
SQLite is used as database. For larger installations we recommend to switch to a different database backend.
Especially when using the desktop client for file syncing the use of SQLite is discouraged.
To migrate to another database use the command line tool: 'occ db:convert-type'PHP の文字コードは UTF-8 に設定されていません
PHP の文字コードは UTF-8 に設定されていません。ファイル名に非アスキー文字が含まれる場合は、大きな問題となる可能性があります。php.ini の 'default_charset' の値を 'UTF-8' に変更することを強くお勧めします。
設定を確認
データディレクトリとファイルがインターネットからアクセス可能になっている可能性があります。.htaccessファイルが機能していません。データディレクトリにアクセスできないようWebサーバーを設定するか、データディレクトリをWebサーバーのドキュメントルートから移動するよう強く提案します。
インストールガイドをよく確認してください。
セキュリティ警告は、当然ですね。
↓SSL証明書をここから買いましょう。
データベースは、取りあえず、SQLiteでよしとします。将来的にはMariaDBに移行した方がよいということですね。
PHPの文字コードは、
/etc/php.ini
でdefault_charactersetをUTF-8にしておきます。
.htaccessが機能していない件は、Apacheの設定をよく確認します。
ownCloudのWindowsアプリをインストールする
ownCloudにWebブラウザからログインしてみました。
ownCloudのクライアントとしては、Windows、OS X、Linux、Android、iOSと用意されています。
以下のURLからWindows用のクライアントをインストールします。
クライアントソフトは、そのままダウンロードしてインストールします。
使い勝手は、Dropboxと変わりません。
エクスプローラーの決まったフォルダがサーバーと同期されるようになります。
ownCloudでサーバーエラー
サーバー側でこんなエラーが表示されました。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
Warning core Login failed: 'root' (Remote IP: '192.168.141.1', X-Forwarded-For: '') 2015-04-21T06:07:41+00:00 Fatal core DB Error: "An exception occurred while executing 'INSERT INTO "oc_filecache" ("mimepart","mimetype","mtime","size","etag","storage_mtime","permissions", "path_hash","path","parent","name","storage") SELECT ?,?,?,?,?,?,?,?,?,?,?,? WHERE NOT EXISTS (SELECT 1 FROM "oc_filecache" WHERE "mimepart" = ? AND "mimetype" = ? AND "mtime" = ? AND "size" = ? AND "etag" = ? AND "storage_mtime" = ? AND "permissions" = ? AND "path_hash" = ? AND "path" = ? AND "parent" = ? AND "name" = ? AND "storage" = ?)' with params ["1", "2", "1429596382", "-1", "5535e8de0c09d", "1429596382", "31", "3b8779ba05b8f0aed49650f3ff8beb4b", "thumbnails", "11", "thumbnails", "3", "1", "2", "1429596382", "-1", "5535e8de0c09d", "1429596382", "31", "3b8779ba05b8f0aed49650f3ff8beb4b", "thumbnails", "11", "thumbnails", "3"]: SQLSTATE[23000]: Integrity constraint violation: 19 columns storage, path_hash are not unique"<br />Offending command was: INSERT INTO `*PREFIX*filecache` (`mimepart`,`mimetype`,`mtime`,`size`, `etag`,`storage_mtime`,`permissions`,`path_hash`,`path`,`parent`,`name`, `storage`) SELECT ?,?,?,?,?,?,?,?,?,?,?,? WHERE NOT EXISTS (SELECT 1 FROM `*PREFIX*filecache` WHERE `mimepart` = ? AND `mimetype` = ? AND `mtime` = ? AND `size` = ? AND `etag` = ? AND `storage_mtime` = ? AND `permissions` = ? AND `path_hash` = ? AND `path` = ? AND `parent` = ? AND `name` = ? AND `storage` = ?)<br /> 2015-04-21T06:06:22+00:00 Warning core Login failed: 'xxx' (Remote IP: '192.168.141.1', X-Forwarded-For: '') 2015-04-21T06:05:12+00:00 |
よくわからないけれど、php-apcuを削除すべきと書いてあるサイトを見つけたので
# yum remove php-apcu
で削除しました。
( https://forum.owncloud.org/viewtopic.php?f=31&t=27509 を参照)
ownCloudの文字化け
Webからログインして見てみると、共有しているファイルのShift JISのファイル名は文字化けしないけれど、ファイルの中身は文字化けしますね。
UTF-8で扱っているためでしょうか。
まとめ
今回、ownCloud 8.0.2をインストールしてみて、ほぼDropboxと同様なことがオンプレミスで動作させることが出来ることがわかりました。
↓ownCloud (オウンクラウド)についての書籍は以下をご覧ください。
さくらのVPSサーバー
↓月額685円からの低価格&高パフォーマンスのVPS、さくらのVPSはコチラ
SSDプランが月々685円から使える!さくらのVPS
コメント