Tur tabanlı bir portalı BGBG tabanlı bir portala dönüştürme

Apigee Developer Services portalının (veya kısaca portal) 4.18.05 sürümü, portalın önceki tar tabanlı sürümünü güncellemenize izin vermez. Portalın RPM tabanlı bir sürümünü yalnızca doğrudan 4.18.05'e güncelleyebilirsiniz.

Ancak portalın tar tabanlı bir sürümünü portalın 4.18.05 RPM tabanlı bir örneğine dönüştürebilirsiniz. Bu işlem kapsamında, mevcut portalın MySQL/MariaDB'sini bir Postgres veritabanına taşırsınız. Dönüştürüldükten sonra portalınız RPM tabanlı bir portal olarak kalır.

Tar tabanlı portalın önceki birçok sürümünü (yalnızca 4.17.05 sürümünü değil, 4.16.09 ve 4.17.01 sürümleri dahil) RPM tabanlı bir portala taşıyabilirsiniz. Tek şart, portalın Drupal 7 veya sonraki bir sürümü çalıştırıyor olmasıdır. Drupal sürümünüzü kontrol etmek için Drupal menüsünde Reports > Status Reports'u (Raporlar > Durum Raporları) seçin. Drupal sürümü, çıkışın ilk satırında görünür.

Tar tabanlı bir portaldan RPM tabanlı bir portala geçiş yapmak için uygulayacağınız üst düzey adımlar şunlardır:

  • Portalın RPM tabanlı 4.18.05 sürümünü yeni bir düğüme yükleyin.
  • RPM tabanlı portalda yeni bir Postgres veritabanı oluşturun.
  • Portal veritabanını tar tabanlı portaldan taşıyın.
  • Tüm aksesuar dosyalarını tar tabanlı portaldan RPM tabanlı portala kopyalayın.
  • DNS girişlerini yeni RPM tabanlı portalı gösterecek şekilde güncelleyin.

    Portalın RPM tabanlı sürümünün varsayılan olarak 8079 numaralı bağlantı noktasını, tar tabanlı sürümünün ise 80 numaralı bağlantı noktasını kullandığını unutmayın. DNS girişinizde doğru bağlantı noktası numarasını kullandığınızdan emin olun. Farklı bir bağlantı noktası kullanma hakkında bilgi için Portal tarafından kullanılan HTTP bağlantı noktasını ayarlama başlıklı makaleyi inceleyin.

Dönüşümden sonra yeni varsayılan yükleme dizini

Nginx/Postgres kullanan bir yükleme güncellendikten sonra kök dizin değişti. Eski dizin:

/opt/apigee/apigee-drupal

karşılaştırma yapılacak öğe:

/opt/apigee/apigee-drupal/wwwroot

Portal dönüşüm prosedürü

