Skip to main content

DebianでPHPエージェントをインストール

手順

PHPエージェントをインストールするには:

  1. https://pkg.contrastsecurity.comからエージェントパッケージを取得します。以下のコマンドで、Contrastのパッケージリポジトリをシステムに登録します。

    curl \
      https://pkg.contrastsecurity.com/api/gpg/key/public | sudo apt-key add -
    
    echo "deb https://pkg.contrastsecurity.com/debian-public/ $(sed -rne 's/^VERSION_CODENAME=(.*)$/\1/p' /etc/*ease) contrast" \
      | sudo tee /etc/apt/sources.list.d/contrast.list
    
    echo "deb https://pkg.contrastsecurity.com/debian-public/ all contrast" \
      | sudo tee -a /etc/apt/sources.list.d/contrast.list
    
  2. 完了したら、以下のコマンドを実行してエージェントをインストールします。

    sudo apt-get update && sudo apt-get install contrast-php-agent
    
  3. PHPの設定ファイルであるphp.iniを探します。ほとんどの場合、/usr/local/etc/php/内にあります。

PHPエージェントを設定するには:

お使いの環境で動作するようにエージェントを設定するには、2つの方法があります。

  1. contrast-php-util コマンドを使用します。このコマンドはPHPエージェントと一緒にインストールされ、コマンドラインから使用することで、お使いの環境でエージェントを有効にすることができます。

    contrast-php-util enable-agent

    これにより、PHPが拡張モジュールを管理するために使用するスキャンディレクトリにiniファイルが作成されます。

    または

  2. PHPの設定ファイルである、php.iniを編集します。ほとんどの場合、/usr/local/etc/php/にあります。

    php-configコマンドが使える場合は、php-config --ini-pathを使用して設定ファイルのパスを見つけることができます。このパスに設定ファイルがまだ存在しない場合は、作成する必要があります。

    echo "extension=/usr/local/lib/contrast/php/contrast.so" >> php-config --ini-path/php.ini

    php-configコマンドが使えないシステムでは、 PHPを利用してiniファイルの場所を確認できます。

    php -i | grep php.ini

    実行結果の「Configuration File (php.ini) Path」行にアクティブなiniファイルが表示されます。そして、そのファイルを編集して、ファイルの末尾に以下を追加してください。

     extension=/usr/local/lib/contrast/php/contrast.so

    環境によっては、PHPのコマンドラインインスタンスで使用されるiniファイルが、サーバ環境でロードされるファイルと異なる場合があることに注意してください。FPMは、多くの場合、/etc/php/<php version>/fpm/ディレクトリにあるiniファイルを使用します。適切なPHPインスタンスを動かしていることを確認してください。

  3. セットアップの完了に進みます。

セットアップを完了するには:

  1. 必要な拡張モジュールが有効になっていることを確認します。

    PHPエージェントには、mbstringjsoncurlのPHP拡張モジュールがインストールされ、有効になっている必要があります。これらの拡張モジュールが有効でない場合は、php.ini設定ファイルを編集して以下の行を追加してください。

    extension=curl
    extension=mbstring
    extension=json
  2. PHPエージェントのYAMLテンプレートか環境変数を使用して、PHPエージェントを設定します(まだ設定をしていない場合)。

  3. 通常の方法でアプリケーションを開始します。

  4. アプリケーションの疎通やテストを行います。

  5. PHPエージェントが実行されているかを確認するには、Contrast Webインターフェイスを確認するか、(設定によっては)PHPエージェントのログ出力を確認するなどしてください。

備考

  • ライブラリ解析とルート検出は、現在、アプリケーションへの最初のリクエストで実行されます。そのため、最初のリクエストは、それ以降のリクエストに比べてかなり遅くなることが予想されます。

  • このエージェントは、サードパーティのPHP拡張モジュールとはテストされていません。他のサードパーティの拡張モジュール(APMなどを含む)が使用された場合のエージェントの動作は未定義です。このエージェントはxdebugと互換性がないため、同時に使用しないでください。

  • プリロードを有効にすると、エージェントが正しく動作しない場合があります。このエージェントを使用する場合は、プリロードを無効にすることをお勧めします。

  • デフォルトでは、エージェントはPHPアプリケーションを実行する際のサーバの作業ディレクトリが、アプリケーションのソースツリーの最上位ディレクトリと同じであると想定しています。エージェントは、このパスを使用して、ライブラリ解析とルート検出を行います。パスが異なる場合は、application.pathの設定を使用して、アプリケーションの最上位の作業ディレクトリを指定する必要があります。