tar-ভিত্তিক পোর্টালকে RPM-ভিত্তিক পোর্টাল হিসেবে পরিবর্তন করা

Apigee Developer Services পোর্টালের (বা সহজভাবে, পোর্টাল) 4.18.05 রিলিজ আপনাকে পোর্টালের আগের tar-ভিত্তিক ভার্সন আপডেট করতে দেয় না। আপনি শুধুমাত্র RPM-ভিত্তিক পোর্টালের ভার্সন 4.18.05-এ সরাসরি আপডেট করতে পারবেন।

তবে, আপনি পোর্টালের tar-ভিত্তিক ভার্সনকে পোর্টালের 4.18.05 RPM-ভিত্তিক ইনস্ট্যান্সে কনভার্ট করতে পারবেন। এই প্রসেসের অংশ হিসেবে, আপনি আগে থেকে থাকা পোর্টালের MySQL/MariaDB-কে Postgres ডেটাবেসে মাইগ্রেট করেন। রূপান্তরিত হয়ে যাওয়ার পরে, আপনার পোর্টাল RPM-ভিত্তিক পোর্টাল হিসেবেই থেকে যায়।

আপনি 4.17.05 ভার্সন ছাড়াও 4.16.09 ও 4.17.01 সহ tar-ভিত্তিক পোর্টালের অনেক আগের ভার্সন RPM-ভিত্তিক পোর্টালে মাইগ্রেট করতে পারবেন। একমাত্র প্রয়োজন হল যে পোর্টালে Drupal 7 বা তার পরবর্তী যেকোনও ভার্সন চলতে হবে। আপনার Drupal-এর ভার্সন চেক করতে, Drupal মেনুতে রিপোর্ট > স্ট্যাটাস রিপোর্ট বিকল্প বেছে নিন। আউটপুটের প্রথম সারিতে Drupal-এর ভার্সন দেখা যায়।

tar-ভিত্তিক পোর্টাল থেকে RPM-ভিত্তিক পোর্টালে মাইগ্রেট করার জন্য আপনি যে হাই-লেভেল ধাপগুলি ব্যবহার করেন সেগুলি হল:

  • নতুন নোডে পোর্টালের RPM-ভিত্তিক 4.18.05 ভার্সন ইনস্টল করুন।
  • RPM-ভিত্তিক পোর্টাল-এ নতুন Postgres ডেটাবেস তৈরি করুন।
  • tar-ভিত্তিক পোর্টাল থেকে পোর্টাল ডেটাবেস মাইগ্রেট করুন।
  • RPM-ভিত্তিক পোর্টালে tar-ভিত্তিক পোর্টাল থেকে সব অ্যাক্সেসরি ফাইল কপি করুন।
  • নতুন RPM-ভিত্তিক পোর্টালের দিকে পয়েন্ট করার জন্য ডিএনএস এন্ট্রি আপডেট করুন।

    মনে রাখবেন, পোর্টালের RPM-ভিত্তিক ভার্সন ডিফল্ট হিসেবে পোর্ট ৮০৭৯ ব্যবহার করে, যেখানে tar-ভিত্তিক ভার্সন পোর্ট ৮০ ব্যবহার করে। আপনার DNS এন্ট্রিতে সঠিক পোর্ট নম্বর ব্যবহার করছেন কিনা তা নিশ্চিত করুন। অন্য পোর্ট ব্যবহার করা সম্পর্কে তথ্য পেতে, পোর্টাল দ্বারা ব্যবহৃত HTTP পোর্ট সেট করুন লিঙ্কে দেখুন।

কনভার্সনের পরে নতুন ডিফল্ট ইনস্টলেশন ডিরেক্টরি

Nginx/Postgres ব্যবহার করে এমন কোনও ইনস্টলেশন আপডেট করার পরে, রুট ডিরেক্টরি পরিবর্তন করা হয়েছে এখান থেকে:

/opt/apigee/apigee-drupal

 এখানে:

/opt/apigee/apigee-drupal/wwwroot

পোর্টাল কনভার্সন পদ্ধতি

