แปลงพอร์ทัลที่ใช้ tar เป็นพอร์ทัล RPM

Edge for Private Cloud v4.19.01

พอร์ทัล Apigee Developer Services เวอร์ชัน 4.18.05 (หรือเรียกสั้นๆ ว่าพอร์ทัล) ไม่อนุญาตให้อัปเดตพอร์ทัลเวอร์ชันที่ใช้ไฟล์ 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 เท่านั้น ข้อกำหนดเพียงอย่างเดียวคือพอร์ทัลต้องใช้ Drupal 7 ขึ้นไป หากต้องการตรวจสอบเวอร์ชันของ Drupal ให้เลือกรายงาน > รายงานสถานะในเมนู Drupal เวอร์ชันของ Drupal จะปรากฏในแถวแรกของเอาต์พุต

ขั้นตอนระดับสูงที่คุณใช้ในการย้ายข้อมูลจากพอร์ทัลที่ใช้ 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 ในโหนดอื่นจากพอร์ทัลที่ใช้ tar
  2. ในพอร์ทัลที่ใช้ RPM ให้สร้างฐานข้อมูล Postgres ใหม่ จากนั้น คุณจะย้ายข้อมูลฐานข้อมูลจากพอร์ทัลที่ใช้ TAR ไปยังฐานข้อมูลใหม่นี้
    1. เข้าสู่ระบบ psql โดยทำดังนี้
      psql -h localhost -p 5432 -U apigee

      ป้อนรหัสผ่าน Postgres ตามที่กำหนดโดยพร็อพเพอร์ตี้ PG_PWD ในไฟล์การกำหนดค่าพอร์ทัล

    2. สร้างฐานข้อมูล Postgres ใหม่โดยทำดังนี้
      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 เพื่อเพิ่มการกำหนดค่าฐานข้อมูลที่ 2 ซึ่งชี้ไปยังฐานข้อมูลที่สร้างขึ้นใหม่ในพอร์ทัลที่ใช้ RPM การกำหนดค่าฐานข้อมูลปัจจุบันชื่อ "default" ตั้งชื่อการกำหนดค่าใหม่ว่า "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 ใช้พอร์ต 5432 สำหรับการเชื่อมต่อ

  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. แตกไฟล์และ Untar ไดเรกทอรี 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

    หากไฟล์/ไฟล์ส่วนตัวไม่ได้อยู่ในไดเรกทอรี 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. ในเบราว์เซอร์ ให้ไปที่ URL ต่อไปนี้
      http://portal_IP_or_DNS:8079/update.php

      โดยที่ portal_IP_or_DNS คือที่อยู่ IP หรือชื่อโดเมนของพอร์ทัลที่ใช้ RPM

    3. ทำตามข้อความที่ปรากฏบนหน้าจอ
  13. อัปเดตรายการ DNS ให้ชี้ไปยังพอร์ทัลที่ใช้ RPM ใหม่

    โปรดทราบว่าพอร์ทัลเวอร์ชันที่ใช้ RPM จะใช้พอร์ต 8079 โดยค่าเริ่มต้น ส่วนเวอร์ชันที่ใช้ tar จะใช้พอร์ต 80 ตรวจสอบว่าคุณใช้หมายเลขพอร์ตที่ถูกต้องในรายการ DNS ดูข้อมูลเกี่ยวกับการใช้พอร์ตอื่นได้ที่หัวข้อตั้งค่าพอร์ต HTTP ที่พอร์ทัลใช้

การแปลงเสร็จสมบูรณ์แล้ว