Ground Sunlight

Windowsで作る - Webプログラミングの開発環境(PHP)

ユーザ用ツール

サイト用ツール


サイドバー

メインメニュー

道具箱

フレームワーク編

REST-API構築編

Webサービス編

メタ


このページへのアクセス
今日: 1 / 昨日: 0
総計: 22

php:7.2:httpd.conf
本編は投稿中です。しばらくお待ち下さい。

PHP7.2 Apache2の設定 

y2sunlight 2019-10-17

PHPに戻る

関連記事


本編ではローカル環境にPHPスクリプトのテスト環境を構築しています。従ってApacheの設定は、公開用サーバなどの設定とはまったく異なります。本編でのApacheの基本設定については「ローカルサーバ構築講座 Apache 2.0; 5.httpd.confの編集」を参照して下さい。

以下では、PHP5を使用するためにはApache2の設定ファイル(httpd.conf)を編集します。本編では基本的にPHP5のApache2拡張モジュール(mod_php5)を使用しますが、 特定のURLパス( http://localhost/cgi/ )への要求に対してはCGIとして使かえるようにします。尚、PHP5のApache2設定に関する情報は以下のURLから入手できます。

Apache2拡張モジュールとしてのPHP5の設置

Apache2拡張モジュール(mod_php5)の追加

### Section 1: Global Environment
  ・
  ・
LoadModule php5_module "C:/php5/php5apache2.dll"

httpd.conf 「Section 1: Global Environment」内の「Dynamic Shared Object (DSO) Support」以下に上の行を追加します。

Apache2拡張モジュール(mod_php5)の設定

#
# Configuring PHP5/Server-Module
#
<IfModule mod_php5.c>
AddType application/x-httpd-php .php
PHPIniDir "C:/php5"
</IfModule>

AddTypeディレクティブを使用して、PHPスクリプトファイル(拡張子が.php)をMIMEタイプ(application/x-httpd-php)にマッピングします。このMIMEタイプのファイルはPHP5のApache2拡張モジュール(mod_php5)で処理されます。

PHPIniDirは mod_php5のディレクティブでphp.iniの設置場所(本編では:C:\php5)を指定します。

<IfModule mod_php5.c>は

LoadModule php5_module "C:/php5/php5apache2.dll"

と関連付けられています。php5apache2.dll がロードされている場合に<IfModule>ブロック内が評価されます。尚、<IfModule>内のモジュール名はコンパイルした時のモジュールのファイル名(mod_php5.c)になります。

CGIとしてのPHP5の設置

スクリプトエイリアスの設定

# PHP5/CGI
<Directory "C:/php5">
  AllowOverride None
  Options None
  Order Allow,Deny
  Allow from localhost
  Allow from 192.168.1.0/24
</Directory>
ScriptAlias /php5/ "C:/php5/"

<Directory>ディレクティブを使用してPHP/CGIディレクトリの為のアクセス制御を記述します。ここではPHPのCGIバイナリ(C:\php5\php-cgi.exeなどのファイル)へのアクセス許可を目的としているので、AllowOverrideやOptionsはNoneにしています。また、ローカルホストとLAN内の特定のホストに対してのみアクセスを許可しています。

ScriptAliasはPHP5のインストールディレクトリ(C:\php5)をURLパス/php5/にマッピングし、このディレクトリでのCGIの実行を許可します。

PHP/CGIの設定

<Directory "D:/WWWRoot/cgi">
  AddType application/x-httpd-php5-cgi .php
  Action application/x-httpd-php5-cgi "/php5/php-cgi.exe"
</Directory>

特定のURLパス( http://localhost/cgi/ )内のPHPスクリプトファイル(拡張子が.php)への要求に対しては、PHPがCGIとして使つかえるように設定しています。

AddTypeディレクティブを使用して、PHPスクリプトファイル(拡張子が.php)を独自のMIMEタイプ(application/x-httpd-php5-cgi)にマッピングします。このMIMEタイプのファイルはActionディレクティブで指定されているCGIで処理されます。PHP5のApache2拡張モジュール(mod_php5)で処理されます。リクエストされた元のURLとファイルパスはCGI標準の環境変数 PATH_INFO と PATH_TRANSLATED を使って伝えられます。

設定の確認

簡単なPHPスクリプトを作成し設定の確認を行います。

info.php <cpde php> <?php phpinfo() ?> </code>

上のPHPスクリプトを下記の2箇所に作成します。(本編でのApache2ドキュメントルートはD:\WWWRootです)

D:\WWWRoot — (mod_php5用)
D:\WWWRoot\cgi — (PHP/CGI用)

両方のPHPスクリプトをブラウザから実行して違いを確認します。

http://localhost/info.php — (mod_php5の場合)
http://localhost/cgi/info.php — (PHP/CGIの場合)

TODO:画像貼り付け(phpinfo)

上の実行例は mod_php5の場合です。画面表示中の[Server API]を見てください。両者の違いが分かるはずです。

[Server API]Apache 2.0 Handler — (mod_php5の場合)
[Server API]CGI/FastCGI — (PHP/CGIの場合)

また、[Configuration File (php.ini) Path]がC:\php5\php.ini になっている事も確認できます。

php/7.2/httpd.conf.txt · 最終更新: 2019/10/17 13:39 by tanaka