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

ローカルでPHPのデバッグしたりする場合は、PHPの動作環境が必須になります。
PHPをインストールする先は、Windows10 Pro 64bitです。

Windows版PHPをダウンロード

上記サイトの
「Downloads」をクリックします。

今よく使ってるサーバーのPHPのバージョンが7.1なので
Old Stable PHP 7,1,26の
「Windows downLoads」をクリックします。
用途に合わせてバージョンを選択することが必要です。
特に指定する必要がない場合は、
Stableと書かれた最新バージョンが良いと思います。

PHPの同じバージョンでも
スレッドなし、マルチスレッド
64bit.、32bit
の組み合わせで4種類あるのですが
インストール先は、64bitで
想定するサーバーもハイスペック(マルチスレッド)
を考えているので、
マルチスレッドで64bitの
「VC14 x64 Thread Safe」のzipファイルを
ダウンロードします。
これもその時の環境に合わせて選択する必要があります。

Windows10にphpをインストール

インストールと言っても専用のインストーラがあるわけではないので
php本体のコピーと設定ファイルの作成と環境変数への登録を自力で行います。

php本体のコピー

Cドライブ直下にフォルダ名「php-7.1.26」(例)で
フォルダを作成
その中へダウンロードしたファイル(zipファイル)を移動
そして解凍します。

こんな感じに!
元のzipファイルは削除しても可能です。

php設定ファイル(php.ini)の作成

このフォルダ内の
「php.ini-development」ファイルをコピー
同フォルダに貼り付け後
ファイル名を「php.ini」に変更します。

拡張子変更時の警告メッセージが出ますが
「はい」をクリックします。

phpの設定ファイル
php.iniが出来ました。

環境変数へphp本体のパスを登録

エクスプローラのPC上にカーソルを移動して右クリック
コンテキストメニューの一番下
「プロパティ」をクリックします。

システム画面の
「システムの詳細設定」をクリックします。

システムのプロパティの
「環境変数」をクリックします。

システム環境変数の
「Path」を選択して
「編集」をクリックします。

環境変数名の編集で

①「新規」をクリックします。

② php本体のフォルダパス + ¥ を入力します。
(例 C:¥php-7.1.26¥)

③「OK」をクリックします。

開いたダイアログをすべて「OK」で閉じます。

これでphpのインストールは完了しました。

インストールしたPHPのバージョンを確認

Windowsのコマンドプロンプトを起動して
「php -v」と入力

このようにバージョン情報が表示されていれば、
インストールは成功しています。

ちなみに設定情報を表示するには
「php -i」を入力します。

設定情報は、数十行に及び表示されます。

 

PHP.iniの設定

PHPの各種設定をして実用出来るように変更します。
また、PHPの拡張モジュールを設定することで、
デフォルトでインストールされている拡張モジュールを使用することが出来ます。

使用可能メモリー上限値の設定

メモリーが足りないと処理が中断されたり、警告が出たりします。
必要に応じて使用できるメモリー上限値を変更します。
「php.ini」ファイルを編集します。
デフォルトでは、128Mバイトです。

例えば倍にする場合は、
「memory_limit = 256M」にします。
マークの行を変更してます。

; Maximum amount of memory a script may consume (128MB)
; http://php.net/memory-limit
memory_limit = 256M         

拡張モジュールのディレクトリ指定

作成した「php.ini」ファイルを編集します。

「php.ini」ファイルの
「;extension_dir = “ext”」の行を有効にします。
行の先頭にあるセミコロンを「;」削除します。
マークの行を変更してます。

; Directory in which the loadable extensions (modules) reside.
; http://php.net/extension-dir
; extension_dir = "./"
; On windows:
extension_dir = "ext"         

日本語用拡張モジュールを有効化

これも「php.ini」ファイルを編集します。
「php.ini」ファイルの
の「;extension=php_mbstring.dll」の行を有効にします。
行の先頭にあるセミコロンを「;」削除します。

