前回の記事では、
- Windows 10にPHP7をインストール
- Visual Studio 2015にPHP Tools for Visual Studioをインストール
を行ったのだが、結局そのPHP7が動かず、PHP Tools for Visual Studioでデバッグも出来なかった。
その後、必死の調査と努力で無事に動かす事が出来たのでその備忘録として当記事を書いた。
ワテ以外には役に立たないかも知れない。
当記事では以下の作業を行った。
- PHP Tools for Visual Studioの機能を使いでPHP7をインストール
- IISマネージャーでハンドラーマッピングの設定を行いCGIにPHPを登録
- PHPを使ったWEBプロジェクトを実行しPHPのデバッグを行う
これで無事にVisual Studio 2015でPHPが使えるようになり、デバッグも出来るようになった。
なお、ワテの技術不足が原因なのだが一番目の「Windows 10にPHP7をインストール」を使ってPHPプロジェクトを実行する事が出来なかった。
最終的にうまく動かせたPHPは「Visual Studio 2015にPHP Tools for Visual Studioをインストール」を行うとこのツール自身でもPHPをインストールする事が出来る。そのPHPに関しては、正常に動き、デバッガーも利用出来た。
と言う事で現在では、ワテのパソコンでは自分で入れたPHP7もあるがそれは使っていない。
でも、同じPHP7をWindows Server 2012R2にインストールした場合には、ワテのやり方で正常に動作している。
何故Windows10でPHP7を動かせないのかは不明だ。引き続き調査したい。
では、本題に入ろう。
PHP Tools for Visual Studioの機能を使いでPHP7をインストール
PHP Tools for Visual Studioをインストールすると[新しいプロジェクト]画面を開いた時に[PHP]という選択肢が追加されている。
ここで四つのPHPテンプレートの例えば二番目の
PHP Web Project
を選択するとプロジェクトが生成できる。
そのプロジェクトを右クリックして[プロパティ]を表示させる。
上図でRuntime欄で幾つかのPHPを選択出来る。
PHP 5.4 (will be installed) PHP 5.5 (will be installed) PHP 5.6.24 C:\Program Files (x86)\IIS Express\PHP\v5.6 PHP 7.0.9 C:\Program Files (x86)\IIS Express\PHP\v7.0 PHP 7.0.10 (will be installed) (user installation) PHP 7.0.10 C:\inetpub\wwwroot\php-7.0.10-nts-Win32-VC14-x64
さて、この末尾にある PHP 7.0.10 はワテがマニュアルインストールしたPHPだ。XDEBUGの設定なども行ったが残念ながら動かない。
その辺りの実験は直前の記事で書いた。動かない原因は不明である。
一方、他の PHP は PHP Tools for Visual Studio が管理している PHP だ。
下図で [Server] の項目には [Built-in Web Server] を選択する。これは IIS を意味する。
(will be installed) と表示されているPHPを選択すると下図のようになる。
ここで [Issues found. Click for details and fix.] をクリックすると下図が開く。
「あなたの環境には PHP7.0 や Xdebug が無いので Web Platform Installer を使って自動インストールしますか?」
という質問だ。
Web Platform Installer に関しては別の記事でも書いているが、MS純正の簡単インストールツールだ。これはワテも先日ダインロードしてIISにインストールしておいた。
さて、自分でインストール済のPHP7は動かないので、ここでは [Continue] をクリックしてみた。
そうすると、いきなりDOSのコマンドプロンプロ画面が出て、一気に何か作業が始まった。
ビックリしたわ。
上図のメッセージを見る限り、PHP7.0.9 が自動でインストールされているようだ。
かつ、各種の設定作業も自動で行っている感じだった。
何だかうまく言った感じ。
もし、 [Server] の項目には [IIS Express] を選択した場合も同じようなメッセージが出た。
ここでも自動で問題点が検出されて、[Continue] をクリックすると自動インストールが始まる。
要するに、IIS や IIS Express の環境に、[Runtime] の項目で選択した
- PHP 5.4
- PHP 5.5
- PHP 5.6.24
- PHP 7.0.9
のどれかをインストールして、php.ini などの設定も自動で行ってくれるようだ。
この作業を行うと、PHPプロジェクトでPHPが動くようになり、デバッグも出来るようになった。
PHPのソースコードの適当な行にブレークポイントをセットするとそこでブレークしてくれる。
とても便利だ。
普通のWEBプロジェクトでPHPを使う
では、PHPプロジェクトではなくて普通の WebFrom プロジェクトの中で .cs, .js, .ts などが混在した環境でさらに .php を使うにはどうすれば良いか?
WebFromプロジェクトでPHPを使う
環境変数にPHPのパス設定が必要なのかなと思って試してみたが、必要ないみたいだ。
なので環境変数は変更せず、元の状態に戻した。
IISマネージャー(IIS管理コンソール)とCGIをインストールする
IIS管理コンソールとはIISマネージャーの事だ。GUIでIISの各種設定が出来るので便利である。ここでは、そのIIS管理コンソールとCGIの機能を選択してインストールする。
上図のように二つを追加でインストールした。他の項目は最初にIISをインストールした時に既にインスール済の機能だ。
その結果、管理ツールの中にインターネットインフォメーションサービス(IIS)マネージャー
が追加される。
Default Web Siteにハンドラーマッピングを設定する
早速IISマネージャーを起動し、Default Web Siteを選択してハンドラーマッピングを実行。
[モジュールマップの追加を実行]する。
下図のように入力する。
要求パス
*.php
モジュール
FastCgiModule
実行可能ファイル(オプション)
C:\Program Files (x86)\IIS Express\PHP\v7.0\php-cgi.exe
名前
phpFCgi
確認画面が出るので[はい]をクリック。
そうすると一番下の赤枠部分に今追加したハンドラーマッピング phpFCgi が登場する。
このハンドラーマッピングについてはワテはよく知らない。
FastCGIを使ってphp.exeを実行する仕組みかな?(たぶん)。気になる人は各自で調べて下さい。
さて、上図には青枠で囲った部分に既に二つの設定がある。
例えば PHP_via_FastCGI は以下の通り。
これは PHP 5.6 を使う設定だ。
この設定は、PHPプロジェクトの設定(下図)において、
[Server] Built-in Web Server/ IIS Expressで IIS Express を選択し、
[Runtime] PHP 5.4/5.5/5.6.24/7.0.9 の中から 5.6を選択した場合に、
自動的インストールされたものだ。
さて、このようにDefault Web SiteにPHPのハンドラーマッピングを設定しておくと、PHPプロジェクトでは無い通常のWebサイトプロジェクトにおいてもPHPを実行出来るようになった。
通常のWebサイトプロジェクトにおいてもPHPを実行出来るようになった
“Hello World!” と表示する簡単はPHPプログラムだ。
index.phpと言うファイルにPHPで記述している。それをWEBフォームプロジェクトに追加したものだ。そのindex.phpをスタートファイルに設定して実行したものが下図。
実行すると正常に表示出来ている。
ただし、その場合にはデバッガーが利用出来なかった。
具体的には、PHPソースコードにブレークポイントをセットしても停止しない。
「ブレークポイントは、現在の設定ではヒットしません。ドキュメントのコードが読み込まれていません。」
となる。
まとめ
PHP Tools for Visual Studio で追加されたPHPプロジェクトテンプレートを使ったPHPプロジェクトではPHPのデバッグが出来る。
通常のWEBプロジェクトではPHPのデバッグが出来なかったのだが、何らかの設定をすれば出来るようになるのかどうかは未確認だ。
自前でマニュアルインストールしたPHP7.0.10は、動作させる事が出来なかった(ワテの技術不足)。
ただし、Windows Server 2012R2では同じ手法で簡単にPHP7.0.10をマニュアルインストールし動かす事が出来た。
PHP Tools for Visual Studioは30日のお試しバージョンであるが期限が切れても、幾つかの機能が利用できる。
例えば、PHPプロジェクトのテンプレートを使ってPHPプロジェクトを作成するなど。
唯一出来ないのがPHPのデバッグ作業だ。
と言う事で、Visual Studio でPHPを使いたい人はPHP Tools for Visual Studioをインストールするのが良いかも。
あるいはMS純正のPython Tools for Visual Studioと言うのがあるが、これなら無料でデバッグ機能も当然あるのでお勧めだ。
コメント