تبدیل درگاه مبتنی بر tar به درگاه مبتنی بر RPM

نسخه 4.18.05 درگاه Apigee Developer Services (یا به‌طور خلاصه، درگاه) به شما اجازه نمی‌دهد نسخه قبلی درگاه مبتنی بر tar را به‌روز کنید. فقط می‌توانید نسخه مبتنی بر RPM درگاه را مستقیماً به 4.18.05 به‌روز کنید.

بااین‌حال، می‌توانید نسخه مبتنی بر tar پورتال را به نمونه مبتنی بر RPM نسخه ۴.۱۸.۰۵ پورتال تبدیل کنید. به‌عنوان بخشی از این فرایند، MySQL/MariaDB پورتال موجود را به پایگاه داده Postgres منتقل می‌کنید. پس‌از تبدیل، درگاه شما به‌عنوان درگاه مبتنی بر «درآمد به‌ازای هر هزار بازدید» باقی می‌ماند.

می‌توانید بسیاری از نسخه‌های قبلی درگاه مبتنی بر tar را به درگاه مبتنی بر RPM منتقل کنید، ازجمله نسخه‌های ۴.۱۶.۰۹ و ۴.۱۷.۰۱، نه فقط نسخه ۴.۱۷.۰۵. تنها شرط این است که پرتال Drupal 7 یا بالاتر را اجرا کند. برای بررسی نسخه Drupal، در منو Drupal، گزارش‌ها > گزارش‌های وضعیت را انتخاب کنید. نسخه Drupal در ردیف اول خروجی نشان داده می‌شود.

مراحل سطح بالایی که برای انتقال از درگاه مبتنی بر tar به درگاه مبتنی بر RPM استفاده می‌کنید عبارتند از:

  • نسخه RPM-based 4.18.05 درگاه را در گره جدیدی نصب کنید.
  • پایگاه داده Postgres جدیدی در درگاه مبتنی بر RPM ایجاد کنید.
  • پایگاه داده درگاه را از درگاه مبتنی بر tar انتقال دهید.
  • همه فایل‌های جانبی را از درگاه مبتنی بر tar به درگاه مبتنی بر RPM کپی کنید.
  • ورودی‌های ساناد را به‌روز کنید تا به درگاه جدید مبتنی بر RPM اشاره کنند.

    توجه داشته باشید که نسخه مبتنی بر RPM پورتال به‌طور پیش‌فرض از درگاه ۸۰۷۹ استفاده می‌کند، درحالی‌که نسخه مبتنی بر tar از درگاه ۸۰ استفاده می‌کند. مطمئن شوید از شماره درگاه صحیح در ورودی ساناد استفاده می‌کنید. برای کسب اطلاعات درباره استفاده از درگاه متفاوت، تنظیم درگاه HTTP مورداستفاده پورتال را ببینید.

دایرکتوری نصب پیش‌فرض جدید پس‌از تبدیل

پس‌از به‌روزرسانی نصبی که اکنون از NGINX/Postgres استفاده می‌کند، دایرکتوری ریشه از:

/opt/apigee/apigee-drupal

به:

/opt/apigee/apigee-drupal/wwwroot

رویه تبدیل درگاه

