さくらのレンタルサーバの余ってる容量をOwnCloud で使ってみる
- 余ってるサーバの容量をOwnCloudで有効活用
- 参考にしたページ
- OwnCloud とは?
- Linux+ウェブサーバ+MySQL+PHPで動く
- ドメイン(サブドメイン)のSSL化から始める
- PHPのバージョンを設定する
- intlモジュールを有効化する
- php.iniを設定する
- データベースを作る
- OwnCloud本体(サーバ)のインストール
- SSH接続してダウンロード・解凍する
- インストールは画面の指示通りに config.phpの削除でやり直せる
- エラー抑止のために .htaccess を編集する
- PCクライアントやiOS、Android 版のクライアントを入手する
余ってるサーバの容量をOwnCloudで有効活用
さくらのレンタルサーバにOwnCloud をインストールして、最大100GBの容量を使って、Dropbox的な使い方をしてみる、というのをやってみました。
私はもうWeb制作をやりたくないですけど、Webサーバのレンタルをやめるのは寂しい、っていう難しいお年頃というか、めんどくさい時期におりますので、余った容量に成仏してほしいなって感じで試してみるしだいです。
もうちょっと「さくらのぽけっと」が使いやすくなれば、万が一のバックアップメディアとして使えて、OwnCloud なんて試そうとも思わないはずなんですが、なんか、ちょっと使いづらいので、しょうがないです。あれを使いやすいと思う人もいるでしょうけど、私はちょっと、なので。
参考にしたページ
下記ページを参考にして作業いたしました。
万が一、もう一度作業をすることになったときのために、上記2つのページの内容をもとにした私の作業記録を下にまとめておきます。
OwnCloud とは?
OwnCloud とは、Dropbox や Onedrive、Google Drive のようなオンラインストレージというものを自分のサーバで作れるLinux 用のソフトウェアです。
Linux+ウェブサーバ+MySQL+PHPで動く
OwnCloud は昔で言うLAMP環境で動作します。ただし、さくらのレンタルサーバなら、Linuxではなくて、BSDですし、もうApatchではなくて、Nginx でしょう。あなたがこれを読む頃には、データベースが、MySQLではなくてMariaDBになってるかもしれません。でも、OwnCloudは、相変わらずPHPで書かれているでしょう。PHPなので、わりと多くのレンタルサーバで動いてくれそうな感じです。嬉しいですね。
ドメイン(サブドメイン)のSSL化から始める
OwnCloudサーバを設定するドメイン、あるいはサブドメインを用意し、無料SSLを設定します。
「さくらのコントロールパネル」>「ドメイン設定」>「ドメイン/SSL設定」でドメインを登録し、「SSL 証明書 – 登録」で無料SSLを登録し、受理のメールが届けばOK。
https://owncloud.example.com といった形式のURLで接続できるようにしましょう。
※本稿では、http://owncloud.example.comは、サーバの、~/www/owncloud/ と接続されているものとしています。
PHPのバージョンを設定する
「さくらのコントロールパネル」>「PHPのバージョン選択」でver 7.2.13 を指定しました。この記事、執筆中の2018/12/21現在、最新のさくらのレンタルサーバは、PHP 7.2.13 (CGI版)が動作していました。バージョンにこだわるのは、下記のintlモジュールとの整合をとらないと動かないからです。わりとメンテナンス面倒なんです。やっぱり「さくらのぽけっと」でいいんじゃないかと思っちゃう瞬間です。でも、続けましょう。
intlモジュールを有効化する
OwnCloudの動作に必要な intl というPHPモジュールが、さくらのレンタルサーバでは提供されていないので、ビルドする必要があります。intl とは、国際化関数です。
ビルドはSSHで作業します。
SSHで作業するためには、Windowsなら、Poderosa とか Teraterm といったSSHクライアントのインストールが必要です。接続については、それぞれのマニュアルを見ていただくとして、接続できたこととして説明を進めます。
SSHでログイン後、ビルド用と公開用のフォルダをそれぞれ作成します。
% mkdir -p ~/usr/local/src
% mkdir -p ~/usr/local/php/extension
ICUをビルドします。ICUとは、Unicode用国際化コンポーネントです。
% cd ~/usr/local/src
% wget http://download.icu-project.org/files/icu4c/58.1/icu4c-58_1-src.tgz
% tar zxvf icu4c-58_1-src.tgz
% cd icu/source
% ./configure --prefix=$HOME/usr/local
% gmake
% gmake install
php-7.2.1に同梱されているintlをビルドしました。
先にも書いたように intl とは、国際化関数です。
% cd ~/usr/local/src
% wget https://github.com/php/php-src/archive/php-7.2.1.zip
% unzip php-7.2.1.zip
% mv php-src-php-7.2.1/ext/intl ./intl-php-7.2.1
% rm -rf php-src-php-7.2.1
% cd intl-php-7.2.1
% phpize
% ./configure --with-icu-dir=$HOME/usr/local --with-php-config=/usr/local/php/7.2/bin/php-config
% make
modulesフォルダにできたintl.soを、拡張モジュール指定用のフォルダへコピーします。
php.iniを設定する
「さくらレンタルサーバのコントロールパネル」>「アプリケーションの設定」>「PHP設定ファイルの編集」中の「php.iniファイルパス」に下記のように書き加えました。
extension_dir = /home/<さくらのユーザー名>/usr/local/php/extension
extension=intl.so
upload_max_filesize = 1024M
post_max_size = 1024M
下の2行は大きなファイルがあったら困るなと思って書き加えました。 どれだけのサイズが必要かはそれぞれ違うでしょうから、自分にあったものにしてください。
データベースを作る
ownCloudはSQLiteでも動きますが、エラーをお吐きになられることが多いので、MySQLを使ったほうがいいようです。
さくらのレンタルサーバではMySQLlが作成できるので、これを利用しました。「データベースの設定」 項目は後ほど必要になるので、接続先、ユーザー名、パスワードなどメモっておきます。
OwnCloud本体(サーバ)のインストール
最初に設定したドメイン(またはサブドメイン)に対して、httpsで接続できることを確認します。実際にブラウザから https://owncloud.example.com/ にアクセスし、アクセスできたらOKです。OwnCloudサーバをインストールしましょう。インストールはSSHでやればいいでしょう。
SSH接続してダウンロード・解凍する
さくらのレンタルサーバーにSSHで接続し、OwnCloudサーバのzipをダウンロード・解凍します。
% wget https://download.owncloud.org/community/owncloud-10.0.10.zip
% unzip owncloud-10.0.10.zip
サーバ内にowncloud というディレクトリが作られ、必要なファイル一式が解凍されます。ブラウザから https://owncloud.example.com/ にアクセスしてください。
インストールは画面の指示通りに config.phpの削除でやり直せる
あとは画面に表示される通りに作業してください。最初なにげなく作業してしまうと、SQLite をデータベースとして選んでしまうと思いますが、いったん config.php を削除すると、今度は、MySQLを選ぶ画面がよくわかると思います。必要な項目を入力すれば、MySQLで動作をはじめます。
「あれっ、管理者パスワードも忘れてしまった…」という場合などはMySQLもきれいにしないといけないと思います。
なお、あなたが徹夜明けの非IT系な人でも、ケアレスミスは初手で終わりにしてください。OwnCloudはクラウドを使って、ローカルのファイルを同期させる機能を持ちます。ということは、クラウドが暴走すると、簡単にローカルのファイルを消します。その責任は誰がとるのか? もちろん管理者であるあなた自身です。
エラー抑止のために .htaccess を編集する
さくらのインターネットの仕様により .htaccess にいろいろと設定がされています。
その設定と OwnCloud の要求が噛み合わず、管理者設定画面にエラーが表示されてしまっていますので、抑止のために、htaccess を編集します。
<IfModule mod_env.c>
# Add security and privacy related headers
# Header set X-Content-Type-Options "nosniff"
# Header set X-XSS-Protection "1; mode=block"
# Header set X-Robots-Tag "none"
# Header set X-Frame-Options "SAMEORIGIN"
# Header set X-Download-Options "noopen"
# Header set X-Permitted-Cross-Domain-Policies "none"
Header set Strict-Transport-Security "max-age=15552000"
SetEnv modHeadersAvailable true
</IfModule>
PCクライアントやiOS、Android 版のクライアントを入手する
ファイルを同期したいクライアントPCに、ownCloudクライアントアプリをインストールします。PCクライアントは無償です。
iOS版、Android版のクライアントもあります。これらは執筆している2018/12/21現在、200円以下で購入できますが、高いと思う人もいらっしゃるんでしょうか。無償アプリで同期に対応したアプリもあるようなので試してみてください。私はとりあえずPC版だけで満足です。