プログラミングノート

プログラミングの備忘録です

WindowsマシンにWebアプリケーション開発環境を( Apache2.4 + PHP7.1 ) 第2回

WindowsマシンにWebアプリケーションを開発する環境を準備します。ApachePHPを使います。

今回はPHPの準備を行います。

 

PHP

 

 

PHP ビルドの選択

 PHPApacheに読み込むには、mod_phpまたはmod_fastcgiが必要となります。今回はmod_phpを使います。

 mod_phpを使う場合、PHPはThread-Safe(TS)スレッドセーフのビルドを選択します。

 mod_fastcgiを使う場合、PHPはNon-Thread-Safe(NTS)のビルドを選択します。

 また、PHPApacheが同じバージョンのVisual C、同じCPU(x86またはx64)のビルドである必要があります。

 

 インストールしたApacheがVC14 x64で、またmod_phpを使いたいので、「PHP7.1(7.1.0)(2016年12月16日現在最新)」の「VC14 x64 Thread Safe」をダウンロードしました。

 

 
PHPインストールと設定
  1. PHP For Windows: Binaries and sources Releases から適切なバージョンを選択しダウンロードします。
  2. ダウンロードしたzipファイルを解凍後、展開します。(解凍後のフォルダ名を「php」に変更しました。)
  3. 展開したフォルダに含まれているphp.ini-productionをphp.iniという名前でコピーします。
  4. php.iniで下の内容を変更します。
  • extension_dir = ./xxxx 拡張モジュールを格納するディレクトリへのパス(絶対パス相対パス両方可能)
  • extension = xxxx.dll 起動時に読み込みたい拡張モジュール
  • log_errors = On エラーをログ出力するか(eroor_logディレクティブと組み合わせる)
  • error_log = xxxx.logまたはsyslog エラーログファイルへのパス(絶対パス相対パス両方可能。エラーログファイルはWebサーバが書き込めないといけません。「syslog」と入力するとWindowsのイベントログに記録されます)

 

 

変更は任意ですが、合わせて確認しておくとよいディレクティブがあります。

  • max_execution_time = ## スクリプト実行の最大時間。デフォルト30秒
  • memory_limit = ###M PHPが使用するメモリ量。デフォルト128M
  • display_errors = エラーメッセージをWebサーバに返すかどうか
  • open_basedir = PHPからのファイル操作を許可するディレクトリのパス
  • upload_max_filesize = ###M ファイルのアップロード・POSTするデータの最大サイズ

 

★open_basedirに設定したディレクトリ以外にphpファイルを配置し、そのファイルにブラウザからアクセスすると、下のエラーメッセージが表示されます。

open_basedir restriction in effect. File(・・・) is not within the allowed path(s):

 

 

 PHPApacheハンドラとして設定

 Apacheの設定ファイルhttpd.confを変更します。

 

1. ApachePHPモジュールを読み込むように設定します。

この設定により、拡張子.phpを含むすべてのファイルをPHPで処理します。

 

LoadModule php7_module c:/php/php7apache2_4.dll<php7apache2_4.dllの絶対パス

AddHandler application/x-httpd-php .php

 

 

2.PHPの設定ファイルphp.iniへのパスを設定します。

 

PHPIniDir c:/phpphp.iniを含むディレクトリの絶対パス

 

 

 

★上記「c:/php」はPHPを展開した環境に合わせて変更してください。

 

★ファイル名の最後が「.php」の場合だけPHPで処理したい場合は、下の設定を行います。

<FilesMatch /.php$>

SetHandler application/x-httpd-php

</FilesMatch>

 

Windows上でApache設定ファイルにパスを入力するとき、バックスラッシュ(\)を前向きスラッシュ(/)に変換する必要があります。

 

PHPが公式にサポートしているのは、ApacheLoungeです。

 

 

参照

PHPマニュアルより

Windows上でのPHPの手動インストール(http://php.net/manual/ja/install.windows.manual.php

古いWindowsシステムへのインストール(http://php.net/manual/ja/install.windows.legacy.index.php