RPM(Red Hat Package Manager)でPHPエージェントをインストール
手順
PHPエージェントをインストールするには:
https://pkg.contrastsecurity.com
からエージェントパッケージを取得します。以下のスクリプトをシェルで実行し、お使いのRPMベースのシステムにContrastのパッケージリポジトリを設定します。sudo
の権限が必要になる場合があります。tee /etc/yum.repos.d/contrast.repo <<-"EOF" [contrast] name=Contrast centos-$releasever repo baseurl=https://pkg.contrastsecurity.com/rpm-public/redhat-$releasever/ gpgcheck=0 enabled=1 EOF
完了したら、以下のコマンドのいずれかを使用して、エージェントとサービスをインストールします。使用するコマンドは、エージェントをインストールするプラットフォームによって異なります。
sudo yum install contrast-php-agent
または
sudo dnf install contrast-php-agent
PHPエージェントが実行されているかを確認するには、Contrast Webインターフェイスを確認するか、(設定によっては)PHPエージェントのログ出力を確認するなどしてください。
PHPエージェントを設定するには:
お使いの環境で動作するようにエージェントを設定するには、2つの方法があります。
contrast-php-util
コマンドを使用します。このコマンドはPHPエージェントと一緒にインストールされ、コマンドラインから使用することで、お使いの環境でエージェントを有効にすることができます。contrast-php-util enable-agent
これにより、PHPが拡張モジュールを管理するために使用するスキャンディレクトリに
ini
ファイルが作成されます。または
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インスタンスを動かしていることを確認してください。セットアップの完了に進みます。
セットアップを完了するには:
必要な拡張モジュールが有効になっていることを確認します。
PHPエージェントには、
mbstring
、json
、curl
のPHP拡張モジュールがインストールされ、有効になっている必要があります。これらの拡張モジュールが有効でない場合は、php.ini
設定ファイルを編集して以下の行を追加してください。extension=curl extension=mbstring extension=json
PHPエージェントのYAMLテンプレートか環境変数を使用して、PHPエージェントを設定します(まだ設定をしていない場合)。
通常の方法でアプリケーションを開始します。
アプリケーションの疎通やテストを行います。
PHPエージェントが実行されているかを確認するには、Contrast Webインターフェイスを確認するか、(設定によっては)PHPエージェントのログ出力を確認するなどしてください。
備考
ライブラリ解析とルート検出は、現在、アプリケーションへの最初のリクエストで実行されます。そのため、最初のリクエストは、それ以降のリクエストに比べてかなり遅くなることが予想されます。
このエージェントは、サードパーティのPHP拡張モジュールとはテストされていません。他のサードパーティの拡張モジュール(APMなどを含む)が使用された場合のエージェントの動作は未定義です。このエージェントはxdebugと互換性がないため、同時に使用しないでください。
プリロードを有効にすると、エージェントが正しく動作しない場合があります。このエージェントを使用する場合は、プリロードを無効にすることをお勧めします。
デフォルトでは、エージェントはPHPアプリケーションを実行する際のサーバの作業ディレクトリが、アプリケーションのソースツリーの最上位ディレクトリと同じであると想定しています。エージェントは、このパスを使用して、ライブラリ解析とルート検出を行います。パスが異なる場合は、
application.path
の設定を使用して、アプリケーションの最上位の作業ディレクトリを指定する必要があります。