容量の少ないDropboxの代わりに200GBも容量のあるエックスサーバーにownCloud8を設置してクラウドストレージとして使っていたのですが、先日
JPCERT/CC では Nextcloud 社が調査によって発見した脆弱性があるバージョンの ownCloud または Nextcloud を使用している国内サーバの情報を提供いただいております。
提供された情報に、貴組織の管理する IP アドレスが含まれておりました。恐れ入りますが、当該 IP アドレスにつきまして、ご対応をご検討いただけませんでしょうか。
なる警告メールが届き、そろそろ最新のownCloud10にアップグレードしないとなと思ったのでアップグレードを試してみました。うう、面倒くさい・・・もうDropboxでいいよ。
ちなみにDropboxをここから申し込むと500MB追加された状態でスタート可能です。現状iPhoneで一番使い勝手のいいクラウドストレージはDropboxなのでまだ使ってない人は是非申し込んでみるといいでしょう。 → https://db.tt/f4HvNEW3tA
まずエックスサーバーの問題として、旧環境サーバー(sv1999までのサーバー)についてはlibxml2のバージョンが古いというエラーが出るのでowncloud9以降のインストールが出来ない状態が続いていました。それが最近新環境サーバー(sv2001以降のサーバー)の募集が開始され、こちらだと問題なくowncloud9以降が設置できるようです。しかしエックスサーバーのいい点として新しい環境のサーバーに自動で移行できる「新サーバー簡単移行」という機能があってこれを使うと新しいサーバーにデータをそのまま移行してサーバーのスペックアップが可能になっています。この機能がようやく契約してるサーバーにも解禁されたため早速セットアップを試してみました。
といってもやることはボタン一つ押すだけなんですけどね。新サーバー簡単移行ボタンを押すと2~3時間ほどでデータのコピーが完了して新サーバーが利用できるようになります。
新サーバーのスペックはこんな感じ。メモリが二倍に増強されています。まあエックスサーバーはハイスペックサーバーに詰め込み仕様なのでメモリ増強の効果を感じられるかは不明。そして2週間の移行猶予期間の間に新しいサーバーで正しくページが表示できるかなどを確認して移行完了ボタンを押せば新サーバーに移行完了です。ほらね、簡単でしょ?
ちなみにうちの場合はアクセスカウンタのCGIがうまく表示できなくなってたので、perlのパスを新しいサーバーに合わせて変更した程度ですが、設置してるソフトによっては不具合対応に時間がかかるかも知れませんね。そのあたりは2週間の猶予期間にしっかり確認する必要があります。なおサーバー移行完了したあとも2週間は旧サーバーに戻すことも可能なので移行したらすぐに良くテストすることが大事だと思います。
ちなみにサーバーがスペックアップしたので一応速度テストしてみましたが
・・・むしろ遅くなりましたね。
続いてownCloud10の設置へ。ownCloudのメジャーバージョンアップの方法はよくわかんないので、いつもサーバーのファイルを全消しして、ファイルをアップロードし直すという方法でやっています。本当は正しい方法があるんだろうけど、まあゴミファイルも全部消えるしこれが一番手っ取り早いです。
やりかた
1.ownCloud8のデータ保存フォルダをダウンロードしてバックアップ
2.ownCloud8のフォルダとデータベースを削除
3.ownCloud10をWebInstallerを使ってインストール
4.データベースを新規作成
5.ユーザーを作成しなおす
6.ファイルをアップロードし直す
という感じでやりました。この手順でインストールすると途中で500エラーで動作しなくなるのでインストールされた.htaccessファイルを編集します。
php_value always_populate_raw_post_data -1
php_value upload_max_filesize 4G
php_value post_max_size 4G
php_value memory_limit 512M
php_value mbstring.func_overload 0
php_value default_charset 'UTF-8'
php_value output_buffering 0
<IfModule mod_env.c>
SetEnv htaccessWorking true
</IfModule>
という表記があるのでこれを
<IfModule mod_php5.c>
php_value always_populate_raw_post_data -1
php_value upload_max_filesize 4G
php_value post_max_size 4G
php_value memory_limit 512M
php_value mbstring.func_overload 0
php_value default_charset 'UTF-8'
php_value output_buffering 0
<IfModule mod_env.c>
SetEnv htaccessWorking true
</IfModule>
</IfModule>
IfModuleで囲んであげます。なんでこれが必要なのかは不明ですがこれで動くようになるかと思います。なおこれを編集するとownCloudで「コード整合性の問題で問題が発生しました」というエラーが出るようになりますが、これは消せないのであきらめてください・・・。
htaccessを編集するついでなのでhttp://をhttps://にリダイレクトする設定も書いておくといいでしょう。(ownCloudの設定を編集して強制する方法は使えなくなりました)
<IfModule mod_rewrite.c>~</IfModule>の中に
RewriteCond %{SERVER_PORT} !^443$
RewriteRule ^.*$ https://%{SERVER_NAME}%{REQUEST_URI} [L,R]
と書いておくとhttpでのアクセスがすべてhttpsにリダイレクトされます
(参考→http://takuya-1st.hatenablog.jp/entry/20101217/1292579757)
ところでownCloud設置したのはいいのだけれども、最近QNAPを購入したので全く使ってません・・・(なら削除しろよ定期)ぶっちゃけQNAPのが便利やぞ、アプリの出来はいいし、容量もテラバイト単位になるし。ownCloudのメリットはバージョン履歴がデフォルトで有効だからファイルを間違って更新してしまってもすぐに元に戻せる程度ですかねえ・・・。