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

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

พอร์ทัลบริการสำหรับนักพัฒนาซอฟต์แวร์รุ่น 4.17.09 ไม่อนุญาตให้คุณอัปเดตพอร์ทัลเวอร์ชันก่อนหน้าที่ใช้ tar คุณอัปเดตพอร์ทัลเวอร์ชันที่ใช้ RPM เป็น 4.17.09 ได้โดยตรงเท่านั้น

แต่คุณแปลงพอร์ทัลเวอร์ชัน tar เป็น 4.17.09 สำหรับอินสแตนซ์ที่ใช้ 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.17.09 บนโหนดใหม่
  • สร้างฐานข้อมูล 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.17.09 ในโหนดอื่นจากพอร์ทัลแบบ 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-api type 'prefix_type 'DELETE_system;"
    > drush sql-query where --db-prefix type "DELETE from {system} where name = 'apigee_account' AND type = 'module ';"
    > drush-api type {prefix_system'publish_type;"

  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-based ให้แก้ไข /var/www/html/sites/default/settings.php เพื่อเพิ่มการกำหนดค่าฐานข้อมูลที่สองซึ่งชี้ไปยังฐานข้อมูลที่สร้างขึ้นใหม่ในพอร์ทัลแบบ 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' => '',
            )
          )
        );

    ที่โฮสต์และพอร์ตระบุที่อยู่ 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, ค่าเริ่มต้น และฐานข้อมูลปลายทางแบบกำหนดเอง โดยอิงตามไฟล์ settings.php ที่แสดงด้านบน
    4. คลิกย้ายข้อมูล ระบบจะย้ายข้อมูลฐานข้อมูลแบบ tar ไปยังฐานข้อมูลที่อิงตาม RPM
  8. คัดลอกไดเรกทอรี sites จากเซิร์ฟเวอร์ที่ใช้ tar ไปยังเซิร์ฟเวอร์ที่ใช้ RPM
    เส้นทางที่แสดงในขั้นตอนต่อไปนี้อิงตามเส้นทางเริ่มต้น แก้ไขตามที่จำเป็นสำหรับการติดตั้ง
    1. ในพอร์ทัล tar-based ให้จัดกลุ่มไดเรกทอรี /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. แตกไฟล์และแตกไฟล์ไดเรกทอรี 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-drugee-devportal/private<br class="ph-2-0ph">



  9. ในพอร์ทัล tar-based เฉพาะเมื่อคุณเปลี่ยนเส้นทางไปยังไดเรกทอรีรากของเว็บในพอร์ทัล tar จากเส้นทางเริ่มต้นของ /var/www/html: เรียกใช้สถานะ drush และดูเส้นทางไฟล์และเส้นทางไฟล์ส่วนตัว
    > cd /var/www/html
    > สถานะ drush


    หากไฟล์ RPM แสดงที่ด้านล่างไดเรกทอรี/ไฟล์ส่วนตัว

    หากไฟล์ RPM แสดงใต้ไดเรกทอรีเป็นไฟล์ส่วนตัว
    > cd /var/www/html
    > สถานะ drush


    หากไฟล์ RPM แสดงใต้ไดเรกทอรีเป็น RPM

    หากไฟล์ RPM แสดงใต้ไดเรกทอรีเป็น RPM

    หากเป็น 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' => '',
            )
          )
        );
    ซึ่งคุณกำหนดเป็นคำอธิบายฐานข้อมูลเริ่มต้นใน "settings.php":
    " กำหนดคำอธิบายฐานข้อมูลเริ่มต้นเป็น "ชื่อ" ใหม่"
    $databases = array (
          'default' =>
          array (
            'default' =>
            array (
              'database' => 'newportaldb',
              'username' => 'apigee',
              'password' => 'postgres',
              'host' => 'localhost', 'port' => '5432',
              'driver' => 'pgsql',
              '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 ที่พอร์ทัลใช้เพื่อดูข้อมูลเกี่ยวกับการใช้พอร์ตอื่น

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