その他必要な拡張モジュールがあれば
そのモジュールの行頭のセミコロンを「;」削除して設定を有効にします。
マークの行を変更してます。

;
; Windows Extensions
; Note that many DLL files are located in the extensions/ (PHP 4) ext/ (PHP 5+)
; extension folders as well as the separate PECL DLL download (PHP 5+).
; Be sure to appropriately set the extension_dir directive.
;
;extension=php_bz2.dll
;extension=php_curl.dll
;extension=php_fileinfo.dll
;extension=php_ftp.dll
;extension=php_gd2.dll
;extension=php_gettext.dll
;extension=php_gmp.dll
;extension=php_intl.dll
;extension=php_imap.dll
;extension=php_interbase.dll
;extension=php_ldap.dll
extension=php_mbstring.dll          
;extension=php_exif.dll      ; Must be after mbstring as it depends on it
;extension=php_mysqli.dll
;extension=php_oci8_12c.dll  ; Use with Oracle Database 12c Instant Client
;extension=php_odbc.dll
;extension=php_openssl.dll
;extension=php_pdo_firebird.dll
;extension=php_pdo_mysql.dll
;extension=php_pdo_oci.dll
;extension=php_pdo_odbc.dll
;extension=php_pdo_pgsql.dll
;extension=php_pdo_sqlite.dll
;extension=php_pgsql.dll
;extension=php_shmop.dll

続いてmbstringの設定を行います
日本語UTF-8の設定例です
マークの行を変更してます。

[mbstring]
; language for internal character representation.
; This affects mb_send_mail() and mbstring.detect_order.
; http://php.net/mbstring.language
mbstring.language = Japanese         

; Use of this INI entry is deprecated, use global internal_encoding instead.
; internal/script encoding.
; Some encoding cannot work as internal encoding. (e.g. SJIS, BIG5, ISO-2022-*)
; If empty, default_charset or internal_encoding or iconv.internal_encoding is used.
; The precedence is: default_charset < internal_encoding < iconv.internal_encoding
mbstring.internal_encoding =  UTF-8         

; Use of this INI entry is deprecated, use global input_encoding instead.
; http input encoding.
; mbstring.encoding_traslation = On is needed to use this setting.
; If empty, default_charset or input_encoding or mbstring.input is used.
; The precedence is: default_charset < intput_encoding < mbsting.http_input
; http://php.net/mbstring.http-input
mbstring.http_input = auto         

; Use of this INI entry is deprecated, use global output_encoding instead.
; http output encoding.
; mb_output_handler must be registered as output buffer to function.
; If empty, default_charset or output_encoding or mbstring.http_output is used.
; The precedence is: default_charset < output_encoding < mbstring.http_output
; To use an output encoding conversion, mbstring's output handler must be set
; otherwise output encoding conversion cannot be performed.
; http://php.net/mbstring.http-output
mbstring.http_output = UTF-8         

; enable automatic encoding translation according to
; mbstring.internal_encoding setting. Input chars are
; converted to internal encoding by setting this to On.
; Note: Do _not_ use automatic encoding translation for
;       portable libs/applications.
; http://php.net/mbstring.encoding-translation
mbstring.encoding_translation = On         

; automatic encoding detection order.
; "auto" detect order is changed according to mbstring.language
; http://php.net/mbstring.detect-order
mbstring.detect_order = auto         

PHP.iniの日本語設定の確認は

Windowsのコマンドプロンプトを起動して
「php -r print_r(mb_get_info());」と入力

日付・タイムゾーンの設定

「php.ini」ファイルを編集します。
デフォルトでは、設定されていません。

「;date.timezone =」を
「date.timezone = Asia/Tokyo」に
書き換えます。
マークの行を変更してます。

[Date]
; Defines the default timezone used by the date functions
; http://php.net/date.timezone
date.timezone = Asia/Tokyo        

その他使用目的に応じて「php.ini」の内容は変更します。