OwnCloud7.XからOwncloud9.1にした話。

 

環境

  • OS : Ubuntu 16.04 LTS
  • Apache2.4
  • php7 (途中5.6を使います)

経緯

Ubuntu14.04 LTS からUbuntu16.04LTSへのアップデートを行った際に、Apacheが2.4になった。そこで、ついでにphpも更新し7にした。この際にownCloudがうまく動いてくれなくなったので、アップデートすることにした。

 

問題点
  • ownCloudを7.X->9.Xにしようとすると“Updates between multiple major versions and downgrades are unsupported.”と出てきてアップデートできない。
    • どうやら、この問題はownCloudを一気に大幅にアップデートしすぎらしい。参照
  • それじゃぁ、順番にアプデしていこう!と思って、8.0.14を入れようとすると、
    「php7じゃダメ。php7は8.2移行が対応してるよ。」って言われる。
  • それじゃぁと思って8.2.7を導入しようとすると…“Updates between multiple major versions and downgrades are unsupported.”が現れる…。
  • Ubuntu 16.04からはphp7が標準となっている。

=> つらい

 

アップデート作業

php5.6に一度戻して、php7に対応したownCloudのバージョンまで上げ、その後php7でowncloudをアプデしていく作戦

 

Ubuntu 16.04にphp5.6を

※古い設定が残っていたため、うまくいった可能性が…あまり検証できていません。

Ubuntu 16.04 に PHP5 をインストール。 | freefielder.jp を参考にさせていただきました。

  1. ondrejさんが公開しているPPAリポジトリを追加
    sudo add-apt-repository ppa:ondrej/php
    sudo apt-get update
  2. 追加されたそれっぽいのをインストール
    apt-get install libapache2-mod-php5.6

    ここで関連するいろんなパッケージもインストールされていました。

  3. 設定の更新
    /etc/apache2/mods-avaible/ にphp5.6.confとphp5.6.loadが存在するので、既存のphp7の設定と置き換える(無理やり)/etc/apache2/mods-enabled/ にあるphp7.0.confとphp7.0.loadを適当な名前に置き換える
    (このときのphp5.6は以前のバージョンが残っていただけな気もします…。)

    # sudo -s  実行後、ルート権限での操作だとします。
    cd /etc/apache2/mods-enabled/
    mv php7.0.conf php7.0.conf@
    mv php7.0.load php7.0.load@
    

    さらに、先ほどのmods-aviableにあるファイルのシンボリックリンクを作成します。

    ln -s /etc/apache2/mods-avaible/php5.6.conf /etc/apache2/mods-enabled/php5.6.conf
    ln -s /etc/apache2/mods-avaible/php5.6.load /etc/apache2/mods-enabled/php5.6.load
    
  4. phpinfoを表示すると、無事にphp5.6に変更できていました。
    スクリーンショット 2016-08-30 2.51.16

    <?php
    phpinfo()
    ?>
    

ownCloud8.0.14へのアップデート

基本的なownCloudのアップデート方法はOwnCloud 8 系から 9.0.0 にアップデートする | ぶっちろぐ を参考にさせていただきました。
ownCloudの過去のバージョンはownCloud Server Changelogにあります。とりあえず自分は8.0.14から。
アップデートの方法は上記リンクにとてもわかりやすく書いてあるので、そちらを参考に。
(※バックアップは取っておこう!)

ざっくり概要だけ書くと

  1. wget で欲しいバージョンをownCloud Server Changelogよりダウンロード(tar.bz2を利用)
  2. 現在のowncloudディレクトリの名前を変更 -> owncloud_oldなど(自分は/var/www/owncloud に設置していた)
  3. 新しいowncloudを展開して、同じディレクトリに設置
    sudo tar xvf owncloud-8.0.14.tar.bz2 -C /var/www/
    
  4. 古いowncloudからowncloud_old/config/config.phpだけを新しいowncloud/config/にコピー
  5. 所有者の変更
    chown -R www-data:www-data /var/www/owncloud
    
  6. ディレクトリに移動し、アップデートコマンドをwww-dataユーザで実行
    cd /var/www/owncloud/
    sudo -u www-data ./occ upgrade
    # apacheではユーザ名がwww-dataとなる
    
  7. しばらくすると、無事にowncloudがアップデートできたみたい。

