このページの2つのバージョン間の差分を表示します。
| 両方とも前のリビジョン 前のリビジョン 次のリビジョン | 前のリビジョン | ||
|
php:7.2:httpd.conf [2019/10/17 12:57] tanaka |
php:7.2:httpd.conf [2020/11/24 10:31] (現在) y2sunlight [PHP7.2 Apache2の設定 ] |
||
|---|---|---|---|
| 行 1: | 行 1: | ||
| - | > **本編は投稿中です。しばらくお待ち下さい。** | + | ====== PHP7.2 Apache2の設定 ====== |
| + | Version 7.2.22 --- [[http:// | ||
| + | Version 7.3.15 --- [[http:// | ||
| - | ---- | + | > PHP7.2をPHP7.3と読み替えても内容は同じです |
| - | + | ||
| - | ====== | + | |
| - | --- // | + | |
| - | [[mariadb:top|MariaDBに戻る]] | + | [[php:top|PHPに戻る]] |
| 関連記事 | 関連記事 | ||
| - | * [[xampp: | ||
| * PHP7.2 Apache2の設定 | * PHP7.2 Apache2の設定 | ||
| * [[php: | * [[php: | ||
| + | * [[php: | ||
| + | * [[php: | ||
| ---- | ---- | ||
| - | 本編ではローカル環境にPHPスクリプトのテスト環境を構築しています。従ってApacheの設定は、公開用サーバなどの設定とはまったく異なります。本編でのApacheの基本設定については「ローカルサーバ構築講座 Apache 2.0; 5.httpd.confの編集」を参照して下さい。 | + | ===== 概要 ===== |
| - | 以下では、PHP5を使用するためにはApache2の設定ファイル(httpd.conf)を編集します。本編では基本的にPHP5のApache2拡張モジュール(mod_php5)を使用しますが、 | + | 本編ではローカル環境にPHPスクリプトのテスト環境を構築しています。[[xampp: |
| - | > http://www.php.net/ | + | 以下では、PHP7.2をApache2拡張モジュール(php7_module)またはCGIの何れかで使用するためのApache2の設定について説明します。Apacheの基本設定については「[[apache:2.4:httpd.conf|Apache2.4 httpd.confの編集]]」を参照して下さい。 |
| - | ===== Apache2拡張モジュールとしてのPHP5の設置 ===== | + | === Apache2のphp関連の設定ファイル |
| - | Apache2拡張モジュール(mod_php5)の追加 | + | XAMPPを使ったインストールでは、Apache2のphp関連の設定は以下のファイルで行われています: |
| < | < | ||
| - | ### Section 1: Global Environment | + | {XAMPP Install folder}\apache\conf\extra\httpd-xampp.conf |
| - | ・ | + | |
| - | ・ | + | |
| - | LoadModule php5_module " | + | |
| </ | </ | ||
| - | httpd.conf | + | Apache2のphpの設定を変更する場合は、このファイル(httpd-xampp.conf)を変更するのが良いと思います。 |
| - | Apache2拡張モジュール(mod_php5)の設定 | + | \\ |
| - | < | + | |
| + | ===== Apache2拡張モジュールとしてのPHP7の設置 ===== | ||
| + | |||
| + | < | ||
| # | # | ||
| - | # Configuring PHP5/Server-Module | + | # PHP-Module |
| # | # | ||
| - | <IfModule mod_php5.c> | + | LoadFile " |
| - | AddType | + | LoadFile " |
| - | PHPIniDir "C:/php5" | + | LoadModule php7_module " |
| - | </IfModule> | + | |
| + | <FilesMatch "\.php$"> | ||
| + | | ||
| + | </FilesMatch> | ||
| + | < | ||
| + | SetHandler application/ | ||
| + | </FilesMatch> | ||
| </ | </ | ||
| - | AddTypeディレクティブを使用して、PHPスクリプトファイル(拡張子が.php)をMIMEタイプ(application/ | + | ここでは、[[https:// |
| - | PHPIniDirは mod_php5のディレクティブでphp.iniの設置場所(本編では:C: | + | === スレッドセーフ === |
| - | < | + | PHPにはマルチスレッド環境で安全に動作することを意図した実装( '' |
| - | < | + | |
| - | LoadModule php5_module " | + | |
| - | </ | + | |
| - | と関連付けられています。php5apache2.dll がロードされている場合に< | + | ZTS 版も NTS 版もそれ単体では、どちらでも同じように動作し、通常は意識する必要はありませんが、PHP拡張モジュールをインストール場合には、どちらで動いているかを調べる必要があります。これは以下のコマンド( '' |
| - | ===== CGIとしてのPHP5の設置 ===== | + | < |
| + | > php -i | find " | ||
| - | スクリプトエイリアスの設定 | + | Thread Safety => enabled |
| - | <code> | + | Thread API => Windows Threads |
| - | # PHP5/CGI | + | |
| - | < | + | |
| - | AllowOverride None | + | |
| - | Options None | + | |
| - | Order Allow, | + | |
| - | Allow from localhost | + | |
| - | Allow from 192.168.1.0/ | + | |
| - | </ | + | |
| - | ScriptAlias /php5/ " | + | |
| </ | </ | ||
| - | < | + | また、Winodwsバイナリとして配布されているPHP7ではDLLの名前がスレッドセーフか否かによって異なっています。 |
| - | ScriptAliasはPHP5のインストールディレクトリ(C: | + | * php7ts.dll --- '' |
| + | * php7.dll --- '' | ||
| - | PHP/CGIの設定 | + | PHPの公式配布サイト |
| - | < | + | * https://windows.php.net/download/ |
| - | < | + | |
| - | AddType application/ | + | |
| - | Action application/ | + | |
| - | </Directory> | + | |
| - | </code> | + | |
| - | 特定のURLパス( http:// | + | 但し、いわゆる野良ビルト(一般ユーザーが独自にビルドを行って配布しているパッケージ)のDLLでは、ファイル名前からスレッドセーフか否かを判断することはできません。 |
| - | AddTypeディレクティブを使用して、PHPスクリプトファイル(拡張子が.php)を独自のMIMEタイプ(application/ | + | \\ |
| - | ===== 設定の確認 | + | ===== CGIとしてのPHP7の設置 |
| - | 簡単なPHPスクリプトを作成し設定の確認を行います。 | + | <code xml httpd-xampp.conf> |
| - | + | # | |
| - | info.php | + | # PHP-CGI setup |
| - | < | + | # |
| - | <?php phpinfo() ?> | + | #< |
| + | # SetHandler application/ | ||
| + | #</ | ||
| + | #<IfModule actions_module> | ||
| + | # Action application/ | ||
| + | #</ | ||
| </ | </ | ||
| - | 上のPHPスクリプトを下記の2箇所に作成します。(本編でのApache2ドキュメントルートはD: | + | ここでは、[[https:// |
| - | > D:\WWWRoot --- (mod_php5用) | + | 尚、php7をCGIで起動するには、上の設定のコメントを解除して、「Apache2拡張モジュールとしてのphp7の設置」の方をコメントにすることで行えます。 |
| - | > D: | + | |
| - | 両方のPHPスクリプトをブラウザから実行して違いを確認します。 | + | \\ |
| - | > http:// | + | ===== 設定の確認 ===== |
| - | > http:// | + | |
| - | TODO: | + | XAMPPでは以下のURLでphpinfo()を動かすことができます: |
| - | 上の実行例は mod_php5の場合です。画面表示中の[Server API]を見てください。両者の違いが分かるはずです。 | + | > http:// |
| - | [Server API]Apache 2.0 Handler (mod_php5の場合) | + | 上のURLを実行してphp7をApache2拡張モジュール(php7_module)として、またはCGIとして動かした場合のphpinfo() の違いを確認してください。それぞれ以下のように表示されます。 |
| - | [Server API]CGI/ | + | |
| - | また、[Configuration File (php.ini) Path]がC: | + | > [Server API] Apache 2.0 Handler --- (php7_moduleの場合) |
| + | > [Server API] CGI/FastCGI --- (CGIの場合) | ||
| + | \\ | ||