前回は、サーバーにOSをインストールし、セキュリティ関連のセットアップを行った。今回は実用的なWebサービスをひとつ用意する。
自宅に1つあって嬉しいWebサービスといえば、なんと言ってもクラウドストレージだろう。そこで、まずはDropbox風のオープンソースの高機能クラウドサービスのownCloudを導入する。

インストール

基本的には、公式のAdministration Manual通りに進めればよい。

依存するパッケージ群のインストール

$ apt-get install -y apache2 mariadb-server libapache2-mod-php5 \
  php5-gd php5-json php5-mysql php5-curl \
  php5-intl php5-mcrypt php5-imagick \
  php-apcu php-redis redis-server \
  php7.0-ldap php-smbclient

ownCloudパッケージのインストール

aptを使うと一瞬

$ sudo apt install owncloud-files

Apacheの設定

/etc/apache2/sites-available/owncloud.confに以下の内容を記述する

Alias /owncloud "/var/www/owncloud/"

<Directory /var/www/owncloud/>
  Options +FollowSymlinks
  AllowOverride All

 <IfModule mod_dav.c>
  Dav off
 </IfModule>

 SetEnv HOME /var/www/owncloud
 SetEnv HTTP_HOME /var/www/owncloud

</Directory>

この設定を有効にするために、/etc/apache2/sites-enable/にシンボリックリンクを貼る

$ a2ensite owncloud.conf

モジュール類を有効化

# a2enmod rewrite
# a2enmod headers
# a2enmod env
# a2enmod dir
# a2enmod mime

Apacheの再起動

# service apache2 restart 

ownCloudのディレクトリのセキュリティ強化のため、www-data(apacheが管理するユーザー)のみがファイルにアクセスできるようにする。

# chown -R www-data:www-data /var/www/owncloud/

sqlデータベースの用意

mysqlがインストールされていることは前提とします。
ownCloud用のデータベースと管理ユーザーを作ります。

sudo mysql --user=root mysql
CREATE DATABASE owncloud;
CREATE USER '新規データベースユーザー名'@'localhost' IDENTIFIED BY 'his_password';
GRANT ALL PRIVILEGES ON owncloud.* TO '新規データベースユーザー名'@'localhost' WITH GRANT OPTION;
FLUSH PRIVILEGES;
exit

ownCloudのセットアップ

準備は整ったので、http://your.ip.address/owncloudにアクセスしましょう!
管理者アカウントの作成と、sqlデータベースに関連する事項を登録したら完了です。

ディレクトリの権限の変更

セキュリティ強化のために、ディレクトリの権限を変更するスクリプトを走らせておきましょう。
Post-Installation Steps

php関連の設定変更

PHP を使ったアップロードやダウンロードの容量の制限を変更しておきましょう。
これにより大容量のファイルを扱えるようになります。
Configuration Notes Tips

その他設定

管理者アカウントでログインし、設定の項目を見ると、きちんと設定されているかどうか確認することができる。
警告が出ていたらその都度なおしておくこと。
私の場合、cronによるバックアップタスク設定と、databaseの高速化のための設定を勧められました。

セキュリティ関連の設定変更

HSTSを有効化

管理者アカウントにHSTS が有効化されていないという警告が出たので、メインの.htaccessファイルの一番最後に、このサイトを参考に、以下を追記。

<IfModule mod_headers.c>
Header always set Strict-Transport-Security "max-age=15552000; includeSubDomains"
</IfModule>

ログを保存

警告やエラーなどを/var/log/owncloud に吐き出すように設定。

# mkdir /var/log/owncloud/
# chown -R apache /var/log/owncloud/
# vi config.php
    'logfile' => '/var/log/owncloud/owncloud.log',

このままだといつかログがあふれるので、ログローテートを行います。
このサイトを参考に。

データのバックアップ

公式ドキュメントによれば、バックアップするべきデータは、

  • config/ ディレクトリ
  • data/ ディレクトリ
  • SQLデータベースのダンプ

なので、これらをcronか何かで定期的に外部ディスクにバックアップしておきましょう。

おわりに

これでownCloudを利用する準備が整いました!
ownCloudは、UIもDropbox並に洗練されていて、カレンダーや連絡先など拡張機能も豊富で、非常に便利なソフトウェアですので、サーバーの容量を持て余している人には大いにおすすめします!
ログイン画面

ownCloud利用画面
プレビューだって完璧

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください