یک پورتال مبتنی بر tar را به یک پورتال مبتنی بر RPM تبدیل کنید

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

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

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

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

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

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

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

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

/opt/apigee/apigee-drupal

به:

/opt/apigee/apigee-drupal/wwwroot

روش تبدیل پورتال

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

  1. نسخه 4.18.05 مبتنی بر RPM پورتال را در گره ای متفاوت از پورتال مبتنی بر تار خود نصب کنید.
  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 اشاره دارد، اضافه کنید. پیکربندی فعلی پایگاه داده «پیش‌فرض» نام دارد. همانطور که در مثال زیر نشان داده شده است، پیکربندی جدید خود را "سفارشی" نامگذاری کنید:
    $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 از پورت 5432 برای اتصالات استفاده می کند.

  6. در پورتال مبتنی بر tar ، درایور Postgres را نصب کنید:
    1. از Yum برای نصب درایور استفاده کنید:
      yum install php-pdo_pgsql
    2. /etc/php.ini را ویرایش کنید تا خط زیر را در هر جایی از فایل اضافه کنید:
      extension=pgsql.so
    3. راه اندازی مجدد آپاچی:
      service httpd restart
  7. در پورتال مبتنی بر tar ، پایگاه داده پورتال را به پورتال مبتنی بر RPM منتقل کنید:
    1. به عنوان ادمین وارد پورتال شوید.
    2. Structure->Migrator را در منوی دروپال انتخاب کنید.
    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 از سرور مبتنی بر تار از حالت فشرده خارج کرده و از حالت تار خارج کنید:
        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 پورتال دارای ماژول های دروپال کمتری نسبت به نسخه مبتنی بر tar است. پس از انتقال به پورتال مبتنی بر RPM، باید ماژول های گم شده را بررسی کنید و در صورت لزوم آنها را نصب کنید.
    1. Drupal missing_module مورد استفاده برای شناسایی ماژول های از دست رفته را نصب کنید:
      cd /opt/apigee/apigee-drupal/wwwroot
      drush dl missing_module
      drush en missing_module
    2. به عنوان ادمین وارد پورتال مبتنی بر RPM شوید.
    3. گزارش ها > گزارش های وضعیت را در منوی دروپال انتخاب کنید و ماژول های گم شده را بررسی کنید.
    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. ورودی های DNS را به روز کنید تا به پورتال جدید مبتنی بر RPM خود اشاره کنید.

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

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