スクリーンショット 2016-08-30 3.01.23

が、しかし…ブラウザ上でアクセスするとうまくいってないです。。。

 

スクリーンショット 2016-08-30 3.01.32

サーバーのログなども見ても、いまいち原因がわからない…。むりやりphp5を動かしてたのが原因なのかなんなのか…。

 

続いてアップデート

気にせず、次のバージョンいってみよ〜〜w (ダメな気がする…。

続いて8.1.9のインストール。。。上記と同様にダウンロードしてきて展開して所有者変えてconfig.php持ってきて…

うまくいった。。。けどやっぱりブラウザからアクセスするとミスる。

 

続いて8.2.7のインストール。ここからはphp7が利用できるので、mods-availableとmods-enabledをいじって(戻して)php7に。

それから同様にしてアップデート作業…
無事に成功。さらに、php7にもどしたせいか、ブラウザからアクセスすると無事に動作してるっぽい。

スクリーンショット 2016-08-30 3.33.53

それでも、ユーザ名、パスワードを入れると全然反応が返ってこなかったので一度サーバーを再起動。。。なんだか挙動が怪しかったのですが、数回ログイン操作を繰り返していると無事にログインできました!!

 

続いて、9.0.4…。アプデ作業にも慣れてきたかな。。。
アップデートコマンド実行時になんだかでてきました。

ownCloud or one of the apps require upgrade - only a limited number of commands are available You may use your browser or the occ upgrade command to do the upgrade
- Hint: You can speed up the upgrade by executing this SQL command manually: ALTER TABLE `*PREFIX*filecache` ADD COLUMN checksum varchar(255) DEFAULT NULL AFTER permissions;
Continue with update (y/n)

なんだか、上記のコマンドを入力すればアップデート作業を高速化できるけど、やらずに続行する?(y/n)みたいな意味っぽいので、とりあえずyで。

 

今回も無事にアップデート成功。。。

 

最後に、9.1へのアップデート。これも今までと同様のコマンドで実行を行いました。
どうやら、今回のアップデートではデータベースの変更が自動的に行われているみたいです。

スクリーンショット 2016-08-30 4.17.12

ついに、ownCloudが9.1までアプデできました。。。長い戦いだった…。

7.X -> 8.0 -> 8.1 -> 8.2 -> 9.0 -> 9.1

と途中phpのバージョンを切り替えながら9.1までアップデートしてきました。いやぁ…本当に長い戦いだった。。。

 

ついでに設定

なんだか警告が出たので、公式サイトにある通りの対応をしておいた。

  • The “Strict-Transport-Security” HTTP header is not configured to at least “15552000” seconds. For enhanced security we recommend enabling HSTS as described in our security tips.

公式サイトにある通り、下記を自分の場合は/etc/apache2/sites-available/ に設置しているowncloud.confに追記。無事に警告が消えた。

<Directory /var/www/owncloud/>
  # ..その他の設定
  <IfModule mod_headers.c>
    Header always set Strict-Transport-Security "max-age=15552000; includeSubDomains; preload"
  </IfModule>
</Directory>

 

また、owncloudにアクセスする際には常にhttpsを利用するようにしたかったので、/etc/apache2/sites-avaible/default.confにRedirectを記述しました。

<VirtualHost *:80>
# ...いろいろ設定
Redirect permanent /owncloud https://example.com/owncloud
# example.comは自分の環境に合わせる
<VirtualHost>

これで無事に以前のownCloudに戻った!(と思う)

 

まとめ

9.1を使ってみた感想としては(7.Xとの比較)

  • レスポンスが早い(クリックしてからページの遷移にストレスを感じない)
  • 動画のストリーミングがスムーズ(以前は止まったり、途中から再生ができなかったり…)
  • pdfのビュワーも高速

みたいな感じですかね〜

できれば消したくないファイルなどもあったので、ownCloudを消して入れ直すってことはしたくなかったので、無事にデータを保持したまま移行することができてよかった〜。

それにしても、アップデートを長らく放置していたため、すごい苦労をした気がします。これからはこまめにアップデートしよう。。。

コメントを残す

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

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