このトピックでは、以下の内容を学習します。

  • ローカルの Plesk データベースではなく、リモートデータベースサーバ上でホストされているデータベースを使用して Plesk をインストールする方法。
  • Plesk でリモートデータベースサーバ上でホストされているデータベースを使用する場合のメリットとデメリット
  • 専用および共用のリモートデータベースサーバに Plesk をインストールする手順。
  • リモートの Plesk データベースをローカルデータベースに変換する方法。

Plesk は、独自の psa データベース、コンポーネントで使用されるデータベース、およびホスティング顧客のウェブサイトとアプリケーションで作成されるデータベース(WordPress データベースなど)を格納するために、データベースサーバを必要とします。Plesk で使用できるのは、Plesk と同じサーバ上にあるデータベースサーバ(ローカルデータベースサーバ)またはリモートマシン上にあるデータベースサーバ(リモートデータベース)です。

デフォルトでは、Plesk のインストール時にローカルデータベースサーバもインストールされます。Plesk はこれを使用して独自の psa データベースをホストします。これは、ホストされるウェブサイトでリモートデータベースサーバを使用する場合でも同様です。

ただし、ローカルデータベースを使用せずに Plesk をインストールして、リモートデータベースサーバ上で Plesk psa データベースをホストすることもできます。

注釈: 現時点では、リモートデータベースに対応するのは Plesk for Linux のみです。

リモートデータベースサーバ上でホストされた Plesk データベースを使用すると、以下のことが可能です。

  • データベースサーバのサポートをアウトソーシングする。
  • 高度なウェブデータベース管理ツールを使用する(Amazon RDS で提供されるものなど)。
  • Plesk と同じサーバにインストールできない特定のデータベースサービスを使用する。
  • 複数の Plesk サーバを運用している場合に、1 つの中心的なデータベースサーバで複数の Plesk データベースをホストする。
  • マルチノードのデータベースクラスタ(MariaDB Galera Cluster など)で Plesk データベースをホストすることで、Plesk 用に高可用性インフラを構築する。Plesk では MariaDB Galera Cluster のローカルインストールをサポートしていません。

リモートデータベースを Plesk で使用する場合、次のデメリットがあります。

  • 財務上の負担が増大する(データベースサーバや AWS サービスの追加など)。
  • (デフォルトの Plesk インストールと比較して)インストールと保守に必要な時間、労力、専門知識が増える。

リモートデータベースサーバに Plesk とそのデータベースをインストールする

前提条件

実際のインストール手順は、リモートデータベースサーバが専用か共用かによって異なります。

専用データベースサーバの場合、以前に作成されたデータベースやデータベースユーザはありません。全権限を持つデータベース管理ユーザを作成できる必要があります。その後、Plesk インストーラスクリプトで Plesk psa データベースが自動的に作成されます。

共用データベースサーバには既にデータベースとデータベースユーザが存在します。全権限を持つデータベース管理ユーザを作成することはできません。その代わりに、Plesk を実行するために必要なすべてのデータベースとデータベースユーザを手動で作成します。

(専用リモートデータベースサーバ)リモートデータベースサーバに Plesk とそのデータベースをインストールするには:

注釈: まず、リモートデータベースサーバにデータベース管理システムをインストールする必要があります。ここでは、MySQL を使用することをお勧めします。既にテスト済みであり、有効なシナリオであることが証明されているためです。

