Nginx言語(PHP他)PHP開発環境Laravelxdebug
更新日 : 2023年12月11日
投稿日 : 2023年12月8日

ラズパイ(Raspberry Pi 4)開発環境を作る-03【Xdebug / VSCode】

ラズパイ(Raspberry Pi 4)開発環境を作る-03【Xdebug / VSCode】の画像

こんにちわ、PHPエンジニアのエンジニア婦人(@naho_osada)です。
私はPHPエンジニアとして8年~の経験があります。

ラズパイ(Raspberry Pi 4 Model B)を開発用のWebサーバーにしてしまう作戦です。

ここではPHPのデバッグ「Xdebug」がVSCodeでできるようにしていきます。

Xdebug2とXdebug3で記述の内容が大きく異なります。ここではXdebug3の記述をしています。

XDebugのインストール

Nginixではphp-fpmを使ってPHPを動かしているので、

sudo apt-get install php-xdebug

これでやるとphp-fpmに入りません(php-cliのときはこちらでOK)。

そのため、ソースからコンパイルしていきます

PHP7.4に対応のXdebugは3.1.6です。

拡張機能のコンパイルするため、依存ライブラリも一緒にインストールします。

wget http://xdebug.org/files/xdebug-3.1.6.tgz
sudo apt install php-dev

なお、PHPのバージョンとXdebugの対応バージョンは公式のXdebug Supportの画面で実行中のphpinfoの内容をコピペすると調べることができます。ここで判定するとXdebugのコンパイル手順も出てきます。

取得したソースを解凍、コンパイルします。

tar -xvzf xdebug-3.1.6.tgz
cd xdebug-3.1.6
phpize
./configure
make

順調にソースを解凍してコンパイルできたら以下の場所にxdebug.soをコピーします。

cp modules/xdebug.so /usr/lib/php/20210902

ここまでできたら、一度php-fpmを再起動してXdebugの追加を反映させます。

sudo /etc/init.d/php7.4-fpm restart

php-fpm7.4 -v
PHP 7.4.33 (fpm-fcgi) (built: Jun 9 2023 16:51:37)
Copyright (c) The PHP Group
Zend Engine v3.4.0, Copyright (c) Zend Technologies
with Zend OPcache v7.4.33, Copyright (c), by Zend Technologies
with Xdebug v3.1.6, Copyright (c) 2002-2022, by Derick Rethans

php-fpm7.4 -vでXdebugの記述が出てきたらOKです。

php.iniにXdebugの設定を追記する

php.iniを開き、Xdebugの設定を追記します。

Xdebug3とXdebug2では記述の内容が大きく異なります。PHP7.4の対応Xdebugはver 3です。

細かいこと言わなければこの2行だけで動作すると思います。その他にもいろいろ設定はできるようです。詳細はこちら→Documentation – all settings | Xdebug

[xdebug]
xdebug.mode=debug
xdebug.start_with_request=yes

記述したら再度php-fpmを再起動します。

sudo /etc/init.d/php7.4-fpm restart

display_errorsをonにしておく

php-fpmを入れたばかりだとエラー表示がoffになっていることがあります。

開発機なので、Xdebugの追記と一緒に有効にしておきましょう。

9003ポートをあける

Xdebug2のデフォルトポートは9000でしたが、Xdebug3からは9003になります。

9003から変更したい場合はphp.iniの設定でxdebug.client_portで任意のポート番号を指定します。

sudo ufw allow 9003
sudo ufw reload

VSCodeのlaunch.jsonを書く

"version": "0.2.0",
"configurations": [
    {
        "name": "Listen for Xdebug",
        "type": "php",
        "request": "launch",
        "port": 9003,
        "pathMappings" : {"${workspaceRoot}" : "${workspaceRoot}"},
    },

portを9003にして、pathMappingを記述するだけです。

これでVSCode上に張ったブレークポイントで停止するようにできたと思います。

まとめ

この3つの手順で、ようやくラズパイがPHP開発環境として快適に使える状態になりました。

開発機が外部機器だとちょっとカッコイイ感じがしませんか?もしラズパイがお手元にあって使い道に困っていたらやってみてくださいね。

参考

Raspberry Pi 4B

フリーランスの案件探しはエミリーエンジニア※広告

毎日仕事をしながらも次の案件を気にしなければならない…フリーランスの宿命です。

そんな大変な案件探しは【エミリーエンジニア】のエージェントに助けてもらってはいかがでしょうか。

▼ 登録はここから ▼

【エミリーエンジニア】

  • 月額60~80万円の高額案件中心
  • 15年以上の信頼と実績があるから、プライム案件を受注できる
  • フルリモート案件が90%以上
です。

専属のキャリアアドバイザリーコンサルタントに色々と相談もできますよ。

エンジニアの転職はキャリアネクスト※広告

今の職場で頑張っても収入アップは見込めない…

エンジニア転職の【キャリアネクスト】で転職で収入アップを目指してみてはいかがでしょう?

▼ 登録はここから ▼

【キャリアネクスト】なら

  • エンジニアのキャリア支援を始めて10年以上!
  • 大手からベンチャー、スタートアップまで幅広い
  • 理想のキャリアプランから最適と考える企業様だけをご紹介
  • 応募書類の添削や企業との連絡代行などのフォローあり
  • 不安なことは専任のアドバイザーにすぐ相談
など、仕事をしながら転職活動する上で大変なことをかなりお任せできちゃいます!

PR

※本サイトはアフィリエイトプログラムを利用して商品を紹介しています。