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

Edge สำหรับ Private Cloud เวอร์ชัน 4.18.05

พอร์ทัลบริการของนักพัฒนาซอฟต์แวร์ Apigee รุ่น 4.18.05 (หรือเรียกง่ายๆ ว่าพอร์ทัล) ไม่อนุญาตให้คุณอัปเดตพอร์ทัลเวอร์ชันก่อนหน้าที่ใช้ tar คุณอัปเดตพอร์ทัลเวอร์ชันที่ใช้ RPM เป็น 4.18.05 ได้โดยตรงเท่านั้น

แต่คุณแปลงพอร์ทัลเวอร์ชัน tar เป็น 4.18.05 สำหรับอินสแตนซ์ที่ใช้ RPM ได้ ขั้นตอนหนึ่งคือการย้ายข้อมูล MySQL/MariaDB ของพอร์ทัลที่มีอยู่ไปยังฐานข้อมูล Postgres เมื่อแปลงแล้ว พอร์ทัลของคุณจะยังคงเป็นพอร์ทัลแบบ RPM

คุณย้ายข้อมูลพอร์ทัลแบบ tar เวอร์ชันก่อนหน้าจำนวนมากไปยังพอร์ทัลแบบ RPM ได้ ซึ่งรวมถึงเวอร์ชัน 4.16.09 และ 4.17.01 ไม่ใช่แค่เวอร์ชัน 4.17.05 ข้อกำหนดเพียงอย่างเดียวคือพอร์ทัลใช้ Drupal 7 ขึ้นไป หากต้องการตรวจสอบเวอร์ชันของ Drupal ให้เลือกรายงาน > รายงานสถานะในเมนู Drupal เวอร์ชันของ Drupal ปรากฏในแถวแรกของเอาต์พุต

ขั้นตอนระดับสูงที่ใช้ในการย้ายข้อมูลจากพอร์ทัลแบบ Tar ไปยังพอร์ทัลแบบ RPM มีดังนี้

  • ติดตั้งพอร์ทัลเวอร์ชัน RPM 4.18.05 บนโหนดใหม่
  • สร้างฐานข้อมูล Postgres ใหม่บนพอร์ทัลที่ใช้ RPM
  • ย้ายฐานข้อมูลพอร์ทัลจากพอร์ทัล tar-based
  • คัดลอกไฟล์อุปกรณ์เสริมทั้งหมดจากพอร์ทัลแบบ tar ไปยังพอร์ทัลแบบ RPM
  • อัปเดตรายการ DNS ให้ชี้ไปยังพอร์ทัลใหม่ที่อิงตาม RPM

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

ไดเรกทอรีการติดตั้งเริ่มต้นใหม่หลังจากการแปลง

หลังจากอัปเดตการติดตั้งที่ใช้ Nginx/Postgres ในขณะนี้ ไดเรกทอรีรากได้เปลี่ยนจาก

/opt/apigee/apigee-drupal

กับ:

/opt/apigee/apigee-drupal/wwwroot

ขั้นตอนการแปลงพอร์ทัล

วิธีแปลงพอร์ทัลเป็นการติดตั้งแบบ RPM

  1. ติดตั้งพอร์ทัลเวอร์ชัน RPM 4.18.05 บนโหนดอื่นจากพอร์ทัลแบบ 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-based ให้นำโมดูลเก่าที่ไม่ได้ใช้แล้วออก:

    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 การกำหนดค่าฐานข้อมูลปัจจุบันมีชื่อว่า "ค่าเริ่มต้น" ตั้งชื่อการกำหนดค่าใหม่ว่า "กำหนดเอง" ตามตัวอย่างต่อไปนี้
    $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-based ให้ย้ายข้อมูลฐานข้อมูลพอร์ทัลไปยังพอร์ทัลแบบ RPM ดังนี้
    1. ลงชื่อเข้าสู่ระบบพอร์ทัลในฐานะผู้ดูแลระบบ
    2. เลือก Structure->Migrator ในเมนู Drupal
    3. เลือกฐานข้อมูลต้นทางในพอร์ทัลแบบ tar, default และฐานข้อมูลปลายทาง custom โดยอิงจากไฟล์ settings.php ที่แสดงด้านบน
    4. คลิกย้ายข้อมูล ระบบจะย้ายข้อมูลฐานข้อมูลแบบ tar ไปยังฐานข้อมูลที่อิงตาม RPM
  8. คัดลอกไดเรกทอรี sites จากเซิร์ฟเวอร์ที่ใช้ tar ไปยังเซิร์ฟเวอร์ที่ใช้ RPM เส้นทางที่แสดงในขั้นตอนต่อไปนี้อิงตามเส้นทางเริ่มต้น โดยแก้ไขตามที่จำเป็นสำหรับการติดตั้ง
    1. รวมไดเรกทอรี /var/www/html/sites ในพอร์ทัลแบบ tar:
      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:
        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-based เฉพาะเมื่อคุณเปลี่ยนเส้นทางไปยังไดเรกทอรีรากของเว็บในพอร์ทัล 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 ที่พอร์ทัลใช้เพื่อดูข้อมูลเกี่ยวกับการใช้พอร์ตอื่น

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