ownCloudの構築


概要

Apache httpdだけでWebDAVサーバを設定しては見たが、 事情により、Webブラウザだけで操作できる環境があると楽かもしれないと思い始めた。 なので簡単に使えそうなownCloudを試しに使ってみることにした。

環境:さくらVPS、CentOS 7、ownCloud 8.0.5


インストール

まずowncloudをEPELからインストール。EPEL万歳。

# yum install owncloud

そしてhttpdの設定。 owncloud.confには「このファイルを編集するな」と書いてあるが、 Aliasを変更したいのでそこだけは編集してしまうことにする。

# cd /etc/httpd/conf.d
# cp owncloud.conf owncloud.conf.orig

# vi owncloud.conf
#Alias /owncloud/apps-appstore /var/lib/owncloud/apps
#Alias /owncloud/assets /var/lib/owncloud/assets
#Alias /owncloud /usr/share/owncloud
Alias /ディレクトリ/apps-appstore /var/lib/owncloud/apps
Alias /ディレクトリ/assets /var/lib/owncloud/assets
Alias /ディレクトリ /usr/share/owncloud

httpリクエストを許可するのとあわせてhttpsへリダイレクト。 あわせて.htaccessも有効化。

# cp /etc/httpd/conf.d/owncloud-access.conf.avail /etc/httpd/conf.d/z-owncloud-access.conf
# vi /etc/httpd/conf.d/z-owncloud-access.conf
<Directory /usr/share/owncloud/>
    Include conf.d/owncloud-auth-any.inc
    <IfModule mod_rewrite.c>
        RewriteEngine on
        RewriteCond %{HTTPS} off
        RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R,L]
    </IfModule>
    AllowOverride All
</Directory>
<Directory /var/lib/owncloud/apps/>
    Include conf.d/owncloud-auth-any.inc
    <IfModule mod_rewrite.c>
        RewriteEngine on
        RewriteCond %{HTTPS} off
        RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R,L]
    </IfModule>
</Directory>
<Directory /var/lib/owncloud/assets/>
    Include conf.d/owncloud-auth-any.inc
    <IfModule mod_rewrite.c>
        RewriteEngine on
        RewriteCond %{HTTPS} off
        RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R,L]
    </IfModule>
</Directory>

/usr/share/owncloud/.htaccessを作成して 日本以外のIPアドレスからのアクセスを拒否する。

そしてhttpd再起動。

# systemctl restart httpd

さらにMariaDB上にowncloud用データベースとユーザーを作成。

# mysql -u root -p
MariaDB [(none)]> create user ocloud@localhost;
MariaDB [(none)]> set password for ocloud = password('パスワード');
MariaDB [(none)]> create database ocloud;
MariaDB [(none)]> grant all privileges on ocloud.* to ocloud@localhost;
MariaDB [(none)]> flush privileges;
MariaDB [(none)]> \q

ブラウザから"https://ホスト名/ディレクトリ/"へアクセスして、インストーラを起動。

  1. 「管理者アカウントを作成してください」に、これから作成する管理者ユーザ名とパスワードを入力
  2. 「ストレージとデータベース ▼」をクリック
  3. データフォルダを設定(デフォルトは/var/lib/owncloud/data)
  4. データベース種類を選択(デフォルトSQLiteからMySQL/MariaDBへ変更)
  5. MariaDBのユーザーとパスワードとデータベース名を指定
  6. 「セットアップを完了します」をクリック

これで、管理者でログインして非管理者ユーザーを作成すれば使えるようになる。 が、一つ追加設定として、ユーザーを新規作成したときにはファイル領域は空っぽになっている方が気分が良いのでskeletonディレクトリを空にしておく。

# cd /usr/share/owncloud/core
# mv skeleton skeleton.orig
# mkdir skeleton

おまけ

上の設定によって/var/lib/owncloud以下が実際のファイル置き場になるが、 これは / (ルート) ファイルシステムなので、ユーザー操作によってファイルシステムフルになってしまう可能性があるのはちょっと好ましくない。 そのため設定を変更して、/var/www/htmlファイルシステム内のとあるディレクトリをファイル置き場として使用するようにする。

owncloudの設定変更のためには/etc/owncloud/config.phpを書き換えてもいいようだが、 今回はowncloudの設定変更ではなく、bindマウントを使用してファイルシステムツリーを修正することで対応してしまった。

# cd /var/www/html
# cp -a /var/lib/owncloud ./ディレクトリ
# cd /var/lib
# mv owncloud owncloud.orig
# mkdir owncloud
# mount --bind /var/html/www/ディレクトリ /var/lib/owncloud
# vi /etc/fstab
/var/html/www/ディレクトリ    /var/lib/owncloud   none   bind   0 0

上でうまくいったらowncloud.origを削除する。

# cd /var/lib
# rm -rvf owncloud.orig

最終更新日:2015/09/09

↑ トップページ