পোর্টালকে RPM-ভিত্তিক ইনস্টলেশনে পরিবর্তন করতে:

  1. আপনার tar-ভিত্তিক পোর্টাল থেকে আলাদা নোডে RPM-ভিত্তিক 4.18.05 ভার্সন ইনস্টল করুন। পোর্টাল।
  2. RPM-ভিত্তিক পোর্টালে, নতুন Postgres ডেটাবেস তৈরি করুন। পরে, আপনি tar-ভিত্তিক পোর্টাল থেকে এই নতুন ডেটাবেসে ডেটাবেস মাইগ্রেট করেন:
    1. psql-এ লগ-ইন করুন:
      psql -h localhost -p 5432 -U apigee

      পোর্টাল কনফিগারেশন ফাইলে PG_PWD প্রপার্টিতে যেভাবে Postgres পাসওয়ার্ড লেখা আছে, ঠিক সেইভাবে লিখুন।

    2. নতুন Postgred ডেটাবেস তৈরি করুন:
      CREATE DATABASE newportaldb;
    3. psql থেকে বেরিয়ে আসা:
      \q
  3. টার-ভিত্তিক পোর্টালে, আর ব্যবহার করা হয় না এমন পুরনো মডিউল সরিয়ে দিন:

    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. টার-ভিত্তিক পোর্টালে, 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-ভিত্তিক পোর্টালে, RPM-ভিত্তিক পোর্টালে নতুন তৈরি করা ডেটাবেসের দিকে নির্দেশ করে এমন দ্বিতীয় ডেটাবেস কনফিগারেশন যোগ করতে, /var/www/html/sites/default/settings.php এডিট করুন। বর্তমান ডেটাবেস কনফিগারেশনের নাম হল "default"। আপনার নতুন কনফিগারেশনের নাম দিন নিচের উদাহরণে দেখানো হয়েছে:
    $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 ব্যবহার করে।

  6. tar-ভিত্তিক পোর্টালে, Postgres ড্রাইভার ইনস্টল করুন:
    1. ড্রাইভার ইনস্টল করতে Yum ব্যবহার করুন:
      yum install php-pdo_pgsql
    2. ফাইলে নিম্নলিখিত লাইনটি যেকোনও জায়গায় যোগ করতে /etc/php.ini এডিট করুন:
      extension=pgsql.so
    3. Apache রিস্টার্ট করুন:
      service httpd restart
  7. টার-ভিত্তিক পোর্টালে, পোর্টাল ডেটাবেসকে RPM-ভিত্তিক পোর্টালে মাইগ্রেট করুন:
    1. অ্যাডমিন হিসেবে পোর্টালে লগ-ইন করুন।
    2. Drupal মেনুতে স্ট্রাকচার->মাইগ্রেটর বিকল্প বেছে নিন।
    3. tar-ভিত্তিক পোর্টাল, default-এ আপনার সোর্স ডেটাবেস এবং উপরে দেখানো settings.php ফাইলের উপর ভিত্তি করে ডেস্টিনেশন ডেটাবেস, custom বেছে নিন।
    4. মাইগ্রেট করুন বিকল্পে ক্লিক করুন। tar-ভিত্তিক ডেটাবেস RPM-ভিত্তিক ডেটাবেসে মাইগ্রেট করা হয়।
  8. tar-ভিত্তিক সার্ভার থেকে RPM-ভিত্তিক সার্ভারে sites ডিরেক্টরি কপি করুন। নিম্নলিখিত ধাপে দেখানো পাথগুলি ডিফল্ট পাথের উপর ভিত্তি করে তৈরি করা হয়েছে। আপনার ইনস্টলেশনের জন্য প্রয়োজন অনুযায়ী সেগুলি পরিবর্তন করুন।
    1. tar-ভিত্তিক পোর্টাল থেকে, /var/www/html/sites ডিরেক্টরি বান্ডেল করুন:
      cd /var/www/html/sites
      tar -cvzf /tmp/sites.tar.gz .
    2. RPM-ভিত্তিক সার্ভারে /tmp/sites.tar.gz থেকে /opt/apigee/apigee-drupal/wwwroot/sites কপি করুন।
    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. tar-ভিত্তিক সার্ভার থেকে 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-ভিত্তিক ভার্সনের তুলনায় কম Drupal মডিউল থাকে। 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. ব্রাউজারে, নিম্নলিখিত URL-এ নেভিগেট করুন:
      http://portal_IP_or_DNS:8079/update.php

      যেখানে portal_IP_or_DNS হল RPM-ভিত্তিক পোর্টালের IP অ্যাড্রেস বা ডোমেন নাম।

    3. স্ক্রিনে দেখানো প্রম্পট অনুসরণ করুন।
  13. আপনার নতুন RPM-ভিত্তিক পোর্টালে পয়েন্ট করার জন্য ডিএনএস এন্ট্রি আপডেট করুন।

    মনে রাখবেন, পোর্টালের RPM-ভিত্তিক ভার্সন ডিফল্ট হিসেবে পোর্ট ৮০৭৯ ব্যবহার করে, যেখানে tar-ভিত্তিক ভার্সন পোর্ট ৮০ ব্যবহার করে। আপনার DNS এন্ট্রিতে সঠিক পোর্ট নম্বর ব্যবহার করছেন কিনা তা নিশ্চিত করুন। অন্য পোর্ট ব্যবহার করা সম্পর্কে আরও জানতে পোর্টালে ব্যবহৃত HTTP পোর্ট সেট করুন।

কনভার্সন সম্পূর্ণ হয়ে গেছে।