目次
はじめに
Windows11 の WSL(Ubuntu) 環境で PHP のバージョン管理を行うため phpenv を導入した。
一般的な作業なので ChatGPT を使って進めたが、結果は逆だった。
- 状況確認をせず修正を提案する
- 仮説を次々提示して遠回りさせる
- 環境依存の問題を考慮しない
つまり「作業を楽にするために使ったツールが、手間を増やした」状態になった。
この記事では
- Windows11 + WSL で phpenv を確実に導入する手順
- ChatGPT を無駄に暴走させないためのプロンプト をまとめる。
実行環境
- Windows11
- WSL2
- Ubuntu 24.04
- bash
まずここが一致していることを確認する。
lsb_release -a
echo $SHELL
環境が違う場合、この後の挙動は変わる。
phpenv を確実に導入する手順
1. phpenv の取得
sudo apt update
sudo apt install -y git
git clone https://github.com/phpenv/phpenv.git ~/.phpenv
git clone https://github.com/php-build/php-build.git ~/.phpenv/plugins/php-build
壊れていないか確認(ここを確認しないと必ずハマる)
ls ~/.phpenv/libexec/phpenv
2. 現在のシェルでのみ有効化(永続化はまだしない)
export PHPENV_ROOT="$HOME/.phpenv"
export PATH="$PHPENV_ROOT/bin:$PHPENV_ROOT/shims:$PATH"
eval "$(phpenv init -)"
hash -r
phpenv --version
ここが通らない状態で次に進まないこと。
3. PHPビルド依存を先に一括導入
(小出しに入れると無限にエラーが出る)
sudo apt install -y \
pkg-config build-essential autoconf bison re2c \
libxml2-dev libsqlite3-dev libssl-dev libcurl4-openssl-dev \
zlib1g-dev libzip-dev libonig-dev libreadline-dev libargon2-dev \
libbz2-dev libpng-dev libjpeg-dev libwebp-dev libfreetype6-dev \
libicu-dev libxslt1-dev libedit-dev libtidy-dev
確認
pkg-config --modversion libpng
pkg-config --modversion freetype2
pkg-config --modversion icu-i18n
4. PHPインストール
phpenv install 8.2.15
phpenv global 8.2.15
phpenv rehash
php -v
5. 起動直後から使えるようにする(既存設定を壊さない)
cat > ~/.bash_profile <<'EOF'
if [ -f ~/.profile ]; then
. ~/.profile
fi
if [ -f ~/.bashrc ]; then
. ~/.bashrc
fi
export PHPENV_ROOT="$HOME/.phpenv"
export PATH="$PHPENV_ROOT/bin:$PHPENV_ROOT/shims:$PATH"
eval "$(phpenv init -)"
EOF
確認
php -v
which php
ChatGPTが使えなかった理由
phpenv を入れるという単純な作業もまともに回答できなかったのでChatGPT自身に自己解析させた。
返答は以下の内容だった。
ChatGPTは「現在の環境状態を取得して判断している」のではなく、 よくあるケースを推測して提示しているだけである。そのためビルド系・環境依存の作業では次の現象が起きる。
- 実際の原因を特定しない
- 仮説を順番に試させる
- 失敗を積み重ねる
- 設定を壊す
つまりデバッガではなく、 「可能性列挙装置」として動作する。これを理解しないと作業量が増える。
ChatGPTを手間なくコントロールするプロンプト
今回のケースをもとにまとめた、おすすめプロンプトがこちら
あなたはトラブルシュート専用アシスタントとして振る舞う。
ルール:
・まず確認コマンドのみ出す
・結果を貼るまで次へ進まない
・推測で断定しない
・1ターンの作業は1ブロックのみ
・設定ファイル変更前にバックアップを提示
WSL Ubuntuで phpenv を導入する。
まず状態確認コマンドだけ出して。
これだけで回答の挙動が変わるはず。
まとめ
phpenv の導入自体は難しくない。 難しくしているのは「推測ベースのトラブルシュート」である。ChatGPTは便利だが、そのまま使うと作業を増やす。 使い方を制御すれば、初めて作業補助になる。
