MENU

Windows11 + Ubuntu(WSL) で phpenv を確実に動かす手順と、ChatGPTを手間なくコントロールするプロンプト

目次

はじめに

Windows11 の WSL(Ubuntu) 環境で PHP のバージョン管理を行うため phpenv を導入した。

一般的な作業なので ChatGPT を使って進めたが、結果は逆だった。

  • 状況確認をせず修正を提案する
  • 仮説を次々提示して遠回りさせる
  • 環境依存の問題を考慮しない

つまり「作業を楽にするために使ったツールが、手間を増やした」状態になった。

この記事では

  1. Windows11 + WSL で phpenv を確実に導入する手順
  2. 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は便利だが、そのまま使うと作業を増やす。 使い方を制御すれば、初めて作業補助になる。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

目次