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

Edge for Private Cloud v4.18.01

نسخه 4.18.01 درگاه «خدمات توسعه‌دهندگان» به شما اجازه نمی‌دهد نسخه قبلی درگاه مبتنی بر tar را به‌روز کنید. فقط می‌توانید نسخه مبتنی بر RPM درگاه را مستقیماً به نسخه ۴.۱۸.۰۱ به‌روز کنید.

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

می‌توانید بسیاری از نسخه‌های قبلی درگاه مبتنی بر tar را به درگاه مبتنی بر RPM منتقل کنید، ازجمله نسخه‌های 4.16.09 و 4.17.01، نه فقط نسخه 4.17.05. تنها شرط لازم این است که پرتال با Drupal 7 یا نسخه‌های جدیدتر اجرا شود. برای بررسی نسخه Drupal خود، در منو Drupal، گزارش‌ها > گزارش‌های وضعیت را انتخاب کنید. نسخه Drupal در ردیف اول برونداد نشان داده می‌شود.

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

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

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

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

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

/opt/apigee/apigee-drupal

به:

/opt/apigee/apigee-drupal/wwwroot

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

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

  1. نسخه 4.18.01 مبتنی بر RPM از درگاه «خدمات توسعه‌دهنده» را در گرهی متفاوت از درگاه مبتنی بر tar نصب کنید.
  2. در پورتال مبتنی بر «درآمد به‌ازای هر هزار بازدید»، پایگاه داده جدید 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. واحدها را در منو Drupal انتخاب کنید.
    7. واحد DBTNG Migrator را فعال کنید.
    8. پیکربندی را ذخیره کنید.
  5. در درگاه مبتنی بر tar، /var/www/html/sites/default/settings.php را ویرایش کنید تا پیکربندی پایگاه داده دوم را اضافه کنید که به پایگاه داده تازه ایجادشده در درگاه مبتنی بر RPM اشاره می‌کند. پیکربندی پایگاه داده فعلی با نام پیش‌فرض نام‌گذاری شده است. نام پیکربندی جدید سفارشی:
    $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' => '',
            )
          )
        );

    که در آن میزبان و درگاه نشانی 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. ساختار->انتقال‌دهنده را در منو Drupal انتخاب کنید.
    3. پایگاه داده مبدأ خود را در درگاه مبتنی بر tar، پیش‌فرض، و پایگاه داده مقصد، سفارشی، براساس فایل settings.php نشان‌داده‌شده در بالا انتخاب کنید.
    4. روی انتقال کلیک کنید. پایگاه داده مبتنی بر tar به پایگاه داده مبتنی بر RPM انتقال داده می‌شود.
  8. دایرکتوری سایت‌ها را از سرور مبتنی بر 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. از دایرکتوری سایت‌ها موجود پشتیبان‌گیری کنید:
        > tar -cvzf /tmp/sites_old.tar.gz /opt/apigee/apigee-drupal/wwwroot/sites
      4. فایل sites را از سرور مبتنی بر 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


    اگر files/private files زیر دایرکتوری sites نیستند، آن‌ها را همان‌طور که در بالا نشان داده شده است در سرور مبتنی بر RPM کپی کنید.
  10. در درگاه مبتنی بر «درآمد به‌ازای هر هزار بازدید»، /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. در درگاه مبتنی بر «درآمد به‌ازای هر هزار بازدید»، نسخه مبتنی بر «درآمد به‌ازای هر هزار بازدید» درگاه نسبت به نسخه مبتنی بر tar دارای واحدهای Drupal کمتری است. پس‌از انتقال به درگاه مبتنی بر RPM، باید هرگونه واحد گمشده را بررسی کنید و درصورت نیاز آن‌ها را نصب کنید.
    1. missing_module مربوط به Drupal را که برای شناسایی پیمانه‌های ازدست‌رفته استفاده می‌شود نصب کنید:
      > 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 اشاره کنند.

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

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