VSCodeを導入してPHPのソースコードを編集しようとすると、PHPの実行環境への参照を求めるポップアップが出て少々目障りです。この記事ではWindowsホストOS上にPHPの実行環境をインストールする方法を紹介します。

公開日時:2021/05/07 08:32 最終更新:2021/06/09 22:17   PHP
PHP Windows インストール

WindowsホストOSにPHPをインストールする

はじめに

で、VirtualBox上にCentOS 7がインストールされている事を前提としています。

また、本記事はVSCodeの導入のようにMicrosoft Visual Studio Code(VSCode)を導入してPHPでのソフトウェア開発をするにあたってホストOS側にもPHPの実行環境を求められる為、そのインストールを行うのが目的です。

Windows版PHPバイナリの入手

Windows版PHPは実行可能なバイナリファイルとしてPHPの公式サイトから入手できます。

公式サイト:PHP: Hypertext Preprocessor

php.net

CentOS上にPHPの開発環境を作成するの記事でインストールしたPHPのヴァージョンが7.4.18でしたが、先日5月6日に7.4.19がリリースされたようですのでこちらをインストールし、後でCentOSのPHPもアップデートします。

PHPのヴァージョン確認

公式サイト:PHP For Windows: Binaries and sources Releases

PHPにはThread Safe版(TS)とNon Thread Safe版(NTS:マルチスレッド環境を想定していない実装)がありますが、用途によって使い分ける必要があり説明が長くなります。

この記事の目的はVSCodeで指定するPHP実行環境を作る事ですのでTS版、NTS版どちらでも構いませんが、ここではTS版をインストールします。

Windows版PHPインストーラー

ダウンロードされた.zipファイルを解凍すると、実行可能なPHPのバイナリであるphp.exeを含む諸物のファイルが格納されたフォルダが出てきます。

PHP実行環境一式

このディレクトリをC:\など、任意の場所に移動してください。

環境変数PATHの設定

今はストレージに保存しただけですので、PHPは実行可能なプログラムとしてホストOSに認識されていません。

php -v

上記コマンドを実行すると、以下のようなエラーが表示される筈です。

※このエラーが表示されずPHPのヴァージョンが表示された方は既にPHPの実行環境がインストールされて環境変数PATHが設定されているので適切に項を読み飛ばしてください。

コマンドが見つからない

PHPを実行する為には保存ディレクトリにあるphp.exeを絶対パスで指定するか、保存ディレクトリにカレントディレクトリを移してからphp.exeを指定して実行する必要があります。

それでは不便ですので、シェルでphpと指定するだけでphp.exeが実行されるように環境変数PATHにphp.exeまでの絶対パスを記述しておきましょう。

Windows 10の場合、環境変数の設定画面は様々なところからアクセスできますが、一番わかりやすい方法はまず、デスクトップの『PC(以前のWindowsではマイコンピュータと呼んでいた物)』を右クリックしてコンテキストメニューを開き『プロパティ』から『設定』ウィンドウを開きます。

PCのコンテキストメニュー

システムの詳細情報

『設定』ウィンドウが開いたら『詳細情報』の中にある『関連設定』から、『システムの詳細設定』をクリックしてください。『システムのプロパティ』ウィンドウが開きます。

このウィンドウの下の方に『環境変数』というボタンがありますので、それをクリックして環境変数ダイアログを開いてください。

環境変数設定

環境変数ダイアログ

環境変数ダイアログは、上がユーザ用の環境変数、下がシステム全体の環境変数なのでどのユーザでログインしていても利用できます。

どちらに設定しても良いですが、今回は下のシステム全体の環境変数PATHとして設定します。

下の『Path』を選択してから『編集』ボタンをクリックしてください。

環境変数名の編集

開いた『環境変数名の編集』ダイアログ(ダイアログ名がおかしいですね…)で、『新規』ボタンをクリックして、先ほどダウンロードして配置したphp.exeのあるディレクトリ(フォルダ)への絶対パスを指定してください。

php.exeへの絶対パスを指定

入力が終わったら『OK』をクリックして変更を確定させ、全てのダイアログを閉じてください。また、シェルも起動します。

シェルが再起動したら、以下のコマンドでphpのバージョンチェックをしてみます。

php -v

Visual C++ 再配布可能パッケージを求められる

※このWarningが表示されずPHPのバージョンが表示された方は既にVisual Studioランタイムが導入されているのでこの項は読み飛ばしてください。

Windows版PHPではMicrosoft Visual Studioのランタイム(コンピュータプログラムの実行時〈ランタイム〉にメインプログラムと常に同時に存在して利用される前提のライブラリ)が必要ですが、わたしのPCにはインストールされていなかったようです。

そこで、『Visual Studio 2019 の Microsoft Visual C++ 再頒布可能パッケージ』を、以下のMicrosoft公式サイトからダウンロードし、インストールします。

公式サイト:『Visual Studio 2019 for Windows および Mac のダウンロード

その他のツールとフレームワーク』>『Visual Studio 2019 の Microsoft Visual C++ 再頒布可能パッケージ』

ランタイムのダウンロードメニュー

vc14ランタイムインストーラー

インストーラーがダウンロードされたら、実行してランタイムをインストールしてください。

再度シェルを起動しなおし、上記コマンドを実行すると、今度は正しくバージョンが表示される筈です。

PHPが正しく動作した

php.iniを作成

ここで、PHPの設定ファイルであるphp.iniを作成します。

雛形としてphp.exeのあるディレクトリ内にphp.ini-developmentphp.ini-productionがありますが、今作成しているのは開発環境なのでphp.ini-developmentをコピーしてphp.iniというファイルを作ります。

