テスト項目運用システムV0.5.1 インストール手順 (Windows編)
|
|
テスト項目運用システム V0.5.1 をWindows7にインストールする手順を説明します。
作業はすべて管理者権限ユーザで行うものとします。エディタやコマンドプロンプトも「管理者として実行」で起動します。
- Windows版インストーラを入手します。以下のサイトからたどれば見つけられると思います。
http://www.postgresql.jp/
-
インストーラを実行してインストールします。
インストール先の次にデータの保存先を聞かれます。デフォルトだとプログラムのインストール先のdataフォルダになってますが、私はこれをUACの影響下にないパスに変更したもので動作確認しています。
次に入力要求されるパスワードはpostgres(PostgreSQLのスーパーユーザ)のものです。忘れずに記録してください。
ポート番号はデフォルトのままで。
次にLocaleを聞かれます。ここでは、Cを指定してください。
Stack Builderは実行しなくてもかまいません。
テスト項目運用システムはApacheとIISで動作確認しています。どちらを使うかは好みで選択してください。
IISの場合
Windows7では次の手順でインストールできます。
- 「コントロールパネル」-「プログラム」-「Windowsの機能の有効化または無効化」
- 「インターネット インフォメーション サービス」のチェックをON
- 配下の「World Wide Web サービス」-「アプリケーション開発機能」-「CGI」のチェックもON
- 【OK】ボタン押下
Apacheの場合
Apache LoungeのZipパッケージ版を使用します。
- 以下のサイトからZipファイル(例:httpd-2.4.25-win64-VC14.zip)を入手します。
http://www.apachelounge.com/download/
- Zipファイルを解凍します。
- 作成された Apache24 というフォルダをフォルダごと C:\ にコピーします。
- 管理者権限でコマンドプロンプトを起動します(右クリックして「管理者として実行」を選択)。以下はコマンドプロンプト上の操作です(先頭の > はプロンプトです)。
- > cd \Apache24\bin
- > httpd -k install
- > httpd -k start
インストール先は C:\Apache24 でなくてもかまいませんが、この手順書では C:\Apache24 にインストールしたものとして解説しています。
IISなどの他のWebサーバが動いている場合には事前に停止させておいてください。
Windows版のZipファイルは次のサイトから入手できます。
http://windows.php.net/download/
Non Thread Safe版とThread safe版がありますが、次のように選択します。
Non Thread Safe |
非スレッドセーフ版 |
IISではこれを選択 |
Thread Safe |
スレッドセーフ版 |
Apacheではこれを選択 |
次のフォルダを作成します。
C:\php
このフォルダに、ダウンロードしたZipファイル(例:httpd-2.4.25-win64-VC14.zip) を解凍してできたファイル群をフォルダも含め全てコピーします(php.exeがC:\phpの直下にくるようにコピーします)。
PHPのzip packageにはインストーラがありません。以下の手作業が必要です。
- php.ini-production を C:\WINDOWS にコピーして php.ini に変名する
- Apacheの場合にはphp?ts.dll (?にはPHPのメジャーバージョンの数値が入ります)を C:\WINDOWS\SYSTEM32 にコピーする(Non Thread Safe版にはphp?ts.dllがありません)
また、Windows Server 2008より前のOSの場合には別途次がインストールされている必要があります。
本プログラムではPEARのAuthとMDB2及びMail関連のパッケージを使用しています。インターネットを使用できる環境で次の操作を行いインストールします。
- 次のフォルダを作成します。
C:\php\PEAR
- 次のURLから go-pear.phar をダウンロード(このリンクを右クリックして「対象をファイルに保存」)します。
http://pear.php.net/go-pear.phar
保存先は1.で作成した
C:\php\PEAR です。
- 管理者権限でコマンドプロンプトを起動します(右クリックして「管理者として実行」を選択)。以下はコマンドプロンプト上の操作です(先頭の
> はプロンプトです)。
- > cd \php
- > php PEAR\go-pear.phar
- C:\php\PEAR_ENV.reg をエクスプローラでダブルクリックしてレジストリ登録する
- > pear install Auth
- > pear install MDB2-beta
- > pear install MDB2_Driver_pgsql-beta
- > pear install -a Mail
go-pear.phar の実行に成功すると何回か質問されます。基本的には改行を押下していればよいと思います。
プロキシサーバを使用している場合はそのホスト名,ポート番号も聞かれるようです。
pear install
でエラーになる場合は、pear clear-cache
を実行してみるとよいかもしれません。
MDB2で-betaを使用しているのは、安定版ではPHP5.3以降で非推奨、PHP7以降ではエラーとなる記述が残っているためです。同じ理由で
C:\php\PEAR\Auth.phpに以下の変更を行います。
function &_factory($driver, $options = '')
{
$storage_class = 'Auth_Container_' . $driver;
include_once 'Auth/Container/' . $driver . '.php';
//$obj =& new $storage_class($options); ← 469行目 コメント化
$obj = new $storage_class($options); ← 追加 (要は&を取るだけ)
return $obj;
}
同様に、C:\php\PEAR\Auth\Container\MDB2.php に以下の変更を行います。
function _connect($dsn)
{
$this->log('Auth_Container_MDB2::_connect() called.', AUTH_LOG_DEBUG);
if (is_string($dsn) || is_array($dsn)) {
// $this->db =& MDB2::connect($dsn, $this->options['db_options']); ← 114行目 コメント化
$this->db = MDB2::connect($dsn, $this->options['db_options']); ← 追加 (これも&を取るだけ)
} elseif (is_subclass_of($dsn, 'MDB2_Driver_Common')) {
PDOに移行すべきなのでしょうけどまだ未対応です。
WINDOWS\php.ini をエディタで開いて以下の編集を行います。エディタは管理者として実行します。
- [PHP]区画に extension_dir = "C:\php\ext" を書き加える。
- extension=php_gd2.dll のコメントを外す。
- extension=php_mbstring.dll のコメントを外す。
- extension=php_pgsql.dll のコメントを外す。
- [Date]区画に date.timezone = "Asia/Tokyo" を書き加える。
- [PHP]区画に
include_path=".;C:\php\pear;.\lib"
を書き加える。
既にある場合は、この3つのパス("." "C:\php\pear" ".\lib") を書き加えてください。
例)
include_path=".;C:\php\pear;.\lib"
Apacheの場合、この変更を省略して変わりに.htaccessを有効にすることで対応することもできます(後述)。
以降はIISの場合のみの作業です。参照する場合は次の+を押してください。
+
IISの場合は、fastCGIを有効にするためにphp.iniに次の編集も行います。
- cgi.force_redirect = 1 のコメントを外す
- cgi.fix_pathinfo=1 のコメントを外す
- fastcgi.impersonate = 1 のコメントを外す
- tisystem-0_5_1.zip を解凍します。
- 解凍してできたtisystemフォルダをフォルダごとドキュメントルートにコピーします。
ドキュメントルートとは、IISなら通常 C:\inetpub\wwwroot 、Apacheなら C:\Apache24\htdocs とかのことです。
tisystem\attachフォルダはアップロードファイルなどの保存先です。このフォルダに対してWebサーバからの書き込みを許可します。具体的には管理者として実行したコマンドプロンプトで次のコマンドを実行します(今はcaclsよりicaclsが推奨されているようですが、古いOSも考慮してcaclsを使ってます)。
IISの場合
> cacls c:\Inetpub\wwwroot\tisystem\attach /E /G IUSR:C
> cacls c:\Inetpub\wwwroot\tisystem\attach /E /G IIS_IUSRS:C
IIS7.0より前のバージョンのIISでは、「IUSR」を「IUSR_
マシン名」に読み替えてください。
Apacheの場合
> cacls C:\Apache24\htdocs\tisystem\attach /E /G SYSTEM:C
IISやApacheにPHPを認識させるための設定を行います。使用するWebサーバの+をクリックしてください。
IISの場合
+
PHP5.3からはISAPIがサポートされなくなりました。IISでPHP5.3以降を動かすためにはfastCGIを使用することになります。以下はIIS7.5を前提としてます。IIS7とは同じだと思いますけど、それ以前のIISとはだいぶ異なります。
- 「管理ツール」-「インターネット インフォメーション サービス(IIS) マネージャ」を起動。
(スタートメニューに「管理ツール」が無い場合には、「スタートボタンを右クリック」-「プロパティ」の「[スタート]メニュー」タブの【カスタマイズ】ボタンを押してシステム管理ツールの選択を変更してください)
- 左の「接続」フレームの中のマシン名を選択。
- 中央のアイコン群から「ハンドラーマッピング」をダブルクリック。
- 右の「操作」フレーム内の「モジュールマップの追加」をクリック。
- 表示されたダイアログに次のように入力。
要求パス |
*.php |
モジュール |
FastCgiModule |
実行可能ファイル |
C:\php\php-cgi.exe |
「名前」は自由に決めてください。
- 【OK】ボタン。確認ダイアログで【はい】ボタン。
- 再び左の「接続」フレームの中のマシン名を選択。
- 中央のアイコン群から「既定のドキュメント」をダブルクリック。
- 右の「操作」フレーム内の「追加」をクリック。
- 表示されたダイアログの「名前」に index.php と入力。【OK】ボタン。
設定が終わったらIISを再起動しておきます。
Apacheの場合
+
PHPを認識させるためにhttpd.confを編集します。
C:\Apache24\conf\httpd.conf をテキストエディタで開き、次の編集を行います。
- PHPを認識させるために次の2行を追加します。
LoadModuleが列挙されている部分があるので、その末尾に次の行を追加。
LoadModule php7_module "C:/php/php7apache2_4.dll"
これは、PHP7.xとApache2.4の場合の例です。PHP5.xなら「LoadModule php5_module "C:/php/php5apache2_4.dll"」となりますし、Apache2.2.xの場合は
php5apache2_2.dll に読み替えてください(php7apache2_2.dllは無さそうです)。
<IfModule mime_module>~</IfModule>の間に次の行を追加。
AddType application/x-httpd-php .php
- .htaccessを有効にするために<Directory "C:/Apache24/htdocs">ディレクティブ内でAllowOverrideの設定を次のように変更します。
AllowOverride FileInfo Options
php.iniの編集でinclude_pathの変更まで行っている場合で、性能やセキュリティの観点から.htaccessを無効にしたい場合には、「AllowOverride
None」のままでかまいません。
- フォルダ指定でも開けるようにDirectoryIndexに index.phpを追加します。
DirectoryIndex index.html index.php
設定できたらApacheを再起動してみてください。もしエラーになったらイベントビューアのアプリケーションログで内容を確認して修正してください。
Apacheの停止・起動は C:\Apache24\bin\ApacheMonitor.exe が便利です。タスクバーに表示されるアイコンから操作できます。
本システム内のTreeViewはjQueryとそのTreeviewプラグインを使用しています。次の手順で入手・配置してください。
- jQueryのインストール
- 次のダウンロードサイトから入手してください。リンクを右クリックして「名前を付けてリンク先を保存」でダウンロードします。開発時点では1.xを使用していましたが、3.1.1でも大丈夫そうです。compressed,
uncompressedの何れでもかまいません。slimバージョンでもよいです。
保存先は、ドキュメントルートの tisystem/jq です。
ファイル名は、jquery.js に変名してください。
- Treeviewプラグインのインストール
- 次のダウンロードページからTreeviewのプラグインを入手します。
GitHub Repository内の[Clone or download]ボタンを押して"Download ZIP"を選択してZIPをダウンロードします。
このZIPファイルを展開してできるファイル群のうち、次のものをドキュメントルートの tisystem/jq/tv にコピーします。
- jquery.treeview.js
- jquery.treeview.css
- images ← フォルダです。フォルダごとコピーします
データベースを作成し、テーブルなどのオブジェクトを生成し初期データを投入します。専用のユーザも作成します。
パスワードを要求されたら、特に明記していないものは、PostgreSQLのインストールで指定したスーパユーザ(postgres)のパスワードを入力します。
- コマンド プロンプトを管理者として起動
プロパティのフォントタブでUTF-8に対応したフォント(「MSゴシック」など)になっていることを確認してください。ラスターフォントとかになっていれば、変更したのちにコマンドプロンプトを再起動します。
- PostgreSQLのインストール先のbinフォルダに移動
例)> cd "\Program Files\PostgreSQL\9.6\bin"
- > chcp 65001 ← コードページをUTF-8に変更
- > createdb -E UTF8 -U postgres --template=template0 pgti ← データベースの作成
- 接続用のPostgreSQLユーザを作成します。ここでは仮に tiuser とします。
例) > createuser -U postgres -P tiuser
パスワードの入力が求められますので、tiuserに設定するパスワード入力します。確認入力もあります。
3回ほどy/n入力要求されるかもしれません。その場合、すべてnでかまいません。
- tisystem\setupフォルダに移動します。
例)> cd \inetpub\wwwroot\tisystem\setup
- > \php\php Gr_ti.php
5.で作成したユーザに権限を与えるためのSQL文を作成するスクリプトです。ユーザ名を聞かれたら5.で作成したユーザ名を入力してください。
- > \php\php Make_tidb.php
各種データベースオブジェクトの作成や設定を行うSQLの実行を案内するスクリプトです。指示に従って応答入力してください。
途中、場合によっては文字化けした表示がされるかもしれません。それはパスワード入力を促すメッセージですのでpostgresのパスワードを入力してください。
テーブル作成の結果でNOTICEメッセージが表示されることがありますが、主キーのインデックスが作成されたことを示すものであれば表示されて正常です。
ファンクション・ビューの作成では、DROP
してから CREATEしてます。このため、初回の実行ではDROPでdose not existのERRORになりますが、これは無視してください。
DBにアクセスするための設定を行います。DBとの接続情報は、ドキュメントルートの
tisystem\lib\ti_local.ini の
$c_dsnary に設定します。
前項で作成した接続用ユーザの情報を設定してください。また、
hostspecがコメント化されてますが、これを解除してください。
以下は設定例です。
$c_dsnary = array(
'phptype' => 'pgsql', // 現版では変更不可
'hostspec' => 'localhost', // hostname[:port]
'database' => 'pgti', // データベース名
'username' => 'tiuser', // データベースのユーザ名
'password' => 'ti051!pass', // パスワード
);
パスワードを平文で書いてしまっていますが、実はこのti_local.incは
その気になればブラウザから普通に見えてしまう場所にあります。これが気になる場合には、libフォルダをWebで参照不可能な場所に移動させてください。この場合には、include_pathもそれに合わせて変更が必要です。
IEもしくはFirefoxを起動して次のURLを開きます。
http://localhost/tisystem/
ログイン画面が表示されれば、次のように入力してログインしてみます。
ユーザID: |
admin |
パスワード: |
admin |
うまくいかない場合には、次を試してみてください。
- http://localhost/tisystem/test.php を試します。PHPの情報画面が表示されるようなら、WebサーバとPHPは取り合えず動作していると判断できます。
Apacheを使用している場合で、Loaded Configuration File が (none) になっている場合は、httpd.confに次の行を追加してみてください。
PHPIniDir "C:/WINDOWS"
- 1.が成功するのならば、同様に http://localhost/tisystem/test2.php
を試します。インストール状態を確認する簡単なPHPスクリプトです。何かヒントになる情報が表示されるかもしれません。
php.iniを正しく編集しているのにtest2.phpでpgsqlがロードされていない旨のエラーになる場合は、次を試してみてください。
- Windowsのシステム環境変数のPathにPHPのインストール先(C:\php)を追加
- Windowsを再起動
しばらく悩んで解決できないようなら、状況と実行環境を書いたメールを作者に送りつけてください(解決を保障することはできませんけど)。
障害票や相談のメール送信機能を使用する場合、次の設定を行う必要があります。
- SMTPサーバの指定
- php.iniの[mail
function]区画の SMTP にSMTPサーバを設定します。
例)SMTP
= tls://smtp.gmail.com
必要に応じてsmtp_portを変更します。
例)smtp_port = 465
- 有効化
- lib\ti_local.incの$c_mail_valid を true に設定します。
また、$c_mail_backend を 1 に設定します。
- SMTP認証の設定
- SMTPに認証が必要な場合にはlib\ti_local.incに次の設定も行います。
・$c_smtp_auth に true を設定
・$c_smtp_user にSMTP認証のユーザ名を設定
・$c_smtp_passwd にSMTP認証のパスワードを設定
パスワードを設定する場合は「認証の設定」でも説明したようにti_local.incの管理に気をつけてください。
- 送信元アドレスの設定
- lib\ti_local.incの$c_mail_from に送信者のメールアドレスを指定します。php.iniのsendmail_from にも同じメアドを設定しておくことを推奨します。
- サーバURLの設定
- クライアントから見たテスト項目運用システムのURLを lib\ti_local.incの$c_server_url
に設定します。メール内の障害票、添付資料などへの直接リンクの生成に使用されます。
Subversionを使用してソースファイルやドキュメントの履歴管理を行っている場合で、本システムの「修正内容表示」機能を使いたい場合には、Subversionのクライアント機能をインストールして下さい(WebDAV関連の設定は特に必要としません)。
Subversionは次のサイトから入手できます。
http://subversion.tigris.org/
修正内容表示の機能はSubversionのsvnコマンドをPHPから実行することで実現しています。よって、PHPをSafeモードで動作させている場合にはsvnコマンドのあるフォルダをsafe_mode_exec_dirに設定する必要があります。
本機能はすんなりとは動いてくれない可能性が高いです(関係するアプリの数が多いことやセキュリティ的に見てあまり推奨されないことをしているので)。実際、私も結構苦労しました。
以下にPHPでsvnコマンドを実行しようとしたときに発生する代表的な問題のトラブルシュートを挙げておきます。
IIS7.x(Vista,7)の場合はIUSR_XXXXX全体をIUSRに読み替えてください。
- 修正内容表示画面で変更ファイルリストが表示されず、「ログ情報表示>」で
Unable to fork のエラーになる場合
- IISの実行ユーザにコマンド実行の権限が無いものと思われます。この場合、コマンド・プロンプトで次のコマンドを実行することで対処できると思います。
> cacls c:\windows\system32\cmd.exe /E /G IUSR_XXXXX:R
XXXXX にはホスト名が入ります。
- C:\phpにcmd.exeをコピーすることで対処できるという情報もありましたが、私が試した範囲ではダメでした。
セキュリティを緩和する設定変更です。よく検討のうえ各自の判断で行ってください。
- 「内部コマンドまたは外部コマンド、操作可能なプログラムまたはバッチファイルとして認識されていません」のエラーになる場合
- Subversionをインストールした直後であるならOSを再起動してみてください。
それでも同じエラーになる場合は、lib\ti_local.incの$c_svn_pathにsvnコマンドへのパスを記述してみてください。
例)$c_svn_path = "C:\\Program files\\Subversion\\bin\\"
- 「Can't determine the user's config path」のエラーになる場合
- 次のようにしてSubversionの設定ファイルのパスを明示的に与えてやります。
- 何らかのsvnコマンドを実行する
- C:\Documents and Settings\Administrator\Application Data\Subversion を任意のフォルダにコピーする。ここでは仮に
C:\svn\conf とする。
- コマンドプロンプトで以下を実行
> cacls c:\svn\conf\Subversion /E /G IUSR_XXXXX:F
XXXXX にはホスト名が入ります。
- lib\ti_local.inc の $c_svn_conf にパスを設定
例)$c_svn_conf = "c:\\svn\\conf\\Subversion"
ti_local.incなどのPHPスクリプトはUTF-8コードです。UTF-8に対応したエディタをご使用ください。私は、TeraPadを使用させてもらってます。