Plesk で行う特定のアクション、たとえば:

  • 顧客アカウントの作成
  • IP アドレスの削除
  • ドメインのホスティング設定の更新

などは、Plesk に イベント と認識されます。各イベントに対し、事前定義されたコマンドをイベント発生時に毎回実行するイベントハンドラを 1 つ以上作成できます。

特定のイベントが発生するたびに特定のアクションまたは一連のアクションを実行したい場合にはイベントハンドラが便利です。たとえば、契約を作成するたびに起動するイベントハンドラを作成し、メールボックスを自動的に作成して外部サービスにリクエストを送信するように構成したりできます。

イベントハンドラの追加

  1. [ツールと設定]>[イベントマネージャ]の順に選択します。

  2. [イベントハンドラを追加]をクリックします。

  3. ハンドラをトリガするイベントを「イベント」リストから選択します。

  4. [優先度]の下で、ハンドラの実行優先度を設定します。これには、リストから選択するか、フィールドにカスタム番号を入力します。1 つのイベントに複数のハンドラを割り当てる場合に優先度が重要になります。この場合、ハンドラは優先度に従って降順でトリガされます(優先度が最高のハンドラが最初にトリガされ、続いて優先度が 2 番目のハンドラがトリガされます)。

  5. ハンドラが代理で実行されるシステムユーザを「ユーザ」リストから選択します。

    注釈: サーバ管理者は root ユーザの代わりにサーバで実行されるイベントハンドラを作成できます。root アカウントの使用を制限するには、root.event_handler.lock という名前の空ファイルを /usr/local/psa/var/ に作成します。

  6. イベントハンドラが起動されると常に実行されるコマンドが含まれるシェルスクリプトまたは .bat ファイルのパスを、[コマンド]フィールドに入力します(たとえば、/usr/local/psa/bin/script.sh または C:\Windows\Temp\script.bat)。

    注釈: スクリプトに実行権限を付与してください。これには、コマンド chmod 755 <script.sh> を実行します。

  7. [OK]をクリックします。

イベントパラメータを渡す

イベントハンドラは起動するたびに、イベントに関連する特定のデータ(「イベントパラメータ」)を渡します(渡されるデータはイベントハンドラに応じて異なります)。たとえば、「ドメインの作成」イベントハンドラは、以下のパラメータを渡します。

  • 新規作成されたドメインの名前
  • 新規作成されたドメインの GUID
  • 新規作成されたドメインを所有する顧客アカウントの GUID

各パラメータは環境変数として渡され、シェルスクリプトや .bat ファイルで以下のように使用できます。

Plesk for Linux

シェルスクリプトでプレースホルダ ${ENVIRONMENT_VARIABLE_NAME} を使用します(例:「${NEW_DOMAIN_NAME}」)。イベントハンドラが起動すると、そのイベントに対応する値にプレースホルダが置換されます。

Plesk for Windows

bat ファイルでプレースホルダ %N (例:「%1」)を使用し、イベントハンドラ設定でコマンドの最後の関連する位置に必要な環境変数の名前を追加します。以下の例では

image 78436

プレースホルダ「%1」は環境変数「NEW_DOMAIN_NAME」の値に置換され、「%2」は「NEW_DOMAIN_GUID」の値に置換されます。.bat ファイルで「%3」を使用しても、いかなる値にも置換されません。コマンドの後で環境変数名が 2 つしか指定されていないためです。

各イベントハンドラのイベントパラメータと関連する環境変数名のリストは こちら を参照してください。

参考として、「顧客アカウントの作成」イベントのサンプルスクリプトを 2 つ示します。

  • (Plesk for Linux) test-handler.sh

    #!/bin/bash
    echo "--------------" >> /tmp/event_handler.log
    /bin/date >> /tmp/event_handler.log # information on the event date and time
    /usr/bin/id >> /tmp/event_handler.log # information on the user, on behalf of which the script was executed (to ensure control)
    echo "customer created" >> /tmp/event_handler.log # information on the created customer account
    echo "name: ${NEW_CONTACT_NAME}" >> /tmp/event_handler.log # customer's name
    echo "login: ${NEW_LOGIN_NAME}" >> /tmp/event_handler.log # customer's username in Plesk
    echo "--------------" >> /tmp/event_handler.log
    
  • (Plesk for Windows) test-handler.bat

    echo "--------------" >> c:\windows\temp\event_handler.log
    rem information on the event date and time
    date /T   >> c:\windows\temp\event_handler.log
    rem information on the created customer account
    echo "customer created" >> c:\windows\temp\event_handler.log
    rem customer's name
    echo "name: %1"       >> c:\windows\temp\event_handler.log
    rem customer's username in Plesk
    echo "login: %2"      >> c:\windows\temp\event_handler.log
    echo "--------------" >> c:\windows\temp\event_handler.log
    

Plesk にログインして、「John Doe」という名前と「john_doe」というログイン名で顧客アカウントを作成すると、イベントハンドラが起動して以下のレコードが event_handler.log ファイルに追加されます。

  • (Plesk for Linux)

    Fri Mar 16 15:57:25 NOVT 2007
    uid=0(root) gid=0(root) groups=0(root)
    customer created
    name: John Doe
    login: john_doe
    
  • (Plesk for Windows)

    Mon March 15 21:46:34 NOVT 2010
    customer created
    name: John Doe
    login: john_doe
    

イベントハンドラを編集、削除する

現在アクティブなイベントハンドラのリストを表示するには、[ツールと設定]>[イベントマネージャ]に進みます。ここで、イベントハンドラの編集、削除もできます。

  • イベントハンドラを編集するには、名前をクリックして、必要な変更を加え、[OK]をクリックします。
  • イベントハンドラを削除するには、そのチェックボックスをオンにして[削除]をクリックします。