برای تبدیل درگاه به نصب مبتنی بر RPM:

  1. نسخه 4.18.05 مبتنی بر RPM پورتال را در گره‌ای متفاوت از پورتال مبتنی بر tar خود نصب کنید.
  2. در درگاه مبتنی بر RPM، پایگاه داده Postgres جدیدی ایجاد کنید. بعداً، پایگاه داده را از درگاه مبتنی بر tar به این پایگاه داده جدید منتقل می‌کنید:
    1. به سیستم psql وارد شوید:
      psql -h localhost -p 5432 -U apigee

      گذرواژه Postgres خود را همان‌طور که با ویژگی PG_PWD در فایل پیکربندی پورتال تعریف شده است وارد کنید.

    2. ایجاد پایگاه داده Postgred جدید:
      CREATE DATABASE newportaldb;
    3. خروج از psql:
      \q
  3. در درگاه مبتنی بر 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';"
  4. در درگاه مبتنی بر tar، ماژول Migrator Drupal را نصب و پیکربندی کنید:
    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. به‌عنوان سرپرست به سیستم درگاه وارد شوید.
    6. Modules (واحدها) را در منو Drupal انتخاب کنید.
    7. واحد DBTNG Migrator را فعال کنید.
    8. پیکربندی را ذخیره کنید.
  5. در درگاه مبتنی بر tar، /var/www/html/sites/default/settings.php را ویرایش کنید تا پیکربندی پایگاه داده دومی را اضافه کنید که به پایگاه داده تازه ایجادشده در درگاه مبتنی بر RPM اشاره می‌کند. پیکربندی پایگاه داده فعلی «پیش‌فرض» نام دارد. نام پیکربندی جدیدتان را «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 نشانی IP و درگاه سرور Postgres را مشخص می‌کنند. Postgres از درگاه ۵۴۳۲ برای اتصالات استفاده می‌کند.

  6. در درگاه مبتنی بر tar، درایور Postgres را نصب کنید:
    1. از Yum برای نصب درایور استفاده کنید:
      yum install php-pdo_pgsql
    2. /etc/php.ini را ویرایش کنید تا خط زیر را در هرجایی از فایل اضافه کنید:
      extension=pgsql.so
    3. بازراه‌اندازی Apache:
      service httpd restart
  7. در درگاه مبتنی بر tar، پایگاه داده درگاه را به درگاه مبتنی بر RPM منتقل کنید:
    1. به‌عنوان سرپرست به سیستم درگاه وارد شوید.
    2. Structure->Migrator را در منو Drupal انتخاب کنید.
    3. پایگاه داده مبدأ خود را در درگاه مبتنی بر tar،‏ default، و پایگاه داده مقصد، custom، را براساس فایل settings.php نشان‌داده‌شده در بالا انتخاب کنید.
    4. روی انتقال کلیک کنید. پایگاه داده مبتنی بر tar به پایگاه داده مبتنی بر RPM منتقل می‌شود.
  8. فهرست راهنمای sites را از سرور مبتنی بر tar به سرور مبتنی بر RPM کپی کنید. مسیرهای نشان‌داده‌شده در مراحل زیر براساس مسیرهای پیش‌فرض است. درصورت لزوم آن‌ها را برای نصب خود تغییر دهید.
    1. در درگاه مبتنی بر tar، دایرکتوری /var/www/html/sites را بسته‌بندی کنید:
      cd /var/www/html/sites
      tar -cvzf /tmp/sites.tar.gz .
    2. /tmp/sites.tar.gz را در /opt/apigee/apigee-drupal/wwwroot/sites در سرور مبتنی بر RPM کپی کنید.
    3. دایرکتوری سایت‌ها را از حالت بسته‌ای خارج کنید، اما فایل‌های مهم را رونویسی نکنید.
      1. از فایل settings.php پشتیبان‌گیری کنید:
        sudo cp /opt/apigee/apigee-drupal/wwwroot/sites/default/settings.php
          /opt/apigee/apigee-drupal/wwwroot/sites/default/settings.bak.php
      2. از فهرست راهنمای files موجود پشتیبان‌گیری کنید:
        sudo mv /opt/apigee/apigee-drupal/wwwroot/sites/default/files
          /opt/apigee/apigee-drupal/wwwroot/sites/default/files_old
      3. از فهرست راهنمای sites موجود پشتیبان‌گیری کنید:
        tar -cvzf /tmp/sites_old.tar.gz /opt/apigee/apigee-drupal/wwwroot/sites
      4. دایرکتوری sites را از سرور مبتنی بر tar از حالت فشرده و tar خارج کنید:
        gunzip /opt/apigee/apigee-drupal/wwwroot/sites/sites.tar.gz
        tar -xvf /opt/apigee/apigee-drupal/wwwroot/sites/sites.tar
      5. مطمئن شوید که فایل‌های کپی‌شده مالکیت مناسبی داشته باشند:
        chown -R apigee:apigee /opt/apigee/apigee-drupal/wwwroot/sites/
      6. بازیابی فایل settings.php:
        sudo cp /opt/apigee/apigee-drupal/wwwroot/sites/default/settings.bak.php
          /opt/apigee/apigee-drupal/wwwroot/sites/default/settings.php
      7. انتقال فایل‌های خصوصی به مکان جدید:
        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، فقط اگر مسیر دایرکتوری ریشه وب را در درگاه مبتنی بر tar از مسیر پیش‌فرض /var/www/html تغییر داده‌اید: drush status را اجرا کنید و به مسیر files و مسیر private files نگاه کنید:
    cd /var/www/html
    drush status

    اگر فایل‌ها/فایل‌های خصوصی در فهرست راهنمای sites نیستند، آن‌ها را در سرور مبتنی بر RPM کپی کنید (همان‌طور که در بالا نشان داده شده است).

  10. در درگاه مبتنی بر 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 خالی است.

  11. در درگاه مبتنی بر RPM، نسخه مبتنی بر RPM درگاه حاوی ماژول‌های Drupal کمتری نسبت به نسخه مبتنی بر tar است. پس‌از انتقال به درگاه مبتنی بر RPM، باید وجود هرگونه ماژول مفقود را بررسی کنید و درصورت لزوم آن‌ها را نصب کنید.
    1. Drupal missing_module را که برای شناسایی واحدهای مفقود استفاده می‌شود نصب کنید:
      cd /opt/apigee/apigee-drupal/wwwroot
      drush dl missing_module
      drush en missing_module
    2. به‌عنوان سرپرست به سیستم درگاه مبتنی بر RPM وارد شوید.
    3. گزارش‌ها > گزارش‌های وضعیت را در منو Drupal انتخاب کنید و بررسی کنید که آیا واحدی وجود دارد که ازقلم افتاده باشد.
    4. از آن گزارش برای نصب هرگونه ماژول مفقود استفاده کنید، یا از فرمان‌های زیر استفاده کنید:
      cd /opt/apigee/apigee-drupal/wwwroot
      drush dl <moduleA> <moduleB> ...
      drush en <moduleA> <moduleB> ...
    5. پس‌از فعال کردن همه ماژول‌ها، مطمئن شوید که فایل‌ها متعلق به کاربر apigee است:
      chown -LR apigee:apigee /opt/apigee/apigee-drupal/wwwroot

      برای اطلاعات بیشتر درباره اجازه‌های فایل، به https://www.drupal.org/node/244924 مراجعه کنید.

  12. در درگاه مبتنی بر RPM، update.php را در مرورگر اجرا کنید تا هرگونه خطای مربوط به ماژول‌های مفقودشده برطرف شود:
    1. به‌عنوان سرپرست به سیستم درگاه مبتنی بر RPM وارد شوید.
    2. در مرورگر، به نشانی وب زیر بروید:
      http://portal_IP_or_DNS:8079/update.php

      که portal_IP_or_DNS نشانی IP یا نام دامنه درگاه مبتنی بر RPM است.

    3. پیام‌واره‌های روی صفحه را دنبال کنید.
  13. ورودی‌های ساناد را به‌روز کنید تا به درگاه جدید مبتنی بر RPM شما اشاره کنند.

    توجه داشته باشید که نسخه مبتنی بر RPM پورتال به‌طور پیش‌فرض از درگاه ۸۰۷۹ استفاده می‌کند، درحالی‌که نسخه مبتنی بر tar از درگاه ۸۰ استفاده می‌کند. مطمئن شوید از شماره درگاه صحیح در ورودی ساناد استفاده می‌کنید. برای اطلاعات بیشتر درباره استفاده از درگاه متفاوت، تنظیم درگاه HTTP مورداستفاده پورتال را ببینید.

تبدیل کامل شد.