המרת פורטל מבוסס טאר לפורטל מבוסס על RPM

גרסה 4.18.05 של פורטל שירותי המפתחים של Apigee (או פשוט הפורטל) לא מאפשרת לעדכן גרסה קודמת של הפורטל שמבוססת על tar. אפשר לעדכן ישירות רק גרסה של הפורטל שמבוססת על 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 לוחצים על Reports > Status Reports. גרסת 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. יוצרים מסד נתונים חדש ב-Postgres:
      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. בתפריט של Drupal, בוחרים באפשרות Modules (מודולים).
    7. מפעילים את המודול DBTNG Migrator.
    8. שומרים את ההגדרה.
  5. בפורטל שמבוסס על tar, עורכים את /var/www/html/sites/default/settings.php כדי להוסיף הגדרה של מסד נתונים שני שמפנה למסד הנתונים החדש שנוצר בפורטל שמבוסס על 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, בוחרים באפשרות Structure->Migrator.
    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. מבטלים את הדחיסה של הספרייה 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. מתקינים את missing_module של Drupal שמשמש לזיהוי מודולים חסרים:
      cd /opt/apigee/apigee-drupal/wwwroot
      drush dl missing_module
      drush en missing_module
    2. מתחברים לפורטל מבוסס ה-RPM כאדמינים.
    3. בתפריט של Drupal, לוחצים על Reports > Status reports (דוחות > דוחות סטטוס) ובודקים אם חסרים מודולים.
    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 שמשמשת את הפורטל מוסבר איך להשתמש ביציאה אחרת.

ההמרה הושלמה.