3.2からのアップグレード

このドキュメントでは、TAO 3.2から3.3へのアップグレードの手順を説明しています。

TAO 3.3では、システムをPHP 7.2にアップグレードする必要があります。このPHPバージョンのアップグレードは、TAO 3.3へのアップグレードの前に行っても、後に行っても構いません。

システムの準備

アップグレードを行うには、_TAO_3.3.0_composersupdate.zipと_configtemplates.zipをサーバーにダウンロードする必要があります。

sudo wget https://adminguide.taotesting.com/3.3/resources/installation/TAO_3.3.0_composers_update.zip
sudo wget https://adminguide.taotesting.com/3.3/resources/installation/config_templates.zip

注意:メンテナンスモードを有効にした後は、TAOのフルバックアップを行う必要があります。

始める前に、TAO_3.3.0_composers_update.zipパッケージを一時的なフォルダーに解凍してください(このフォルダーはこのドキュメントで参照されます)。これらのコンポーザー・ファイルは、TAO 3.3への2段階のアップグレード・プロセスで使用されます。

TAOをインストールしたディレクトリに移動する必要があります(ここでは「.NET」と呼びます)。本ガイドでは、/var/www/html/taoを使用していますが、/var/www/html/の下の別のサブディレクトリにある場合もあります。

cd <tao_root>

現在のパス「...」は、「...」を参照するようになります。

アップグレードを開始する前に、TAOのインストールをメンテナンスモードにしてください。

sudo -u www-data php index.php 'oat\tao\scripts\tools\maintenance\Disable'

アップグレードの開始

アップグレードの最初のステップでは、TAOのルートにあるコンポーザーファイル(composer.jsonとcomposer.lock)を、一時フォルダ/TAO_3.3.0_sprint-80_transitionにあるコンポーザーファイルに上書きします。

cp <tmp>/TAO_3.3.0_sprint-80_transition/composer.{json,lock} .

ここで、コンポーザーのインストールを実行して、すべての拡張機能が適宜更新されるようにします。

composer install

注意:このコマンドを実行すると,/taoQtiItem,/taoQtiTest,/tao のサブフォルダ内に生成されたファイルに関連する問題が発生する可能性があります。この問題が発生した場合は、サブフォルダーを削除してから、コマンドを再実行してください。

コマンドが終了したら、パーミッションをリセットします。

sudo chown -R www-data:www-data . && sudo chmod -R ug+rwX .

アップグレードを続けるためには、config_templates.zipパッケージの内容を利用して、いくつかの設定を変更する必要があります。

config ディレクトリに taoTestTaker フォルダを作成します。

sudo -u www-data mkdir config/taoTestTaker

以前にtaoDacSimpleエクステンションをインストールしていた場合は、そのエクステンション用の設定ファイルテンプレートをコピーする必要があります。

cp -r config_templates/config/taoDacSimple/ config/ -v

以前に taoEventLog 拡張機能をインストールしていた場合は、その拡張機能の設定ファイルテンプレートをコピーする必要があります。

cp -r config_templates/config/taoEventLog/ config/ -v

taoDacSimple拡張機能がインストールされている場合は、config/generis/installation.conf.phpから対応するブロックを削除することで、このステップでこの参照を削除してください。

nano config/generis/installation.conf.php

と表示され、この部分を削除します。

'taoDacSimple' => array(
    'installed' => '2.0.3',
    'enabled' => true
)

注:このリファレンスを維持すると、アップデートは失敗しますが、後で再インストールすることができます。

アップグレードを監視するには、まだログインしていない場合にUDPロガーがアクティブになるように提供されているconfig_templates/config/generis/log.conf.phpファイルを使用します。UDPリスナーを実行するには、別のセッションを開いて以下を実行する必要があります。

php UDPListener.php

注: extension-tao-devtoolsがインストールされていない場合は、UDPListener.phpファイルをここから入手できます。

これで、TAOアップデートスクリプトを実行する準備が整いました。

sudo -u www-data php tao/scripts/taoUpdate.php

TAOのインストールが完了すると、TAO 3.2とTAO 3.3の中間的な移行バージョンにアップデートされます。

アップグレードの継続

2番目のアップグレードを進めるためには、TAOのルートにあるコンポーザーファイルを、一時フォルダ/TAO_3.3.0_sprint-96-97_finalにあるコンポーザーファイルに上書きする必要があります。

cp <tmp>/TAO_3.3.0_sprint-96-97_final/composer.{json,lock} .

これからcomposer installを実行して、すべての拡張機能を更新できるようにします。

composer install

完了したらパーミッションをリセットします。

sudo chown -R www-data:www-data . && sudo chmod -R ug+rwX .

TAO 3.3.0で非推奨となったtaoOpenWebItemおよびtaoTestLinear拡張への参照を削除する必要があるかもしれません。

nano config/generis/installation.conf.php

で、これらの部分を取り除きます。

'taoOpenWebItem' => array(
       'installed' => '3.0.0',
       'enabled' => true
   ),
   [...]
   'taoTestLinear' => array(
       'installed' => '3.0.0',
       'enabled' => true
   )

*注:これらの参照を削除し、「enabled」パラメータをfalseにしないことが必要です。

これで、TAOアップデートスクリプトを再度実行する準備が整いました。

sudo -u www-data php tao/scripts/taoUpdate.php

これでお客様のTAOは、TAO 3.3.0の最終バージョンにアップデートされているはずです。

ファイナルステップ

これで、以下のようにメンテナンスモードをオフにすることができます。

sudo -u www-data php index.php 'oat\tao\scripts\tools\maintenance\Enable'

このアップデートの前にtaoDacSimpleがインストールされていた場合は、以下のコマンドで再インストールしてください。

sudo -u www-data php tao/scripts/taoExtensions.php -a install -u <user> -p <password> -e taoDacSimple -vvv

ロケールの任意インストール

TAOを完全に移行してインストールしたてのバージョンと一致させるには、以下のスクリプトを実行して、TAO 3.3で追加された21の欠落したロケールをインストールするとよいでしょう。

locales=("ar-arb" "ca-ES-valencia" "ca" "cs-CZ" "el-GR" "fa-IR" "fi-FI" "fr-CA" "gl" "hu-HU" "id-ID" "lb-LU" "lt-LT" "mn-MN" "nb-NO" "nl-BE" "pl-PL" "pt-BR" "ru-RU" "sk-SK" "th-TH" "vi-VN")
TAO_LOGIN=<user>
TAO_PWD=[<password>
for i in ${!locales[*]}; do
    sudo -u www-data php tao/scripts/taoRDFImport.php -v -n -u=${TAO_LOGIN} -p=${TAO_PWD} http://www.tao.lu/Ontologies/TAO.rdf# -i tao/locales/${locales[$i]}/lang.rdf
    done

注意:このスクリプトを複数回実行すると、ロケールが重複する可能性があります。