前置き
※よくあることが書いてます。手順を知りたい方はスキップ
前提・背景
- ここで記載するownCloudとはownCloud Serverのことです
- ownCloudを既に利用中でアップデート手順を知りたい
- アップデートにSSHを利用したくない(or利用できない)
- サーバーサイド暗号化が有効な状態では実践していません。データの破損の可能性などが想定できないため、実施の際はご留意ください
- 公式ページ(英語)の記載と実践結果に基いて書いてますが、環境によって違う結果もあり得ますので、あくまでも実施は自己責任でお願いします
アップデートの必要性について
ownCloudに脆弱性が発見された際、脆弱性に対応した最新バージョンにアップデートすることが求められます
基本的にはownCloud内で自動アップデートを有効にしていれば問題ないはずですが実施されない場合は手動でアップデートが必要になります
コンソールコマンドoccを使わずにアップデート
ownCloudをアップデートする際は、コンソールコマンドのoccを使う手順が一般的です
しかし、レンタルサーバ等で利用していて、sshが提供されておらずコンソールコマンドのoccを使えないケースがあります
ここではoccを使わない手順について記載します
使うもの
- FTPクライアントソフト(FFFTPやFilezillaなど)
- Webブラウザー
- 圧縮解凍ソフト(zip形式が解凍できれば良い)
- エディターソフト(メモ帳など)
ownCloudの仕様と注意ポイント
複数のメジャーリリースバージョンの存在
ownCloudは複数のメジャーリリースバージョンがあります。
また、各リリースバージョンについてサポート期間がある限り、脆弱性対応バージョンが更新されます
複数のメジャーリリースバージョンを飛ばしたアップデートは不可
現在のバージョンからアップデートをする際、この複数のメジャーリリースバージョンを順次適用する必要があります
簡単な流れ
以下で記載する作業の流れを簡単に書きます
- アップデート準備
- ownCloudを利用不可状態に変更
- データバックアップ
- アップデート作業
- 新バージョンのアーカイブを設置
- データを現行パスから新バージョンのパスへ移行
- ブラウザからアップデート実行
- ownCloudを利用可能状態に変更
- 残処理
手順
手順における前提
項目 | 値 |
---|---|
現在のバージョン | 8.2.7 |
作業後のバージョン | 9.1.4 |
ownCloudインストールパス | /htdocs/owncloud/ |
アップデート準備
現在のownCloudのバージョンの確認
※ 既に把握している場合は次項へ
- Webブラウザーでowncloudにログイン
- 「管理」ページの一番下の「バージョン」を確認
owncloudのアーカイブを取得
https://owncloud.org/changelog/ にアクセス
目的のリリースバージョンの最新版のzipファイルをダウンロードする
現在のバージョンから、目的のバージョンまでにリリースバージョンがある場合はそのzipファイルもダウンロードする
今回は、現在が8.2.7で目的のバージョンが9.1.4なので、
ダウンロード必要なzipファイルは、
- 9.0.xのzipファイル
- 9.1.4のzipファイル
となります
アーカイブファイルの準備
- 一番若いバージョンのzipファイル(今回は9.0.xのzipファイル)を解凍します
- 解凍後はowncloudというフォルダができます
- 区別する為、フォルダ名をoc90に変更しておきます
- oc90の中にあるconfigというフォルダは不要なので削除しておきます
ownCloudを利用不可状態に変更
おすすめな順に方法を記載します
アクセス制限をかける場合
ご契約のレンタルサーバーの管理機能などでアクセス制限をする
※ この場合はconfigファイルの編集やディレクトリ名変更が不要です
ownCloudのメンテナンスモードへの切替えをする場合
- /htdocs/owncloud/config/config.phpをFTPでダウンロード
- 記載に'maintenance'行がある場合は、falseをtrueへ変更し保存
- 編集後のconfig.phpを元の場所へアップロード
もし元のconfig.phpにmaintenanceの行の記載が無い場合は、
'maintenance' => true,
を他の項目に倣って追記してください
ownCloudディレクトリの名称を変える場合
FTPソフトでサーバーへ接続し、「owncloud」を「owncloud-old」へ変更
この操作により、従来のURLへアクセスされた場合、404 Not Foundの状態となりますので利用者へのアナウンスをしておきましょう(びっくりされます)
作業前のバックアップ
ここでは詳細な手順を省略させてもらいます
- データベース(phpmyadminでエクスポート)
- owncloudデータ(サーバー上で圧縮またはPCに丸ごとダウンロード)
アップデート作業
FTPで新バージョンのデータをアップロード
oc90を同じ階層にアップロードします
今回の場合はアップロード後「/htdocs/oc90」となります
転送モードはバイナリモードがおすすめです。
現在のデータを移行する
- owncloud/configをoc90/configへ移動させます
- owncloud/dataをoc90/へ移動させます
補足
3rd partyアプリを利用してる場合はappsを差し替え
テーマを変更している場合はthemesを差し替え
※ 前工程で現バージョンを「owncloud-old」に変更してる場合は読み替えてください
configファイル内のメンテナンス設定の解除
前工程でoc90/config/config.phpにメンテナンス設定をした場合は、前工程と同様に、trueをfalseに変更してください
新バージョンのディレクトリ名の変更
現行バージョンのowncloudがowncloudとして存在している場合は、owncloudをowncloud-oldに名称を変更
oc90をowncloudに変更
この作業後にWebブラウザにてowncloudへアクセスすると
「ownCloudはバージョンx.x.xにアップデートされます」というメッセージが表示されますのでアップデートを開始ボタンを押します
アップデート実施状態の確認
Webブラウザ上でアップデートの進捗が表示されます
データサイズやデータ数などにより長時間かかる場合があるとのことです
正常に完了した場合はF5キーなどで更新をするとログイン画面が表示されます
ownCloudを利用可能状態に変更
作業前にアクセス制限をかけた場合
アクセス制限設定を解除します
ownCloudのメンテナンスモードへの切替えた場合
アップデートツールにてメンテナンスモードは解除されてますので作業は不要です
ownCloudディレクトリの名称を変えた場合
owncloud-oldというディレクトリが残っている状態です
次項の残処理で触れます
残処理
移行元のディレクトリとしてowncloud-oldが残っていますが
データや設定などが無い状態の為、移行後のownCloudの動作で問題がなければ削除しても良いようです。
移行し忘れたテーマ(themes)などがあれば後からコピーが可能のようです。
複数メジャーリリースバージョンの場合
大変ですが上記工程を必要分だけ繰り返すことになります(汗)
(一度にバージョンアップできたらいいのですが)