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

Edge for Private Cloud เวอร์ชัน 4.17.09

พอร์ทัล Developer Services รุ่น 4.17.09 ไม่อนุญาตให้อัปเดตพอร์ทัลเวอร์ชันที่ใช้ Tar ก่อนหน้า คุณสามารถอัปเดตพอร์ทัลเวอร์ชันที่ใช้ RPM เป็น 4.17.09 ได้โดยตรงเท่านั้น

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

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

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

  • ติดตั้งพอร์ทัลบริการสำหรับนักพัฒนาซอฟต์แวร์เวอร์ชัน 4.17.09 ที่ใช้ 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. ติดตั้งพอร์ทัล Developer Services เวอร์ชัน 4.17.09 ที่ใช้ 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 ให้ติดตั้งและกำหนดค่าโมดูล 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 ให้ย้ายข้อมูลฐานข้อมูลพอร์ทัลไปยังพอร์ทัลที่ใช้ RPM โดยทำดังนี้
    1. เข้าสู่ระบบพอร์ทัลในฐานะผู้ดูแลระบบ
    2. เลือก Structure->Migrator ในเมนู Drupal
    3. เลือกฐานข้อมูลต้นทางในพอร์ทัลที่ใช้ tar, ค่าเริ่มต้น และฐานข้อมูลปลายทาง กำหนดเอง โดยอิงตามไฟล์ 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. แตกไฟล์ ZIP และไฟล์ 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 และดูเส้นทางไฟล์และเส้นทางไฟล์ส่วนตัว
    > 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. ติดตั้ง missing_module ของ Drupal ที่ใช้ตรวจหาโมดูลที่ขาดหายไป:
      > 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 ที่พอร์ทัลใช้

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