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

Edge for Private Cloud v4.18.05

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 cổng dựa trên tar trước đó. Bạn chỉ có thể cập nhật trực tiếp phiên bản cổng thông tin dựa trên RPM lên 4.18.05.

Tuy nhiên, bạn có thể chuyển đổi phiên bản cổng thông tin dựa trên tar thành phiên bản cổng thông tin dựa trên RPM 4.18.05. Trong quá trình này, bạn sẽ 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à trang web đ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ả.

Sau đây là 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:

  • 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 dựa trên tar vào cổng dựa trên RPM.
  • Cập nhật các mục nhập 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 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. Đảm bảo bạn sử dụng đúng số cổng trong mục nhập 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

đến:

/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 của cổng thông tin dựa trên RPM trên một nút khác với cổng thông tin dựa trên tar.
  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 do thuộc tính PG_PWD xác định trong tệp cấu hình của cổng thông tin.

    2. Tạo cơ sở dữ liệu Postgred mới:
      CREATE DATABASE newportaldb;
    3. Thoát psql:
      \q
  3. Trên cổng 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 Drupal Migrator:
    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 trang này 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à "mặc định". Đặt tên cho cấu hình mới là "tuỳ chỉnh", 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 đó hostport chỉ định địa chỉ IP và cổng của máy chủ Postgres. Postgres sử dụng cổng 5432 cho các 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 trang này 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 nguồn 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 được hiển thị trong các bước sau đây dựa trên đường dẫn mặc định. Sửa đổi các tệp này nếu cần cho quá trình cài đặt.
    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 từ 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ư sang 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 /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 các 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, usernamepassword đượ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 cổng thông tin dựa trên RPM 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 nếu cần.
    1. Cài đặt missing_module Drupal 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 trang web 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 và kiểm tra xem có mô-đun nào bị thiếu không.
    4. 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 người dùng apigee sở hữu các tệp:
      chown -LR apigee:apigee /opt/apigee/apigee-drupal/wwwroot

      Để biết thêm về quyền đối với tệp, hãy xem nội dung tại https://www.drupal.org/node/244924.

  12. Trên cổng dựa trên RPM, hãy chạy update.php trong trình duyệt để xoá mọi lỗi về các mô-đun bị thiếu:
    1. Đăng nhập vào trang web 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 nhập 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 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. Đảm bảo bạn sử dụng đúng số cổng trong mục nhập 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ề việc sử dụng một cổng khác.

Quá trình chuyển đổi đã hoàn tất.