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://ホスト名/ディレクトリ/"へアクセスして、インストーラを起動。
これで、管理者でログインして非管理者ユーザーを作成すれば使えるようになる。 が、一つ追加設定として、ユーザーを新規作成したときにはファイル領域は空っぽになっている方が気分が良いので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