読者の皆様んこんにちは。今日はVSCode上でPHPのプログラムをステップ実行する方法をお伝えします。PHPプログラムのデバッグは、コードの品質を向上させ、問題解決の時間を短縮するために重要です。Visual Studio Code(VSCode)は、拡張機能や設定を活用することで、リモートサーバー上でPHPプログラムをステップ実行することができます。本記事では、VSCodeを使ってサーバー上のPHPプログラムをデバッグする手順を詳しく解説します。
1. 必要なツールと環境
以下のツールが必要です:
- VSCode(最新版を推奨)
- PHP(デバッグ対象のサーバー上にインストール済み)
- Xdebug(PHPのデバッグ用拡張機能)
- VSCodeのPHP拡張機能(PHP Debug by Felix Becker)
また、以下の条件を満たす必要があります:
- サーバーがリモートアクセス可能であること。
- 開発環境とリモートサーバー間でSSH接続が設定されていること。
- デバッグ対象のコードがサーバー上に配置されていること。
2. VSCodeに必要な拡張機能をインストール
まず、VSCodeに「PHP Debug」という拡張機能をインストールします。
手順:
- VSCodeを開き、左サイドバーの「拡張機能(Extensions)」アイコンをクリック
- 検索バーに「PHP Debug」と入力
- PHP Debug(作者:Felix Becker)をインストール

これで、VSCode上でPHPのデバッグが可能になります。
3. Xdebugのインストールと設定(サーバー側)
PHPのデバッグには、Xdebugという拡張機能が必要です。以下の手順で、サーバーにXdebugをインストールします。
Xdebugのインストール
サーバーにSSHでログイン。
以下のコマンドを実行して、Xdebugをインストールします:
sudo apt-get install php-xdebug # Ubuntu/Debianの場合
sudo yum install php-xdebug # CentOS/Red Hatの場合または、PHPのインストールソースに含まれるPECLコマンドを使用:
sudo pecl install xdebugインストール後、Xdebugの有効性を確認します:
php -m | grep xdebugphp.iniの設定
Xdebugを有効化するため、php.iniを編集します。
php.iniファイルを開く:
sudo nano /etc/php/7.x/cli/php.ini # 適切なパスに置き換えてください以下の設定を追加または編集:
[Xdebug]
zend_extension=xdebug.so
xdebug.mode=debug
xdebug.start_with_request=yes
xdebug.client_host=192.168.xxx.xxx ; ローカルマシンのIPアドレス
xdebug.client_port=9003 ; デフォルトのポート番号
xdebug.log=/var/log/xdebug.log ; ログファイル(任意)サーバー上のPHPサービスを再起動:
<code>sudo service apache2 restart # Apacheの場合 sudo service php7.x-fpm restart # PHP-FPMの場4. VSCodeのデバッグ構成
VSCodeでデバッグ環境を構築します。
デバッグ構成ファイル(launch.json)の設定
- 左サイドバーの「実行とデバッグ(Run and Debug)」アイコンをクリック。
- 「launch.jsonを作成」を選択し、PHPを選びます。
- 以下の設定をlaunch.jsonに追加または編集:
{
"version": "0.2.0",
"configurations": [
{
"name": "Listen for Xdebug",
"type": "php",
"request": "launch",
"port": 9003,
"pathMappings": {
"/var/www/html": "${workspaceFolder}"
},
"log": true
}
]
}5. リモートサーバーへのファイル同期
ローカルとリモートのコードが一致している必要があります。ファイル同期には、以下の方法を使用できます:
- SFTP拡張機能(VSCodeで利用可能)
- rsyncコマンド(SSH経由で効率的に同期)
rsyncコマンドの例:
<code>rsync -avz --delete -e ssh ./local-folder/ user@remote-server:/var/www/html<span style="font-family: inherit; font-size: inherit;"></span>6. デバッグの実行
手順:
- VSCodeでPHPコードを開き、ブレークポイントを設定します。
- サーバー上で対象のPHPスクリプトにアクセスします(例:ブラウザでhttp://example.com/script.phpを開く)。
- VSCodeでデバッグセッションを開始します:
- 左サイドバーの「実行とデバッグ」で「Listen for Xdebug」を選択し、実行。
- ブレークポイントで停止し、ステップ実行や変数の確認が可能になります。
7. よくあるトラブルと対処法
Xdebugが動作しない
- phpinfo()でXdebugが有効になっているか確認。
- xdebug.logを確認し、問題の詳細を確認。
ブレークポイントで止まらない
- デバッグ構成のpathMappingsが正しいか確認。
- サーバーとローカル環境のPHPファイルが一致しているか確認。
ポート競合
- デフォルトのポート(9003)が他のプロセスで使用されている場合、別のポート番号を設定。
まとめ
VSCodeを使用したリモートサーバー上のPHPプログラムのステップ実行は、Xdebugと適切な設定を組み合わせることで実現できます。この手法を活用することで、効率的にバグを特定し、コードの品質を向上させることができます。