ionCube Loaderの導入

PHPの実行に直接必要なわけではありませんが、当サイトが管理している『Pine Framework』や、その他の暗号化されたPHPコードを実行するにはionCube社(英国)が提供するionCube Loaderが必要です。

ionCubeは、PHPのソースコード暗号化・復号に於いて、一番シェアがある製品です。

ionCube Loaderのダウンロード

ダウンロードページLoader Download - PHP Encoder, protection, installer and performance tools from ionCubeにアクセスし、対象のLoaderをダウンロードします。

上記ではPHPの『VC15 TS版』をダウンロードしてインストールしたので、ここでは『Windows VC15 (64bits)』のzipファイルをクリックしてダウンロードする事にします。

ionCube Loaderのインストーラー

更新のお知らせが必要か?

zipリンクをクリックすると、Loaderの更新のお知らせが必要か聞かれます。特に必要なければ No thanks をチェックしてNextをクリックしてください。zipファイルがダウンロードされます。

ダウンロードされたzipファイル

ionCube Loaderのインストール

ダウンロードされたzipファイルを解凍すると、中にioncubeフォルダがあり、その中に以下のようなファイルがあります。

ioncubeディレクトリ

このフォルダ内で、PowerShellを立ち上げて以下のコマンドを入力し、PHPのビルトイン・サーバー(組み込みサーバー)を起動します。

php -S localhost:8080

built-inサーバーの起動

これで、localhost(お使いのパソコン)上でWEBサーバーが立ち上がり、ポート番号:8080で待受を開始しました。

※もし上記コマンドでエラーが出た場合は、既にポート番号:8080が別のアプリケーションで使用されていると考えられるので、任意の別の番号でサーバーを立ち上げてください。

ブラウザを立ち上げて、ioncubeフォルダ内のloader-wizard.phpにアクセスしてみましょう。

http://localhost:8080/loader-wizard.php

ionCube Loader Wizard

Installation InstructionsセクションにionCube Loaderのインストール手順が記載されていますが、このうちの『1. Download the following archive of Windows VC15 x86-64 Loaders: zip』は既に済んでいます。

次は 2. に示されているパスに、ioncubeフォルダをコピーして配置してください。※ioncubeフォルダ内でビルトインサーバーを起動してこのページを開いているため移動はしないでください

ioncubeフォルダをコピーしてPHPのフォルダ内に配置したら、3. に従ってphp.iniを編集します。

Edit the file C:\php-7.4.19-Win32-vc15-x64\php.ini and before any other zend_extension lines ensure that the following is included:

C:\php-7.4.19-Win32-vc15-x64\php.iniを編集し、他のzend_extensionの行よりも前に以下の行を追記してください。

zend_extension = "C:\php-7.4.19-Win32-vc15-x64\ioncube\ioncube_loader_win_7.4.dll"

zend_extensionというのは、PHPの発展に大きく貢献したZend Technologies Ltd.(英)のPHP拡張であるZend拡張モジュールの事です。

参考:ゼンド・テクノロジーズ - Wikipedia

参考:コア php.ini ディレクティブに関する説明

Alternatively, replace your current C:\php-7.4.19-Win32-vc15-x64\php.ini file with this new php.ini file.

或いは、現在のC:\php-7.4.19-Win32-vc15-x64\php.iniをリンクされているphp.iniファイルに置き換えてください。(※ローカルでのダウンロードになるため、ブラウザのセキュリティ警告が表示されます)

ここでは、zend_extension行をphp.iniの先頭に追記する方法を採用します。

php.iniにzend_extensionを追記

zend_extension行を追記したら、4. に従ってビルトイン・サーバーを再起動してください。ビルトイン・サーバーの再起動はPowerShell上でCtrl+Cを2回押すか、PowerShellウィンドウを一旦閉じます。

再度ionCubeローダーフォルダ内で立ち上げたPowerShellウィンドウで以下のコマンドを入力し、ビルトイン・サーバーを立ち上げてください。

php -S localhost:8080

ionCube Loader Wizardページの 5. に従ってページをリロードしましょう。以下のようなページが表示されればionCube Loaderのインストールは完了です。

ionCube Loade インストール完了

php.iniの追加設定

あとは、php.iniの最低限の設定です。

設定の仕方はCentOS上にPHPの開発環境を作成するに示しましたが、インストールされた初期状態のphp.iniの内容が違いますので以下に設定項目を記します。

最低限として以下を設定してください。

date.timezone = Asia/Tokyo
mbstring.language = Japanese
mbstring.detect_order = UTF-8,SJIS-WIN,SJIS,EUC-JP,JIS,ASCII
mbstring.encoding_translation = 0
mbstring.substitute_character = none

仮想マシン上のPHPをアップデートする

VirtualBox上のPHPのバージョンが7.4.18でしたので7.4.19にアップデートしようと思います。

SSHでログインした状態で、以下のコマンドでアップデートが出来ます。

sudo yum update --enablerepo=remi,remi-php74 php

PHPのアップデート

アップデート完了

CentOSにインストールされているPHPはNTS版で、TS版を利用するにはソースコードをコンパイルしてインストールする必要があるようですが、PHP自体が標準でThreadをサポートしていない為、敢えてTS版を導入するメリットはあまりないようです。ですからこちらはNTS版のままにしておきます。

まとめ

以上で、Windows ホストOSへのPHPのインストールは終了です。これで、VSCodeでPHPのプログラムコードを不自由なく編集できるようになりました。

記事リンク