Server(LocalDB)を利用したアプリをIISにデプロイするための手順と、PHPコードのデバッグを見てみよう。Server(LocalDB)にデータを保存するToDoリストアプリを取りあえず完成させた。今回はこれをIIS(フルIIS)にデプロイしてみよう。LocalDBの仕様から単にPHPのコードをIISにコピーするだけでは済まないので、少し手間が必要になる。前回のコードをそのままIISの仮想ディレクトリに配備してみる本稿では、「C:\project\vscphpwebapps\vscphpwebapps_07」ディレクトリで開発を行い、IISでは「phptodolist」という仮想ディレクトリを作成して、その物理パスを「C:\websites\phptodolist」ディレクトリにする。(Reloaded)拡張機能を使って、IISにデプロイしてみる。CodeからPHPアプリをローカル実行/デプロイ!」でも述べているが、以下の記述をワークスペース設定(settings.jsonファイル)に記述する。Code上で開発しているファイルをIISにデプロイするためのワークスペース設定(settings.jsonファイル)targets項目では、その子となっているtype項目を"local"にしてローカルファイルシステムへのデプロイを行うことを指示し、dir項目でコピー先のディレクトリを指定している。packages項目では、デプロイ対象のファイルをfiles項目で指定している。上の設定では拡張子が「.php」のファイルだけを指定している。exclude項目はコピーしないファイル/ディレクトリを指定するものだ。Deploy]コマンドを選択する。すると、デプロイ対象を問い合わせるダイアログが表示されるので[Package]を選択すればよい。CodeからIISの仮想ディレクトリへのデプロイを実行これにより、上記JSONファイルで記述されたパッケージ(PHPコードを含んだファイル)がターゲットディレクトリへとコピーされる。Reloaded]を選択すると表示される。コピーされたファイルが表示されるデプロイが完了したら、ブラウザで「localhost/phptodolist」を開いてみよう。すると、以下のようにアプリがうまく動いていないことが分かる。Server拡張機能でホストしたときには動いていたアプリが、IISでは動かないというわけで、この問題を修正して、IISでもアプリが動くようにしていこう。Debug拡張機能でこのコードをデバッグして、原因がどこにあるかを知る必要がある。Codeの二大拡張機能」も参照されたい)。Codeで開いた状態でデバッグしてみよう(IISの仮想ディレクトリに.vscodeディレクトリやlaunch.jsonファイルを置きたくないため)。Codeで[デバッグ]ビューを表示して、ドロップダウンから[構成の追加]を選択するか、その隣の歯車アイコンをクリックし、次にダイアログが表示されたら[PHP]を選択して、launch.jsonファイルを作成するだけだ。▼[PHP]を選択PHPコードのデバッグ用のlaunch.jsonファイルを追加launch.jsonファイルの内容は特に修正する必要はないので、そのまま[デバッグの開始]ボタン(緑色の三角形のアイコン)をクリックしよう。ここではデータベース接続をつかさどるutil.phpファイルが開かれていることを覚えておこう。Codeが例外を補足して、実行が中断される。例外が発生して実行が中断される注目したいのは、util.phpファイルがもう1つ開かれた点だ。これはデプロイ先(C:\websites\phptodolistディレクトリ)にあるutil.phpファイルであり、IISで実行しているPHPアプリの動作が中断されたことを示している。メッセージが文字化けしており、その内容が分からないので、ステップ実行をしてcatch節に移動して、変数$eの内容を示したのが以下だ。[デバッグ]ビューの[変数]ペーンに注目されたい。Serverへの接続で問題が発生したことが分かった。インターフェイス」とある。どんな問題かまでは不明だ。Codeでは無理そうだ(次ページに続く)。メールマガジンをご購読ください。申し込みページへITmediaはアイティメディア株式会社の登録商標です。