PROVEの導入と操作

必要事項

  • RHEL互換Linuxディストリビューション(Scientific Linux, CentOSなど)
  • IUSレポジトリ(IUSのPHP5.3,5.4,5.5を利用する場合)
  • Apache Web Server
  • PHP本体、curlモジュール
  • SELinuxの無効化 (重要
  • Webブラウザ (デフォルトのFirefoxまたはChrome)

PHPがApache Webサーバ(httpd)のモジュールとして動作するように予め設定してください。

PROVEの導入

PHP5.5 インストール手順

PHP5.5パッケージはIUS Testingレポジトリを利用しています。

sudo yum install http://dl.iuscommunity.org/pub/ius/stable/Redhat/6/x86_64/epel-release-6-5.noarch.rpm
sudo yum install http://dl.iuscommunity.org/pub/ius/stable/Redhat/6/x86_64/ius-release-1.0-11.ius.el6.noarch.rpm

(PHP5.3がインストールされている場合、全て削除します。PHP 5.5と必要なモジュールをインストールします。
 PHP 5.5はius-testingレポジトリに格納されています。インストールには--enablerepo ius-testingが必要です。
 sudo yum --enablerepo ius-testing install php55u php55u-common php55u-mbstring php55u-pdo php55u-cli 
 などとしてインストールします。)

sudo yum install http://download.provephp.com/pub/prove2/6/x86_64/prove-release-el6-2-1.noarch.rpm
sudo yum install --enablerepo ius-testing prove-php5.5

アップデート

sudo yum update --enablerepo ius-testing prove-php5.5

PHP5.4 インストール手順

PHP5.4パッケージはIUSレポジトリを利用しています。

sudo yum install http://dl.iuscommunity.org/pub/ius/stable/Redhat/6/x86_64/epel-release-6-5.noarch.rpm
sudo yum install http://dl.iuscommunity.org/pub/ius/stable/Redhat/6/x86_64/ius-release-1.0-11.ius.el6.noarch.rpm

(PHP5.3がインストールされている場合、全て削除します。PHP 5.4と必要なモジュールをインストールします。
 sudo yum --enablerepo install php54 php54-common php54-mbstring php54-pdo php54-cli
 などとしてインストールします。)
 
sudo yum install http://download.provephp.com/pub/prove2/6/x86_64/prove-release-el6-2-1.noarch.rpm
sudo yum install prove-php5.4

アップデート

sudo yum update prove-php5.4

PHP5.3 インストール手順

RHEL6および互換のディストーションの場合、PHP5.3がデフォルトです。PROVE以外のレポジトリを登録する必要はありません。

sudo yum install http://download.provephp.com/pub/prove2/6/x86_64/prove-release-el6-2-1.noarch.rpm
sudo yum install prove-php5.3

アップデート

sudo yum update prove-php5.3

配置されるファイル

ファイル 説明
/usr/{lib,lib64}/php/module/prove.so PROVEモジュール。/etc/php.d/prove.iniによってロードされます。
/usr/libexec/prove/* PROVEクライアントなど
/etc/prove_client.conf PROVEクライアントの設定ファイル。Webコンソールから設定します。
/etc/prove_activation_key PROVEアクティベーションキーファイル。Webコンソールから設定します。
/etc/php.d/prove.ini PHP用PROVE設定ファイル。ライセンス情報、PROVE設定などを記載します。PHPのエラーログが/tmp/php_error.logに設定されます。不必要な場合は削除するか設定を変更して下さい。
/etc/httpd/conf.d/prove-console.conf Apache用のPROVE Webコンソールの設定ファイル。localhostからのみPROVE Webコンソールにアクセスできるように設定されています
/usr/share/prove PROVE Webコンソール。PHPのPROVE操作用のアプリケーションです。
/prove PROVEのデータディレクトリ。PROVEのトレースデータ、バリデーションデータ、差分データ、モード制御ファイルがprove.soによって作成されます。

OS設定

RHEL6はSELinuxがデフォルトで有効です。現在のところPROVEはSELinuxに対応していません。SELinuxを無効に設定するか、自分でポリシーを作成してください。1)ここでは無効にする方法を紹介します。sestatusコマンドで状態を確認します。

# sestatus
SELinux status:                 disabled

この場合はSELinux無効です。有効である場合、一時的に無効にするか設定ファイルで無効にします。

一時的に無効にする方法

# setenforce 0

設定ファイルで無効にする方法

/etc/sysconfig/selinuxが設定ファイルです。

# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
#	enforcing - SELinux security policy is enforced.
#	permissive - SELinux prints warnings instead of enforcing.
#	disabled - No SELinux policy is loaded.
SELINUX=disabled
# SELINUXTYPE= can take one of these two values:
#	targeted - Targeted processes are protected,
#	mls - Multi Level Security protection.
SELINUXTYPE=targeted 

SELINUXの行が

SELINUC=disabled

になっていればSELinuxが無効になります。

ライセンスとアクティベーション

PROVEをご利用頂くには有効なライセンス情報とアクティベーションキーが必要です。

ライセンス情報はphp.iniに記載しユーザ情報と有効期限を登録します。PROVEは無償ライセンスキーが組み込まれた状態で配布されています。無償ライセンスでご利用頂く場合、ライセンスの有効期限が切れるまでライセンス情報を登録する必要は在りません。商用ユーザや無償ライセンスの有効期限が切れた場合はライセンス情報を再取得してください。

アクティベーションキーは後述するPROVE Webコンソールから取得します。PROVE Webコンソールからライセンス情報とホスト情報をprovephp.comに送信するとキーが登録されます。

PROVEの操作

PROVEの操作はほぼ全てPROVE Webコンソールから行います。

PROVE Webコンソールの機能

  • PROVE状態の確認
  • PROVEモード(無効、トレース -記録、バリデーション - 再生)の切り替え
  • トレースデータ、バリデーションデータ、差分データの確認
  • PROVE Webコンソールの設定
  • PROVEライセンスのアクティベーション
  • Web サーバシェルへのアクセス
  • 検査対象ソースの表示
  • 検査対象URLへのアクセス

PROVE Webコンソールへのアクセス

ブラウザで次のURLへアクセスします。

http://localhost/prove

PROVEロゴが表示されているPROVE Webコンソールが表示されれば正常に動作しています。

他のホストからのアクセス

/etc/httpd/conf.g/prove-console.iniでローカルホストからのアクセスのみできるように設定されいます。

#
# This configuration maps PROVE for PHP Web Console
# int URL space. By default PROVE is only accessible 
# from local host.
#

Alias /prove /usr/share/prove/webroot

<Location /prove>
  Order deny,allow
  Deny from all
  Allow from 127.0.0.1
  Allow from ::1
  # Allow from .example.com
</Location>

Allow fromの行を修正または追加してアクセス可能なホストを設定します。詳しくはApacheのマニュアルを参照してください。PROVE Webコンソールにアクセスできるホストは出来る限り限定してください。

アクティベーション

(重要) PROVEはアクティベーションを行わないと動作しません。アクティベーションタブを開くとprovephp.comに送信するライセンス情報とホスト情報が表示されます。表示された情報以外は送信されません。「送信」ボタンを押して送信すると、アクティベーションキーが/etc/prove_activation_keyに保存されます。アクティベーションキーが登録されるとPROVEを利用できる状態になります。

PROVEの操作

PROVEの操作は非常に簡単です。PROVEの操作は3つのモードを切り替えるだけです。

モード名 説明
無効モード PROVEが無効な状態です。
トレースモード PROVEにより検証データを収集するモードです。
バリデーションモードPROVEにより集めた検証データをテストするモードです。

Webコンソールの「システム状態」タブの右側に配置されたボタンで操作します。

PROVE Webコンソールは基本操作さえ分かればマニュアルを読まずに操作できます。ここでは基本操作を説明します。

PROVEによるテスト手順

  1. 「トレースモードにする」をクリックする。2)
  2. Webブラウザでサイトにアクセスしてテストデータを収集する。
  3. 「バリデーションモードにする」をクリックする3)
  4. 「トレースデータをバリデーションデータにする」をクリックする。4)
  5. 「PROVEクライアントを実行する」をクリックします。5)
  6. 差分データタブをクリックして差分を確かめます。
  7. 差分データに問題がなければテストは完了です!

これだけで確実にリグレッションテストが作成・実行できます。

コマンドラインによる操作

PROVEはコマンドによって利用することもできます。PROVEのコマンドは/usr/libexec/proveに配置されています。

コマンド 説明
prove_clint PROVEが収集したデータをWebサーバに送信するクライアント
prove_get_log PROVEが収集したデータを表示するプログラム
prove_diff 差分を取得するプログラム

これらのコマンドはPHPスクリプトによって実装されています。詳しい使い方はPHPスクリプト内に記載されている情報をご覧ください。

マニュアルへのご意見

マニュアルへのご意見は以下のメールへお願いします。

メール: support@provephp.com

1) http://fedoraproject.org/wiki/SELinux などが参考になります
2) テストデータを収集する状態になります
3) PROVEクライアントを実行できる状態になります。
4) 集めたデータを検証用のデータにします
5) PROVEクライアントが実行され、差分情報が収集されます
· 最終更新: 2013/10/26 00:30

個人情報保護 | PROVE開発ブログ(Coming Soon) | GITレポジトリ(Coming Soon) | オンラインフォーラム(Coming Soon)

PROVE for PHP, produced by Electronic Service Initiative, Ltd.