注釈: 以下では、Ubuntu 上で機能するリモートデータベースサーバでの手順を詳しく説明します。その他の Linux ディストリビューションの場合は、Oracle のドキュメントを参照して、以下の手順のステップ 5 に進んでください。

  1. リモートデータベースサーバにログインして MySQL サーバをインストールします。

    [mysql_server]$ wget https://repo.mysql.com//mysql-apt-config_0.8.22-1_all.deb
    [mysql_server]$ dpkg -i mysql-apt-config_0.8.22-1_all.deb
    [mysql_server]$ apt update
    [mysql_server]$ apt install mysql-server
    [mysql_server]$ locate my.cnf
    
  2. ネイティブパスワードに関する情報を my.cnf に追加します。

    [mysqld]
    default-authentication-plugin=mysql_native_password
    
  3. MySQL サーバを再起動して変更を適用します。

    [mysql_server]$ systemctl restart mysql
    
  4. MySQL サーバアプリケーションを入力して、データベーススーパーユーザを作成します。

    [mysql_server]$ mysql
    
    # welcome message output
    
    mysql> CREATE USER 'mysql_admin'@'%' IDENTIFIED BY '<password>';
    mysql> GRANT ALL ON *.* TO 'mysql_admin'@'%' WITH GRANT OPTION;
    
  5. Plesk サーバがリモートデータベースサーバにアクセスできることを確認します。それには、リモートデータベースシステムの bind-address パラメータの値をチェックします。次のようになっている必要があります。

    bind-address = 0.0.0.0
    

    または

    bind-address = <IP address of the remote database server the Plesk server will connect to>
    

    bind-address パラメータについて詳しくは、MySQL または MariaDB のドキュメントを参照してください。

  6. Plesk サーバからリモート MySQL サーバへの接続をチェックします。

    # try to connect to the MySQL server from the Plesk server
    [another_server]$ mysql --host=mysql_server --user=mysql_admin --password=<password>
    
  7. 全権限を持つデータベース管理ユーザを作成します。

    CREATE USER 'plesk_db_admin'@'%' IDENTIFIED BY '<plesk_db_admin_password>';
    GRANT ALL ON *.* TO 'plesk_db_admin'@'%' WITH GRANT OPTION;
    
  8. Plesk サーバにログインします。

  9. Plesk サーバで Plesk インストーラスクリプトを実行します。 PLESK_DB_DSN_PREFIX 環境変数には、データベース管理ユーザ(前のステップで作成したユーザ)を指定します。

    PLESK_DB_DSN_PREFIX=mysql://plesk_db_admin:<plesk_db_admin_password>@mysql_server/host1_ ./plesk-installer
    

    注釈: 特定のデータベースユーザやデータベース名を使用するには、PLESK_DB_DSN_PREFIX 変数の代わりに、あるいはこの変数と一緒に、データベース別の DSN 環境変数を使用します。たとえば、Plesk のデータベース名を指定して、他のすべてをデフォルトのままにするには、以下の環境変数を指定します。

    PLESK_DB_DSN_PREFIX=mysql://plesk_db_admin:<plesk_db_admin_password>@mysql_server/host1_
    PLESK_DB_DSN=mysql://plesk_db_admin:<plesk_db_admin_password>@mysql_server/host1_plesk
    

    この場合、Plesk のインストール後に、host1_plesk データベースが host1_psa の代わりに作成されます。

Plesk のデータベースをリモートデータベースサーバでホストするために必要なすべての設定を行いました。最後に、Plesk に初めてログインしてみます。

(共用リモートデータベースサーバ)リモートデータベースサーバに Plesk とそのデータベースをインストールするには:

注釈: 既にリモートデータベースサーバでデータベース管理システム(MySQL/MariaDB など)のセットアップが完了していることが前提となります。まだ完了していない場合は、上に記載されている専用データベースサーバでの手順を参照してください。データベース管理システムのセットアップの例が記載されています。

  1. リモートデータベースサーバにログインして MySQL サーバアプリケーションに入ります。

    mysql
    
  2. 「データベースユーザ」の表に指定されている権限で、データベースとデータベースユーザを作成します。

    CREATE DATABASE host1_psa; # Plesk Database
    CREATE USER 'plesk_db_user'@'%' IDENTIFIED BY '<plesk_db_user_password>';
    GRANT ALL ON host1_psa.* TO 'plesk_db_user'@'%' WITH GRANT OPTION;
    
    CREATE DATABASE host1_apsc; # APSC Database
    CREATE USER 'apsc_db_user'@'%' IDENTIFIED BY '<apsc_db_user_password>';
    GRANT ALL ON host1_apsc.* TO 'apsc_db_user'@'%' WITH GRANT OPTION;
    
    CREATE DATABASE host1_roundcubemail; # Roundcube Webmail Database
    CREATE USER 'roundcube_db_user'@'%' IDENTIFIED BY '<roundcube_db_user_password>';
    GRANT ALL ON host1_roundcubemail.* TO 'roundcube_db_user'@'%' WITH GRANT OPTION;
    
    CREATE DATABASE host1_horde; # Horde Webmail Database
    CREATE USER 'horde_db_user'@'%' IDENTIFIED BY '<horde_db_user_password>';
    GRANT ALL ON host1_horde.* TO 'horde_db_user'@'%' WITH GRANT OPTION;
    
  3. Plesk サーバで Plesk インストーラスクリプトを実行します。 この際、以下の環境変数のすべてまたは一部にデータベースおよびデータベースユーザ(前のステップで作成したユーザ)を指定します:PLESK_DB_DSNPLESK_DB_APSC_DSNPLESK_DB_ROUNDCUBE_DSNPLESK_DB_HORDE_DSN

    PLESK_DB_DSN=mysql://plesk_db_user:<plesk_db_user_password>@mysql_server/host1_psa \
    PLESK_DB_APSC_DSN=mysql://apsc_db_user:<apsc_db_user_password>@mysql_server/host1_apsc \
    PLESK_DB_ROUNDCUBE_DSN=mysql://roundcube_db_user:<roundcube_db_user_password>@mysql_server/host1_roundcubemail \
    # and/or PLESK_DB_HORDE_DSN=mysql://horde_db_user:<horde_db_user_password>@mysql_server/host1_horde \
    ./plesk-installer
    
  4. Plesk サーバがリモートデータベースサーバにアクセスできることを確認します。それには、リモートデータベースシステムの bind-address パラメータの値をチェックします。次のようになっている必要があります。

    bind-address = 0.0.0.0
    

    または

    bind-address = <IP address of the remote database server the Plesk server will connect to>
    

    bind-address パラメータについて詳しくは、MySQL または MariaDB のドキュメントを参照してください。

