このページの2つのバージョン間の差分を表示します。
両方とも前のリビジョン 前のリビジョン 次のリビジョン | 前のリビジョン 次のリビジョン 両方とも次のリビジョン | ||
php:7.2:httpd.conf [2020/03/04 12:27] y2sunlight [CGIとしてのPHP7の設置] |
php:7.2:httpd.conf [2020/11/20 10:04] y2sunlight [Apache2拡張モジュールとしてのPHP7の設置] |
||
---|---|---|---|
行 1: | 行 1: | ||
====== PHP7.2 Apache2の設定 ====== | ====== PHP7.2 Apache2の設定 ====== | ||
- | --- //[[http:// | + | Version 7.2 --- [[http:// |
+ | Version 7.3 --- [[http://www.y2sunlight.com|y2sunlight]] 2020-03-06 \\ | ||
+ | |||
+ | > PHP7.2をPHP7.3と読み替えても内容は同じです | ||
[[php: | [[php: | ||
関連記事 | 関連記事 | ||
- | * [[xampp: | ||
* PHP7.2 Apache2の設定 | * PHP7.2 Apache2の設定 | ||
* [[php: | * [[php: | ||
行 11: | 行 13: | ||
---- | ---- | ||
- | 本編ではローカル環境にPHPスクリプトのテスト環境を構築しています。[[xampp: | + | ===== 概要 ===== |
+ | |||
+ | 本編ではローカル環境にPHPスクリプトのテスト環境を構築しています。[[xampp: | ||
以下では、PHP7.2をApache2拡張モジュール(php7_module)またはCGIの何れかで使用するためのApache2の設定について説明します。Apacheの基本設定については「[[apache: | 以下では、PHP7.2をApache2拡張モジュール(php7_module)またはCGIの何れかで使用するためのApache2の設定について説明します。Apacheの基本設定については「[[apache: | ||
行 19: | 行 23: | ||
XAMPPを使ったインストールでは、Apache2のphp関連の設定は以下のファイルで行われています: | XAMPPを使ったインストールでは、Apache2のphp関連の設定は以下のファイルで行われています: | ||
< | < | ||
- | D: | + | {XAMPP Install folder}\apache\conf\extra\httpd-xampp.conf |
</ | </ | ||
Apache2のphpの設定を変更する場合は、このファイル(httpd-xampp.conf)を変更するのが良いと思います。 | Apache2のphpの設定を変更する場合は、このファイル(httpd-xampp.conf)を変更するのが良いと思います。 | ||
- | ===== Apache2拡張モジュールとしてのphp7の設置 ===== | + | \\ |
- | httpd-xampp.conf | + | ===== Apache2拡張モジュールとしてのPHP7の設置 ===== |
- | < | + | < |
# | # | ||
# PHP-Module setup | # PHP-Module setup | ||
行 44: | 行 48: | ||
</ | </ | ||
- | ここではphp7で必要な3つのファイル(php7ts.dll、libpq.dll、php7apache2_4.dll)をロードし、拡張子がphpのファイルに対するWebサーバーの処理を特定のハンドラ(application/ | + | ここでは、[[https:// |
+ | |||
+ | === スレッドセーフ === | ||
+ | |||
+ | PHPにはマルチスレッド環境で安全に動作することを意図した実装( '' | ||
+ | |||
+ | ZTS 版も NTS 版もそれ単体では、どちらでも同じように動作し、通常は意識する必要はありませんが、PHP拡張モジュールをインストール場合には、どちらで動いているかを調べる必要があります。これは以下のコマンド( '' | ||
+ | |||
+ | < | ||
+ | > php -i | find " | ||
+ | |||
+ | Thread Safety => enabled | ||
+ | Thread API => Windows Threads | ||
+ | </ | ||
+ | |||
+ | また、Winodwsバイナリとして配布されているPHP7ではDLLの名前がスレッドセーフか否かによって異なっています。 | ||
+ | |||
+ | * php7ts.dll --- '' | ||
+ | * php7.dll --- '' | ||
+ | |||
+ | PHPの公式配布サイト | ||
+ | * https:// | ||
+ | |||
+ | 但し、いわゆる野良ビルト(一般ユーザーが独自にビルドを行って配布しているパッケージ)のDLLでは、ファイル名前からスレッドセーフか否かを判断することはできません。 | ||
+ | |||
+ | \\ | ||
===== CGIとしてのPHP7の設置 ===== | ===== CGIとしてのPHP7の設置 ===== | ||
行 61: | 行 91: | ||
</ | </ | ||
- | ここでは、SetHandlerによって拡張子がphpのファイルに対するWebサーバーの処理を特定のハンドラ(application/ | + | ここでは、[[https:// |
+ | |||
+ | 尚、php7をCGIで起動するには、上の設定のコメントを解除して、「Apache2拡張モジュールとしてのphp7の設置」の方をコメントにすることで行えます。 | ||
+ | |||
+ | \\ | ||
- | コメント | ||
===== 設定の確認 ===== | ===== 設定の確認 ===== | ||
行 70: | 行 103: | ||
> http:// | > http:// | ||
- | 上のURLを実行してphp7をApache2拡張モジュール(php7_module)として、またはCGIとして動かした場合のphpinfo() の違いを確認してください。それぞれ以下のように表示されるはずです。 | + | 上のURLを実行してphp7をApache2拡張モジュール(php7_module)として、またはCGIとして動かした場合のphpinfo() の違いを確認してください。それぞれ以下のように表示されます。 |
- | > [Server API]Apache 2.0 Handler --- (php7_moduleの場合) | + | > [Server API] Apache 2.0 Handler --- (php7_moduleの場合) |
- | > [Server API]CGI/ | + | > [Server API] CGI/FastCGI --- (CGIの場合) |
+ | \\ |