Chuyển đổi cổng dựa trên tar sang cổng dựa trên RPM

Edge for Private Cloud phiên bản 4.19.01

Bản phát hành 4.18.05 của cổng Dịch vụ dành cho nhà phát triển Apigee (hoặc đơn giản là cổng) không cho phép bạn cập nhật phiên bản trước đó của cổng dựa trên tar. Bạn chỉ có thể trực tiếp cập nhật phiên bản dựa trên RPM của cổng thông tin lên phiên bản 4.18.05.

Tuy nhiên, bạn có thể chuyển đổi phiên bản dựa trên tar của cổng thông tin sang một phiên bản dựa trên RPM 4.18.05 của cổng thông tin. Trong quá trình này, bạn di chuyển MySQL/MariaDB của cổng thông tin hiện có sang cơ sở dữ liệu Postgres. Sau khi chuyển đổi, cổng thông tin của bạn vẫn là cổng thông tin dựa trên RPM.

Bạn có thể di chuyển nhiều phiên bản trước của cổng thông tin dựa trên tar sang cổng thông tin dựa trên RPM, bao gồm cả phiên bản 4.16.09 và 4.17.01, chứ không chỉ phiên bản 4.17.05. Yêu cầu duy nhất là cổng thông tin đang chạy Drupal 7 trở lên. Để kiểm tra phiên bản Drupal, hãy chọn Reports > Status Reports (Báo cáo > Báo cáo trạng thái) trong trình đơn Drupal. Phiên bản Drupal xuất hiện ở hàng đầu tiên của kết quả.

Các bước cấp cao mà bạn sử dụng để di chuyển từ cổng thông tin dựa trên tar sang cổng thông tin dựa trên RPM là:

  • Cài đặt phiên bản 4.18.05 dựa trên RPM của cổng thông tin trên một nút mới.
  • Tạo cơ sở dữ liệu Postgres mới trên cổng thông tin dựa trên RPM.
  • Di chuyển cơ sở dữ liệu cổng thông tin từ cổng thông tin dựa trên tar.
  • Sao chép tất cả tệp phụ kiện từ cổng thông tin dựa trên tar sang cổng thông tin dựa trên RPM.
  • Cập nhật các mục DNS để trỏ đến cổng thông tin mới dựa trên RPM.

    Xin lưu ý rằng phiên bản cổng thông tin dựa trên RPM sử dụng cổng 8079 theo mặc định, trong khi phiên bản dựa trên tar sử dụng cổng 80. Hãy đảm bảo bạn sử dụng đúng số cổng trong mục DNS. Hãy xem phần Đặt cổng HTTP mà cổng thông tin sử dụng để biết thông tin về cách sử dụng một cổng khác.

Thư mục cài đặt mặc định mới sau khi chuyển đổi

Sau khi cập nhật một bản cài đặt hiện sử dụng Nginx/Postgres, thư mục gốc đã thay đổi từ:

/opt/apigee/apigee-drupal

tới:

/opt/apigee/apigee-drupal/wwwroot

Quy trình chuyển đổi cổng thông tin

