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

Edge for Private Cloud v4.19.01

พอร์ทัลบริการสำหรับนักพัฒนาซอฟต์แวร์ Apigee เวอร์ชัน 4.18.05 (หรือเรียกง่ายๆ ว่าพอร์ทัล) ไม่อนุญาตให้คุณอัปเดต พอร์ทัลเวอร์ชัน tar-based คุณจะอัปเดตพอร์ทัลเวอร์ชันที่อิงตาม 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 ได้แก่

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

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

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

หลังจากอัปเดตการติดตั้งที่ใช้ 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. สร้างฐานข้อมูล 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 ให้ติดตั้งและกำหนดค่าโมดูล 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. รวมไดเรกทอรี /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. เลิกรวมไดเรกทอรีของ Sites แต่ไม่เขียนทับไฟล์สำคัญ
      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: run 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 โดยค่าเริ่มต้น เวอร์ชันใช้พอร์ต 80 ตรวจสอบว่าคุณใช้หมายเลขพอร์ตที่ถูกต้องในรายการ DNS โปรดดู ตั้งค่าพอร์ต HTTP ที่พอร์ทัลใช้สำหรับข้อมูลเกี่ยวกับ โดยใช้พอร์ตอื่น

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