Edge for Private Cloud v4.18.05
Apigee Developer Services ポータル(略して「ポータル」)の 4.18.05 リリースでは、以前の tar ベースのバージョンのポータルを更新できません。RPM ベースのバージョンのポータルを 4.18.05 に直接更新することのみが可能です。
ただし、tar ベースのポータルを 4.18.05 RPM ベースのポータル インスタンスに変換できます。このプロセスの一環として、既存のポータルの MySQL/MariaDB を Postgres データベースに移行します。変換後、ポータルは RPM ベースのポータルのままになります。
tar ベースのポータルの以前のバージョンの多く(バージョン 4.17.05 だけでなく、バージョン 4.16.09 や 4.17.01 など)を RPM ベースのポータルに移行できます。唯一の要件は、ポータルで Drupal 7 以降が実行されていることです。Drupal のバージョンを確認するには、Drupal メニューで [Reports] > [Status Reports] を選択します。Drupal のバージョンは、出力の最初の行に表示されます。
tar ベースのポータルから RPM ベースのポータルに移行する大まかな手順は次のとおりです。
- 新しいノードに RPM ベースの 4.18.05 バージョンのポータルをインストールします。
- RPM ベースのポータルに新しい Postgres データベースを作成します。
- tar ベースのポータルからポータル データベースを移行します。
- すべてのアクセサリー ファイルを tar ベースのポータルから RPM ベースのポータルにコピーします。
- 新しい RPM ベースのポータルを指すように DNS エントリを更新します。
RPM ベースのポータルではデフォルトでポート 8079 が使用されますが、tar ベースのポータルではポート 80 が使用されます。DNS エントリで正しいポート番号を使用していることを確認してください。別のポートを使用する方法については、ポータルで使用する HTTP ポートを設定するをご覧ください。
変換後の新しいデフォルト インストール ディレクトリ
インストール済みのポータルを更新して Nginx/Postgres を使用するように変更すると、ルート ディレクトリも変わります。変更前のディレクトリは以下のとおりです。
/opt/apigee/apigee-drupal
これを、次のように変更します。
/opt/apigee/apigee-drupal/wwwroot
ポータルの変換手順
ポータルを RPM ベースのインストールに変換するには:
- RPM ベースの 4.18.05 バージョンのポータルを、tar ベースのポータルとは異なるノードにインストールします。
- RPM ベースのポータルで、新しい Postgres データベースを作成します。後で、tar ベースのポータルからこの新しいデータベースにデータベースを移行します。
- psql にログインします。
psql -h localhost -p 5432 -U apigee
ポータル構成ファイルの PG_PWD プロパティで定義されている Postgres パスワードを入力します。
- 新しい Postgred データベースを作成します。
CREATE DATABASE newportaldb;
- psql を終了します。
\q
- psql にログインします。
-
tar ベースのポータルで、使用されなくなった古いモジュールを削除します。
cd /var/www/html
drush sql-query --db-prefix "DELETE from {system} where name = 'apigee_account' AND type = 'module';"drush sql-query --db-prefix "DELETE from {system} where name = 'apigee_checklist' AND type = 'module';"drush sql-query --db-prefix "DELETE from {system} where name = 'apigee_sso_ui' AND type = 'module';" - tar ベースのポータルで、Migrator Drupal モジュールをインストールして構成します。
-
cd /tmp
-
wget https://ftp.drupal.org/files/projects/dbtng_migrator-7.x-1.4.tar.gz
-
gunzip /tmp/dbtng_migrator-7.x-1.4.tar.gz
-
tar -xvf /tmp/dbtng_migrator-7.x-1.4.tar --directory /var/www/html/sites/all/modules
- 管理者としてポータルにログインします。
- Drupal メニューで [Modules] を選択します。
- DBTNG Migrator モジュールを有効にします。
- 構成を保存します。
-
- tar ベースのポータルで、
/var/www/html/sites/default/settings.phpを編集して、RPM ベースのポータルで新しく作成されたデータベースを指す 2 番目のデータベース構成を追加します。現在のデータベース構成の名前は「default」です。次の例に示すように、新しい構成に「custom」という名前を付けます。$databases = array ( 'default' => array ( 'default' => array ( 'database' => 'devportal', 'username' => 'devportal', 'password' => 'devportal', 'host' => 'localhost', 'port' => '', 'driver' => 'mysql', 'prefix' => '', ), ), 'custom' => array ( 'default' => array ( 'database' => 'newportaldb', 'username' => 'apigee', 'password' => 'postgres', 'host' => '192.168.168.100', 'port' => '5432', 'driver' => 'pgsql', 'prefix' => '', ) ) );ここで、
hostとportには、Postgres サーバーの IP アドレスとポートを指定します。Postgres は接続にポート 5432 を使用します。 -
tar ベースのポータルに Postgres ドライバをインストールします。
- Yum を使用してドライバをインストールします。
yum install php-pdo_pgsql
/etc/php.iniを編集して、ファイルの任意の場所に次の行を追加します。extension=pgsql.so
- Apache を再起動します。
service httpd restart
- Yum を使用してドライバをインストールします。
- tar ベースのポータルで、ポータル データベースを RPM ベースのポータルに移行します。
- 管理者としてポータルにログインします。
- Drupal メニューで [Structure] > [Migrator] を選択します。
- tar ベースのポータルで、上記の
settings.phpファイルに基づいて、移行元データベースdefaultと移行先データベースcustomを選択します。 - [移行] をクリックします。tar ベースのデータベースが RPM ベースのデータベースに移行されます。
sitesディレクトリを tar ベースのサーバーから RPM ベースのサーバーにコピーします。次の手順で示すパスは、デフォルトのパスに基づいています。インストールに応じて必要に応じて変更します。- tar ベースのポータルで、
/var/www/html/sitesディレクトリをバンドルします。cd /var/www/html/sites
tar -cvzf /tmp/sites.tar.gz . /tmp/sites.tar.gzを RPM ベースのサーバーの/opt/apigee/apigee-drupal/wwwroot/sitesにコピーします。- sites ディレクトリをアンバンドルしますが、重要なファイルは上書きしません。
settings.phpファイルをバックアップします。sudo cp /opt/apigee/apigee-drupal/wwwroot/sites/default/settings.php /opt/apigee/apigee-drupal/wwwroot/sites/default/settings.bak.php
- 既存の
filesディレクトリをバックアップします。sudo mv /opt/apigee/apigee-drupal/wwwroot/sites/default/files /opt/apigee/apigee-drupal/wwwroot/sites/default/files_old
- 既存の
sitesディレクトリをバックアップします。tar -cvzf /tmp/sites_old.tar.gz /opt/apigee/apigee-drupal/wwwroot/sites
- tar ベースのサーバーから
sitesディレクトリを解凍して untar します。gunzip /opt/apigee/apigee-drupal/wwwroot/sites/sites.tar.gz
tar -xvf /opt/apigee/apigee-drupal/wwwroot/sites/sites.tar - コピーしたファイルに適切な所有権があることを確認します。
chown -R apigee:apigee /opt/apigee/apigee-drupal/wwwroot/sites/
settings.phpファイルを復元します。sudo cp /opt/apigee/apigee-drupal/wwwroot/sites/default/settings.bak.php /opt/apigee/apigee-drupal/wwwroot/sites/default/settings.php
- プライベート ファイルを新しい場所に移動します。
cp -r /opt/apigee/apigee-drupal/wwwroot/sites/default/files/private/* /opt/apigee/data/apigee-drupal-devportal/private
rm -rf /opt/apigee/apigee-drupal/wwwroot/sites/default/files/privatechown -R apigee:apigee /opt/apigee/data/apigee-sap-drupal-devportal/private
- tar ベースのポータルで、
- tar ベースのポータルで、tar ベースのポータルのウェブルート ディレクトリのパスをデフォルトのパス /var/www/html から変更した場合のみ、
drush statusを実行してfilesパスとprivate filesパスを確認します。cd /var/www/html
drush statusファイル/非公開ファイルが
sitesディレクトリにない場合は、上記のように RPM ベースのサーバーにコピーします。 - RPM ベースのポータルで、
/opt/apigee/apigee-drupal/wwwroot/sites/default/settings.phpを更新してデフォルト データベースのプロパティを設定します。vi /opt/apigee/apigee-drupal/wwwroot/sites/default/settings.php
settings.php でデフォルトのデータベースの説明を設定します。
$databases = array ( 'default' => array ( 'default' => array ( 'database' => 'newportaldb', 'username' => 'apigee', 'password' => 'postgres', 'host' => 'localhost', 'port' => '5432', 'driver' => 'pgsql', 'prefix' => '', ) ) );ここで、
databaseは作成した新しいデータベースを指定します。usernameとpasswordは、tar ベースのポータルでカスタム データベースに定義されているとおりです。prefixは空です。 - RPM ベースのポータル: RPM ベースのポータルには、tar ベースのポータルよりも少ない Drupal モジュールが含まれています。RPM ベースのポータルに移行したら、不足しているモジュールがないか確認し、必要に応じてインストールする必要があります。
- 不足しているモジュールの検出に使用される Drupal
missing_moduleをインストールします。cd /opt/apigee/apigee-drupal/wwwroot
drush dl missing_moduledrush en missing_module - RPM ベースのポータルに管理者としてログインします。
- Drupal メニューで [Reports] > [Status reports] を選択し、不足しているモジュールがないか確認します。
- このレポートを使用して、不足しているモジュールをインストールするか、次のコマンドを使用します。
cd /opt/apigee/apigee-drupal/wwwroot
drush dl <moduleA> <moduleB> ...drush en <moduleA> <moduleB> ... - すべてのモジュールを有効にしたら、ファイルの所有者が apigee ユーザーであることを確認します。
chown -LR apigee:apigee /opt/apigee/apigee-drupal/wwwroot
ファイルへのアクセス許可の詳細については、https://www.drupal.org/node/244924 をご覧ください。
- 不足しているモジュールの検出に使用される Drupal
- RPM ベースのポータルで、ブラウザで update.php を実行して、欠落しているモジュールのエラーを削除します。
- RPM ベースのポータルに管理者としてログインします。
- ブラウザで次の URL に移動します。
http://portal_IP_or_DNS:8079/update.php
ここで、portal_IP_or_DNS は RPM ベースのポータルの IP アドレスまたはドメイン名です。
- 画面の指示に沿って操作します。
- 新しい RPM ベースのポータルを指すように DNS エントリを更新します。
RPM ベースのポータルではデフォルトでポート 8079 が使用されますが、tar ベースのポータルではポート 80 が使用されます。DNS エントリで正しいポート番号を使用していることを確認してください。別のポートを使用する方法については、ポータルで使用する HTTP ポートを設定するをご覧ください。
これで変換は完了です。