Cách chuyển đổi cổng thông tin sang chế độ cài đặt dựa trên RPM:

  1. Cài đặt phiên bản 4.18.05 dựa trên RPM của cổng thông tin trên một nút khác với cổng thông tin dựa trên tar của bạn.
  2. Trên cổng thông tin dựa trên RPM, hãy tạo một cơ sở dữ liệu Postgres mới. Sau đó, bạn di chuyển cơ sở dữ liệu từ cổng thông tin dựa trên tar sang cơ sở dữ liệu mới này:
    1. Đăng nhập vào psql:
      psql -h localhost -p 5432 -U apigee

      Nhập mật khẩu Postgres của bạn như được xác định bằng thuộc tính PG_PWD trong tệp cấu hình cổng thông tin.

    2. Tạo cơ sở dữ liệu Postgres mới:
      CREATE DATABASE newportaldb;
    3. Thoát psql:
      \q
  3. Trên cổng thông tin dựa trên tar, hãy xoá các mô-đun cũ không còn được sử dụng:

    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. Trên cổng thông tin dựa trên tar, hãy cài đặt và định cấu hình mô-đun 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. Đăng nhập vào cổng thông tin với tư cách là quản trị viên.
    6. Chọn Modules (Mô-đun) trong trình đơn Drupal.
    7. Bật mô-đun DBTNG Migrator.
    8. Lưu cấu hình.
  5. Trên cổng thông tin dựa trên tar, hãy chỉnh sửa /var/www/html/sites/default/settings.php để thêm cấu hình cơ sở dữ liệu thứ hai trỏ đến cơ sở dữ liệu mới tạo trên cổng thông tin dựa trên RPM. Cấu hình cơ sở dữ liệu hiện tại có tên là "default". Đặt tên cho cấu hình mới là "custom", như trong ví dụ sau:
    $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' => '',
        )
      )
    );

    Trong đó, host và port chỉ định địa chỉ IP và cổng của máy chủ Postgres. Postgres sử dụng cổng 5432 để kết nối.

  6. Trên cổng thông tin dựa trên tar, hãy cài đặt trình điều khiển Postgres:
    1. Sử dụng Yum để cài đặt trình điều khiển:
      yum install php-pdo_pgsql
    2. Chỉnh sửa /etc/php.ini để thêm dòng sau vào vị trí bất kỳ trong tệp:
      extension=pgsql.so
    3. Khởi động lại Apache:
      service httpd restart
  7. Trên cổng thông tin dựa trên tar, hãy di chuyển cơ sở dữ liệu cổng thông tin sang cổng thông tin dựa trên RPM:
    1. Đăng nhập vào cổng thông tin với tư cách là quản trị viên.
    2. Chọn Structure->Migrator (Cấu trúc -> Trình di chuyển) trong trình đơn Drupal.
    3. Chọn cơ sở dữ liệu gốc trên cổng thông tin dựa trên tar, default và cơ sở dữ liệu đích, custom, dựa trên tệp settings.php hiển thị ở trên.
    4. Nhấp vào Di chuyển. Cơ sở dữ liệu dựa trên tar được di chuyển sang cơ sở dữ liệu dựa trên RPM.
  8. Sao chép thư mục sites từ máy chủ dựa trên tar sang máy chủ dựa trên RPM. Các đường dẫn trong các bước sau đây dựa trên đường dẫn mặc định. Sửa đổi các giá trị này nếu cần cho quá trình cài đặt của bạn.
    1. Trên cổng thông tin dựa trên tar, hãy gói thư mục /var/www/html/sites:
      cd /var/www/html/sites
      tar -cvzf /tmp/sites.tar.gz .
    2. Sao chép /tmp/sites.tar.gz vào /opt/apigee/apigee-drupal/wwwroot/sites trên máy chủ dựa trên RPM.
    3. Huỷ gói thư mục trang web, nhưng không ghi đè các tệp quan trọng.
      1. Sao lưu tệp settings.php:
        sudo cp /opt/apigee/apigee-drupal/wwwroot/sites/default/settings.php
          /opt/apigee/apigee-drupal/wwwroot/sites/default/settings.bak.php
      2. Sao lưu thư mục files hiện có:
        sudo mv /opt/apigee/apigee-drupal/wwwroot/sites/default/files
          /opt/apigee/apigee-drupal/wwwroot/sites/default/files_old
      3. Sao lưu thư mục sites hiện có:
        tar -cvzf /tmp/sites_old.tar.gz /opt/apigee/apigee-drupal/wwwroot/sites
      4. Giải nén và giải nén thư mục sites khỏi máy chủ dựa trên tar:
        gunzip /opt/apigee/apigee-drupal/wwwroot/sites/sites.tar.gz
        tar -xvf /opt/apigee/apigee-drupal/wwwroot/sites/sites.tar
      5. Đảm bảo rằng các tệp đã sao chép có quyền sở hữu thích hợp:
        chown -R apigee:apigee /opt/apigee/apigee-drupal/wwwroot/sites/
      6. Khôi phục tệp settings.php:
        sudo cp /opt/apigee/apigee-drupal/wwwroot/sites/default/settings.bak.php
          /opt/apigee/apigee-drupal/wwwroot/sites/default/settings.php
      7. Di chuyển tệp riêng tư đến vị trí mới:
        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. Trên cổng thông tin dựa trên tar, chỉ khi bạn thay đổi đường dẫn đến thư mục gốc của web trên cổng thông tin dựa trên tar từ đường dẫn mặc định của /var/www/html: hãy chạy drush status và xem đường dẫn files và đường dẫn private files:
    cd /var/www/html
    drush status

    Nếu tệp/tệp riêng tư không nằm trong thư mục sites, hãy sao chép các tệp đó vào máy chủ dựa trên RPM như minh hoạ ở trên.

  10. Trên cổng thông tin dựa trên RPM, hãy cập nhật /opt/apigee/apigee-drupal/wwwroot/sites/default/settings.php để đặt các thuộc tính của cơ sở dữ liệu mặc định:
    vi /opt/apigee/apigee-drupal/wwwroot/sites/default/settings.php

    Đặt nội dung mô tả cơ sở dữ liệu mặc định trong settings.php:

    $databases = array (
      'default' =>
      array (
        'default' =>
        array (
          'database' => 'newportaldb',
          'username' => 'apigee',
          'password' => 'postgres',
          'host' => 'localhost', 'port' => '5432',
          'driver' => 'pgsql',
          'prefix' => '',
        )
      )
    );

    Trong đó, database chỉ định cơ sở dữ liệu mới mà bạn đã tạo, username và password được xác định cho cơ sở dữ liệu tuỳ chỉnh trên cổng thông tin dựa trên tar và prefix trống.

  11. Trên cổng thông tin dựa trên RPM, phiên bản dựa trên RPM của cổng thông tin chứa ít mô-đun Drupal hơn so với phiên bản dựa trên tar. Sau khi di chuyển sang cổng thông tin dựa trên RPM, bạn phải kiểm tra xem có mô-đun nào bị thiếu hay không và cài đặt các mô-đun đó nếu cần.
    1. Cài đặt Drupal missing_module dùng để phát hiện các mô-đun bị thiếu:
      cd /opt/apigee/apigee-drupal/wwwroot
      drush dl missing_module
      drush en missing_module
    2. Đăng nhập vào cổng thông tin dựa trên RPM với tư cách là quản trị viên.
    3. Chọn Reports > Status reports (Báo cáo > Báo cáo trạng thái) trong trình đơn Drupal rồi kiểm tra xem có mô-đun nào bị thiếu không.
    4. Hãy sử dụng báo cáo đó để cài đặt mọi mô-đun bị thiếu hoặc sử dụng các lệnh sau:
      cd /opt/apigee/apigee-drupal/wwwroot
      drush dl <moduleA> <moduleB> ...
      drush en <moduleA> <moduleB> ...
    5. Sau khi bạn bật tất cả các mô-đun, hãy đảm bảo rằng các tệp thuộc quyền sở hữu của người dùng apigee:
      chown -LR apigee:apigee /opt/apigee/apigee-drupal/wwwroot

      Để biết thêm thông tin về quyền truy cập tệp, hãy xem https://www.drupal.org/node/244924.

  12. Trên cổng thông tin dựa trên RPM, hãy chạy update.php trong trình duyệt để xoá mọi lỗi về mô-đun bị thiếu:
    1. Đăng nhập vào cổng thông tin dựa trên RPM với tư cách là quản trị viên.
    2. Trong trình duyệt, hãy chuyển đến URL sau:
      http://portal_IP_or_DNS:8079/update.php

      Trong đó portal_IP_or_DNS là địa chỉ IP hoặc tên miền của cổng thông tin dựa trên RPM.

    3. Làm theo lời nhắc trên màn hình.
  13. Cập nhật các mục DNS để trỏ đến cổng thông tin mới dựa trên RPM.

    Xin lưu ý rằng phiên bản cổng thông tin dựa trên RPM sử dụng cổng 8079 theo mặc định, trong khi phiên bản dựa trên tar sử dụng cổng 80. Hãy đảm bảo bạn sử dụng đúng số cổng trong mục DNS. Xem phần Đặt cổng HTTP mà cổng thông tin sử dụng để biết thông tin về cách sử dụng một cổng khác.

Đã hoàn tất chuyển đổi.