Plesk のデータベースをリモートデータベースサーバでホストするために必要なすべての設定を行いました。最後に、Plesk に初めてログインしてみます。

Plesk リモートデータベースをローカルデータベースに変換する

リモートデータベースを使用して Plesk をインストールした後で考えが変わった場合は、Plesk リモートデータベースをローカルデータベースに変換して、デフォルトの Plesk インストールを使用できます。

注釈: 現時点では、逆方向の変換はサポートされていません。つまり、ローカル Plesk データベースをリモートデータベースに変換することはできません。

前提条件

  • Plesk データベースがホストされているリモートデータベースサーバ。
  • Plesk がインストールされている Linux サーバ(これを Plesk サーバと呼びます)。

Plesk リモートデータベースをローカルデータベースに変換するには:

  1. リモートデータベースサーバから次のデータベースの全部または一部のダンプをコピーします: psaapscroundcubemailhorde

    plesk db dump host1_apsc host1_psa host1_roundcubemail > dump_from_host1.sql
    
  2. データベース名からプレフィックス(もしあれば)を削除します。

    sed -i 's/host1_apsc/apsc/g' dump_from_host1.sql
    sed -i 's/host1_psa/psa/g' dump_from_host1.sql
    sed -i 's/host1_roundcubemail/roundcubemail/g' dump_from_host1.sql
    sed -i 's/host1_horde/horde/g' dump_from_host1.sql
    
  3. Plesk サーバにログインして、リモートデータベースの構成データが含まれる /etc/psa/private/dsn.ini ファイルの名前を変更します。これにより、Plesk サーバでリモートデータベースのサポートが無効になります。

    mv /etc/psa/private/dsn.ini /etc/psa/private/dsn.ini.backup
    
  4. データベース管理ユーザを作成します。

    PSA_PASSWORD=<new_admin_password> plesk sbin ch_admin_passwd
    
  5. コピーしたダンプを Plesk サーバにデプロイします。

    plesk db < dump_from_host1.sql
    
  6. データベースに問題がないかチェックして、もしあれば plesk repair db ユーティリティを使用して修正します。

    plesk repair db
    

変換が完了し、Plesk がローカルマシンでデータベースをホストするようになります。Plesk にログインできます。

参考情報

データベースユーザ

image db users

環境変数

プレフィックスを使用する、すべてのデータベース用の DSN 環境変数

環境変数 値の形式 説明
PLESK_DB_DSN_PREFIX mysql://{plesk_db_admin}:{password}@{remote_db_host}/{db_prefix}

インストーラが必要とするすべてのデータベースをインストーラに作成させたい場合、指定されたプレフィックス db_prefix を名前に追加することでこの変数を指定します。

注釈:

db_prefix を空のまま残すと、デフォルトのデータベース名が使用されます: psaapscroundcubemailhorde

データベース別の DSN 環境変数

環境変数 値の形式 説明
PLESK_DB_DSN mysql://{plesk_db_user}:{password}@{remote_db_host}/{plesk_db_name}

インストーラに Plesk データベース名として plesk_db_name を使用させたい場合は、この変数を指定します。あらかじめデータベースを追加しておく必要があります。あるいは、plesk_db_name データベースを作成する権限が plesk_db_user に付与されている必要があります(たとえば plesk_db_admin を指定)。

注釈:

plesk_db_name を空のまま残すと、デフォルト名の psa が使用されます。

PLESK_DB_APSC_DSN mysql://{apsc_db_user}:{password}@{remote_db_host}/{apsc_db_name}

インストーラに APSC データベース名として apsc_db_name を使用させたい場合は、この変数を指定します。あらかじめデータベースを追加しておく必要があります。あるいは、apsc_db_name データベースを作成する権限が apsc_db_user に付与されている必要があります(たとえば plesk_db_admin を指定)。

注釈:

apsc_db_name を空のまま残すと、デフォルト名の apsc が使用されます。

PLESK_DB_ROUNDCUBE_DSN mysql://{roundcube_db_user}:{password}@{remote_db_host}/{roundcube_db_name}

インストーラに Roundcube データベース名として roundcube_db_name を使用させたい場合は、この変数を指定します。あらかじめデータベースを追加しておく必要があります。あるいは、roundcube_db_name データベースを作成する権限が roundcube_db_user に付与されている必要があります(たとえば plesk_db_admin を指定)。

注釈:

roundcube_db_name を空のまま残すと、デフォルト名の roundcubemail が使用されます。

PLESK_DB_HORDE_DSN mysql://{horde_db_user}:{password}@{remote_db_host}/{horde_db_name}

インストーラに Horde データベース名として horde_db_name を使用させたい場合は、この変数を指定します。あらかじめデータベースを追加しておく必要があります。あるいは、horde_db_name データベースを作成する権限が horde_db_user に付与されている必要があります(たとえば plesk_db_admin を指定)。

注釈:

horde_db_name を空のまま残すと、デフォルト名の horde が使用されます。