パスは通さない
篠原 隆司
アフィリエイト広告を利用しています
このページの内容が役に立ったら X (旧twitter) でフォローして頂けると励みになります
挨拶や報告は無しで大丈夫です
本記事は「Windows11開発環境の構築ガイド : PHP / WEBアプリ開発 編」です。
プログラムの環境構築の話しをしていると出てくるのが「パスを通す」とか「環境変数」という謎の言葉
PHPに限りません。パソコンの知識が増えてくると「パスを通す」や「環境変数」という言葉をよく見かけるようになってきます
パスとは?
phpだったりexeだったり実行ファイルには置き場所があります。
例えば下記のような「C:\」からファイル名までを記述する形式を「絶対パス」と呼びます。
C:\sample\example.exe
この場合「example.exe」は「C:\sample」の中にあります。
このようにファイルがある場所を表す住所のことを「パス」と呼びます。
パスを通すとは?
C:\sample\example.exe
こちらの「example.exe」を実行したいとしましょう。
一般的には、デスクトップやエクスプローラからフォルダを辿って「example.exe」をダブルクリックすると思います。
これをコマンドラインやプログラムから実行する場合は次のようにファイルを指定する必要があります。
C:\sample\example.exe
これでも良いのですが、「C:\sample」の部分、つまりファイルがどこにあるかを省略することもできるのです。
example.exe
▲このように指定するだけで
C:\sample\example.exe
▲を指定したのと同じ意味を持たせることができるのです。
その方法が「パスを通す」です。
環境変数とは?
環境変数とは、パソコンの中のありとあらゆる場所から共通して参照されるデータのことです。
その中の1つに「パス」・・・「Path」があります。
「パスを通す」とは、環境変数にある「Path」に登録することを意味します。
「Path」に「C:\sample」を登録しておくことで 「example.exe」を指定するだけで
C:\sample\example.exe
▲を指定したことと同じ意味になる仕組みです。
むやみにパスは通さない
ここで言いたいのは「パスを通さないほうが良い」ということです。
プログラム開発を行っていくのであればパスを通さないことをお勧めしています。
入門書など書籍や技術サイトでは、セットアップ手順の途中で「パスを通す」という手順が出てくることがあります。
それを鵜呑みにせずに「パスを通さない方法」を考えましょう、ということです。
パスを通さない理由
長くプログラムを続けていると問題になるのがバージョン違い
PHPで開発を行っていてもバージョンが異なると動かなくなることがあります。
趣味で開発していたとしても、仕事として開発しているならなおさら、1つのプロジェクトだけを開発する、ということは考えづらいです。
たいていは複数のプロジェクトに携わっていくことになります。
それらのプロジェクトはそれぞれのバージョンで作成されています。
そんなとき複数のバージョンのPHPを同居させておくと、プロジェクトごとに切り替える手間が無くなり開発スピードが効率化できます。
「複数のバージョンを同居」
これを考えたときに環境変数にパスを設定していることがネックになります。
環境変数が本当に必要なら「必要になったときに設定する」で足ります。
その時にはその意味を分かっているはずなのでそうなってからでも遅くありません。
PHPファイルをコマンド実行する場合
たとえば、C:\sample に sample.php というファイルを作成し次のように書いているとしましょう。
<?php
echo date('Y-m-d H:i:s');
?>
現在日時を表示するだけのプログラムです。
これを実行するには次のようにします。
php "C:\sample/sample.php"
「php で C:\sample/sample.php を実行」という意味ですね。
ですがこれは環境変数に登録していないと使えません。
環境変数に登録しなくても次のような指定ができます。
C:\php\php-8.3.13-Win32-vs16-x64\php.exe "C:\sample/sample.php"
「php」ではなくphp.exeのフルパスを使います。
「環境変数に登録」というのはこのように "php" だけで実行できるようにすることです。
不要なことが分かってきたかなと思います。
例えば、PHP8.3.13 を "php" として登録したとします。じゃ、php7.4.6 で動かしたくなったときどうしましょう。PHP 5.6.31 で動かしたくなったときどうしましょう。
"php" に紐づけれるのは1つのバージョンだけです。
となると "php8"(PHP8系) とか "php7"(PHP7系) とかにしましょうか。
それも方法の1つです。
しばらく使っていくと "PHP80" (PHP8.0系) とか "PHP81"(PHP8.1系) にしておけばよかった、と思うことになるかもしれません。
で最終的には、"PHP8017"(PHP8.0.17) とか "PHP811"(PHP8.1.1) みたいになってくると思います。
こうなってくると「そもそも環境変数に登録する必要ある?その意味は?」ってなってきます。
php.exe への絶対パスが扱いやすいです。
仕事として行っていると色々なバージョンを扱うことになります。
過去案件の改修とかで古いバージョンを用意することはよくあります。
それでも環境変数に登録しておくと便利なこともあります。
それを見極められるようになってきたときは、そうしたら良いと思います。
【宣伝】弊社では2000年台前半頃からPHPを扱っており古いシステムでも解析して直したり再活用を行うことができます。お使いのシステムに気になることがありましたらお気軽にお問い合わせください。