XdebugをUbuntuにインストールする(Ubuntu24.04)
要するに、xdebugのソースコードを入手し、それをコンパイルするというやり方でインストールした。
ただ、手順として参考にしたのは、https://xdebug.org/wizard/ である。
準備作業
<?php phpinfo();
という内容のファイル “phpinfo.php” を ~/public_html/ に作成し、
http://localhost/~(username)/phpinfo.php
として、phpinfo() の情報をブラウザに表示させ、その表示内容をすべてコピーする。
https://xdebug.org/wizard/ にアクセス。
コピーした内容を、貼り付ける。
“Analyse my phpinto() output” と書かれたボタンをクリックする。
すると、”Instructions” と書かれたページが開く。
instructions の手順どおりに作業をすすめる。
インストール手順
(1) xdebug-3.4.2.tgz をダウンロードする。
(2) 事前に以下のアプリがインストールされていること。
$ apt-get install php-dev autoconf automake
(3) xdebugのソースコードを展開する。
$ tar -xzvf xdebug-3.4.2.tgz
$ cd xdebug-3.4.2
$ phpize
(4) phpizeを実行すると、以下のように表示されるはずである。
Configuring for:
...
Zend Module Api No: 20230831
Zend Extension Api No: 420230831
もし、違っていたら phpizeが違っている。
https://xdebug.org/docs/faq#custom-phpize
を参照すること。
また、以下の手順は実行できない。
(5) コンパイル
$ ./configure
$ make
$ cp modules/xdebug.so /usr/lib/php/20230831/
(6) “/etc/php/8.3/cli/conf.d/99-xdebug.ini を作成し、以下の内容とせよ”という指示である。
zend_extension = xdebug
しかし、ubuntu-24.04の場合、以下のようになっている。
/etc/php/8.3/
+-- mods-available/
| +-- bz2.ini
| +-- calendar.ini
| ...
+-- apache2/
| +-- conf.d/
| +-- 20-bz2.ini --> ../../mods-available/bz2.ini
| +-- 20-calendar.ini --> ../../mods-available/calendar.ini
| ...
+-- cli/
| +-- conf.d/
| +-- 20-bz2.ini --> ../../mods-available/bz2.ini
| +-- 20-calendar.ini --> ../../mods-available/calendar.ini
| ...
つまり、設定ファイル(*.ini) は mods-availableディレクトリに置いて、
apache2やcliディレクトリにはシンボリックリンクを置いているのである。
このリンクは手作業で作成してもいいが、phpenmod というコマンドを使うと
自動でリンクを作成してくれる。
そこで、/etc/php/8.3/mods-available に xdebug-ini を作成する。
$ cd etc/php/8.3/mods-available
$ sudo touch xdebug.ini
$ sudo vi xdebug.ini
xdebug.ini
zend_extension = xdebug
(7) シンボリックリンクの作成
$ sudo phpenmod xdebug
このコマンドにより、
/etc/php/8.3/cli/conf.d/ と
/etc/php/8.3/apache2/conf.d/ に
20-xdebug.ini というシンボリックリンクが作成される。
xdebugのドキュメントには 99-xdebug.ini というファイル名が指定されていたので、
リンク名を変更した。
$ cd /etc/php/8.3/cli/conf.d
$ sudo mv 20-xdebug.ini 99-xdebug.ini
$ cd /etc/php/8.3/apache2/conf.d
$ sudo mv 20-xdebug.ini 99-xdebug.ini
(8) xdebug.ini の記述内容
xdebug.ini に何を書くか、まだよくわかっていないが、
とりあえず、以下の内容とした。
/etc/php/8.3/mods-available/xdebut.ini
zend_extension = xdebug
; ステップデバッグを有効化
xdebug.mode = develop, debug
; PHPの実行時にデバッグを自動的に開始する
xdebug.start_with_request = yes
; 接続先ホスト
xdebug.client_host = localhost
; 接続先ポート
xdebug.client_port = 9003
接続先ホストと接続先ポートについては、上の設定はデフォルトで設定されるようである。
書かずにapache2を再起動させ、そのあと、xdebug_info(); を実行したら、上のようになっていた。
xdebuginfo.php
<?php
xdebug_info();
(9) apache2を再起動
$ sudo systemctl restart apache2
参考
Xdebug徹底解説!環境ごとの設定方法から仕組みまでどこよりも詳しく解説します
カテゴリー: memo, php, Ubuntu
タグ: phpenmod, phpize, Xdebug
カウント: 38