Portalı RPM tabanlı bir yüklemeye dönüştürmek için:

  1. Portalın RPM tabanlı 4.18.05 sürümünü, tar tabanlı portalınızdan farklı bir düğüme yükleyin.
  2. RPM tabanlı portalda yeni bir Postgres veritabanı oluşturun. Daha sonra, veritabanını tar tabanlı portaldan bu yeni veritabanına taşırsınız:
    1. psql'de oturum açın:
      psql -h localhost -p 5432 -U apigee

      Portal yapılandırma dosyasındaki PG_PWD özelliği tarafından tanımlanan Postgres şifrenizi girin.

    2. Yeni bir Postgres veritabanı oluşturun:
      CREATE DATABASE newportaldb;
    3. psql'den çıkın:
      \q
  3. Tar tabanlı portalda, artık kullanılmayan eski modülleri kaldırın:

    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';"
  4. Tar tabanlı portalda Migrator Drupal modülünü yükleyin ve yapılandırın:
    1. cd /tmp 
    2. wget https://ftp.drupal.org/files/projects/dbtng_migrator-7.x-1.4.tar.gz 
    3. gunzip /tmp/dbtng_migrator-7.x-1.4.tar.gz 
    4. tar -xvf /tmp/dbtng_migrator-7.x-1.4.tar --directory /var/www/html/sites/all/modules 
    5. Portala yönetici olarak giriş yapın.
    6. Drupal menüsünde Modules'u (Modüller) seçin.
    7. DBTNG Migrator modülünü etkinleştirin.
    8. Yapılandırmayı kaydedin.
  5. tar tabanlı portalda, RPM tabanlı portalda yeni oluşturulan veritabanını işaret eden ikinci bir veritabanı yapılandırması eklemek için /var/www/html/sites/default/settings.php dosyasını düzenleyin. Mevcut veritabanı yapılandırması "default" olarak adlandırılır. Yeni yapılandırmanızı aşağıdaki örnekte gösterildiği gibi "custom" olarak adlandırın:
    $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 ve port, Postgres sunucusunun IP adresini ve bağlantı noktasını belirtir. Postgres, bağlantılar için 5432 numaralı bağlantı noktasını kullanır.

  6. Tar tabanlı portalda Postgres sürücüsünü yükleyin:
    1. Sürücüyü yüklemek için Yum'u kullanın:
      yum install php-pdo_pgsql
    2. /etc/php.ini dosyasını düzenleyerek aşağıdaki satırı dosyanın herhangi bir yerine ekleyin:
      extension=pgsql.so
    3. Apache'yi yeniden başlatın:
      service httpd restart
  7. tar tabanlı portalda, portal veritabanını RPM tabanlı portala taşıyın:
    1. Portala yönetici olarak giriş yapın.
    2. Drupal menüsünde Structure->Migrator'ı (Yapı->Taşıyıcı) seçin.
    3. Tar tabanlı portalda kaynak veritabanınızı (default) ve hedef veritabanınızı (custom) yukarıda gösterilen settings.php dosyasına göre seçin.
    4. Taşı'yı tıklayın. Tar tabanlı veritabanı, RPM tabanlı veritabanına taşınır.
  8. sites dizinini tar tabanlı sunucudan RPM tabanlı sunucuya kopyalayın. Aşağıdaki adımlarda gösterilen yollar, varsayılan yolları temel alır. Yüklemeniz için gerektiği şekilde değiştirin.
    1. Tar tabanlı portalda /var/www/html/sites dizinini paketleyin:
      cd /var/www/html/sites
      tar -cvzf /tmp/sites.tar.gz .
    2. RPM tabanlı sunucuda /tmp/sites.tar.gz dosyasını /opt/apigee/apigee-drupal/wwwroot/sites dizinine kopyalayın.
    3. Siteler dizinini açın ancak önemli dosyaların üzerine yazmayın.
      1. settings.php dosyasını yedekleyin:
        sudo cp /opt/apigee/apigee-drupal/wwwroot/sites/default/settings.php
          /opt/apigee/apigee-drupal/wwwroot/sites/default/settings.bak.php
      2. Mevcut files dizinini yedekleyin:
        sudo mv /opt/apigee/apigee-drupal/wwwroot/sites/default/files
          /opt/apigee/apigee-drupal/wwwroot/sites/default/files_old
      3. Mevcut sites dizinini yedekleyin:
        tar -cvzf /tmp/sites_old.tar.gz /opt/apigee/apigee-drupal/wwwroot/sites
      4. Tar tabanlı sunucudan sites dizinini açın ve çıkarın:
        gunzip /opt/apigee/apigee-drupal/wwwroot/sites/sites.tar.gz
        tar -xvf /opt/apigee/apigee-drupal/wwwroot/sites/sites.tar
      5. Kopyalanan dosyaların sahipliğinin doğru olduğundan emin olun:
        chown -R apigee:apigee /opt/apigee/apigee-drupal/wwwroot/sites/
      6. settings.php dosyasını geri yükleyin:
        sudo cp /opt/apigee/apigee-drupal/wwwroot/sites/default/settings.bak.php
          /opt/apigee/apigee-drupal/wwwroot/sites/default/settings.php
      7. Gizli dosyaları yeni konuma taşıyın:
        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/private
        chown -R apigee:apigee /opt/apigee/data/apigee-sap-drupal-devportal/private
  9. tar tabanlı portalda, yalnızca tar tabanlı portalda web kök dizininin yolunu varsayılan /var/www/html yolundan değiştirdiyseniz: drush status komutunu çalıştırın ve files yoluna ve private files yoluna bakın:
    cd /var/www/html
    drush status

    Dosyalar/özel dosyalar sites dizininde değilse bunları yukarıda gösterildiği gibi RPM tabanlı sunucuya kopyalayın.

  10. RPM tabanlı portalda, varsayılan veritabanının özelliklerini ayarlamak için /opt/apigee/apigee-drupal/wwwroot/sites/default/settings.php dosyasını güncelleyin:
    vi /opt/apigee/apigee-drupal/wwwroot/sites/default/settings.php

    settings.php dosyasında varsayılan veritabanı açıklamasını ayarlayın:

    $databases = array (
      'default' =>
      array (
        'default' =>
        array (
          'database' => 'newportaldb',
          'username' => 'apigee',
          'password' => 'postgres',
          'host' => 'localhost', 'port' => '5432',
          'driver' => 'pgsql',
          'prefix' => '',
        )
      )
    );

    Burada database, oluşturduğunuz yeni veritabanını belirtir, username ve password, tar tabanlı portalda özel veritabanı için tanımlandığı gibidir ve prefix boştur.

  11. RPM tabanlı portalda, portalın RPM tabanlı sürümü, tar tabanlı sürümden daha az Drupal modülü içerir. RPM tabanlı portala geçiş yaptıktan sonra eksik modül olup olmadığını kontrol etmeniz ve gerekli modülleri yüklemeniz gerekir.
    1. Eksik modülleri tespit etmek için kullanılan Drupal missing_module modülünü yükleyin:
      cd /opt/apigee/apigee-drupal/wwwroot
      drush dl missing_module
      drush en missing_module
    2. RPM tabanlı portalda yönetici olarak oturum açın.
    3. Drupal menüsünde Reports > Status reports'u (Raporlar > Durum raporları) seçin ve eksik modül olup olmadığını kontrol edin.
    4. Eksik modülleri yüklemek için bu raporu veya aşağıdaki komutları kullanın:
      cd /opt/apigee/apigee-drupal/wwwroot
      drush dl <moduleA> <moduleB> ...
      drush en <moduleA> <moduleB> ...
    5. Tüm modülleri etkinleştirdikten sonra dosyaların apigee kullanıcısına ait olduğundan emin olun:
      chown -LR apigee:apigee /opt/apigee/apigee-drupal/wwwroot

      Dosya izinleri hakkında daha fazla bilgi için https://www.drupal.org/node/244924 adresini ziyaret edin.

  12. RPM tabanlı portalda, eksik modüllerle ilgili hataları kaldırmak için bir tarayıcıda update.php dosyasını çalıştırın:
    1. RPM tabanlı portalda yönetici olarak oturum açın.
    2. Tarayıcıda aşağıdaki URL'ye gidin:
      http://portal_IP_or_DNS:8079/update.php

      portal_IP_or_DNS, RPM tabanlı portalın IP adresi veya alan adıdır.

    3. Ekranda gösterilen talimatları uygulayın.
  13. DNS girişlerini yeni RPM tabanlı portalınıza yönlendirecek şekilde güncelleyin.

    Portalın RPM tabanlı sürümünün varsayılan olarak 8079 numaralı bağlantı noktasını, tar tabanlı sürümünün ise 80 numaralı bağlantı noktasını kullandığını unutmayın. DNS girişinizde doğru bağlantı noktası numarasını kullandığınızdan emin olun. Farklı bir bağlantı noktası kullanma hakkında bilgi için Portal tarafından kullanılan HTTP bağlantı noktasını ayarlama başlıklı makaleyi inceleyin.

Dönüştürme işlemi tamamlandı.