🐘
ubuntu22.04 + asdf php 環境の構築時メモ
ubuntu22.04 + asdf php 環境の構築時メモ
私はpythonやnodejsやrubyなどの言語ランタイムを複数バージョンで管理したいことが多いのですが
dockerで構築することもあれば、dockerでくるまれた環境ではない、素の状態を扱いたいこともあります。その際asdfを使っています。
上記でasdfのpythonをセットアップしていた環境に
phpを追加でセットアップしました
そのメモを残しておきます。
※クリーンなubuntu22.04環境からセットアップもできそうな形で記述してみていますが、過不足あったらすみません
手順
1.asdf
asdfはbrewからインストールします。
$ brew install asdf
インストール後にshellの設定にasdf関連のスクリプトを追加します
$ echo -e "\n. \"$(brew --prefix asdf)/libexec/asdf.sh\"" >> ~/.bashrc
$ source .bashrc
2.plugin
asdfのpluginにphpを追加します
$ asdf plugin add php
3.php pluginの依存関係のインストール
asdfでは各言語のバージョンをinstallする際、言語ランタイムのソースコードからビルドをします。
macかつhomebrewだと下記のものをインストールするようですが
今回はaptで必要なものをinstallしていきました
$ sudo apt install autoconf automake bison build-essential re2c pkg-config \
libfreetype6-dev libgd-dev gettext libicu-dev libkrb5-dev libc6-dev \
libedit-dev libjpeg8-dev libpng-dev libxml2-dev libzip-dev zlib1g-dev \
libcurl4-openssl-dev libonig-dev libpq-dev
4.phpインストール
$ asdf install php 8.2.6
5.asdfでのバージョン指定
asdfでのglobal設定を先程インストールしたバージョンにセットすると
$ asdf global php 8.2.6
下記のようにphpコマンドを呼びさせるようになります
$ php -v
PHP 8.2.6 (cli) (built: May 24 2023 20:02:06) (NTS)
Copyright (c) The PHP Group
Zend Engine v4.2.6, Copyright (c) Zend Technologies
6.xdebugのインストール
xdebugが入っていないのでここまででセットアップしたasdf環境内のpecl
からセットアップします
$ pecl install xdebug
上記でbuildが完了したらiniファイルでextensionの読み込みをする記述をします
iniがscanされる場所は下記になります(YOUR_USER_NAMEはubuntuのログインユーザ名)
$ php -i|grep 'additional .ini files'
Scan this dir for additional .ini files => /home/YOUR_USER_NAME/.asdf/installs/php/8.2.6/conf.d
下記のようにxdebug.ini
などを作成すると
/home/YOUR_USER_NAME/.asdf/installs/php/8.2.6/conf.d/xdebug.ini
zend_extension=/home/YOUR_USER_NAME/.asdf/installs/php/8.2.6/lib/php/extensions/no-debug-non-zts-20220829/xdebug.so
xdebugの読み込みが完了します
$ php -v
PHP 8.2.6 (cli) (built: May 24 2023 20:02:06) (NTS)
Copyright (c) The PHP Group
Zend Engine v4.2.6, Copyright (c) Zend Technologies
with Xdebug v3.2.1, Copyright (c) 2002-2023, by Derick Rethans
Discussion