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

Edge for Private Cloud v4.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 มีดังนี้

  • ติดตั้งพอร์ทัลเวอร์ชัน 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. สร้างฐานข้อมูล 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. เลือกโมดูลในเมนู 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. เลือกโครงสร้าง -> ผู้ย้ายข้อมูลในเมนู 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. แตกไฟล์และแตกไฟล์ tar ของไดเรกทอรี 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 ที่พอร์ทัลใช้

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