このページの2つのバージョン間の差分を表示します。
| 両方とも前のリビジョン 前のリビジョン 次のリビジョン | 前のリビジョン | ||
|
php:7.2:php.ini [2020/03/05 14:56] y2sunlight [[PHP]動的エクステンション] |
php:7.2:php.ini [2020/11/24 10:31] (現在) y2sunlight [PHP7.2 php.iniの編集] |
||
|---|---|---|---|
| 行 1: | 行 1: | ||
| ====== PHP7.2 php.iniの編集 ====== | ====== PHP7.2 php.iniの編集 ====== | ||
| - | --- //[[http:// | + | Version 7.2.22 |
| + | Version 7.3.15 --- [[http://www.y2sunlight.com|y2sunlight]] 2020-03-06 \\ | ||
| + | |||
| + | > PHP7.2をPHP7.3と読み替えても内容は同じです | ||
| [[php: | [[php: | ||
| 関連記事 | 関連記事 | ||
| - | * [[xampp: | ||
| * [[php: | * [[php: | ||
| * PHP7.2 php.iniの編集 | * PHP7.2 php.iniの編集 | ||
| + | * [[php: | ||
| + | * [[php: | ||
| ---- | ---- | ||
| - | 本編ではローカル環境にPHPスクリプトのテスト環境を構築しています。従ってPHPの設定は、公開用サーバなどの設定とは異なります。セキュリティに関する考慮などをしていませんのでご注意下さい。また、設定ファイル等の存在場所は[[xampp: | + | ===== 概要 ===== |
| + | |||
| + | 本編ではローカル環境にPHPスクリプトのテスト環境を構築しています。従ってPHPの設定は、公開用サーバなどの設定とは異なります。セキュリティに関する考慮などをしていませんのでご注意下さい。また、設定ファイル等の存在場所はXAMPPの設定に従います。 | ||
| PHPの初期設定はphp.iniで行います。php.iniは以下の場所にあります。 | PHPの初期設定はphp.iniで行います。php.iniは以下の場所にあります。 | ||
| < | < | ||
| - | D: | + | {XAMPP Install Folder}\php\php.ini |
| </ | </ | ||
| 行 40: | 行 46: | ||
| に関する設定があります。次に各モジュールを設定するディレクティブが現れます(Module Settings)。ここでは、[MySQL]や[mbstring]のようなセクションヘッダらしきもので区切られています。 | に関する設定があります。次に各モジュールを設定するディレクティブが現れます(Module Settings)。ここでは、[MySQL]や[mbstring]のようなセクションヘッダらしきもので区切られています。 | ||
| - | 以下では、本編の目的である「PHPスクリプトのテスト環境の構築」を行うための設定内容を、php.ini で出現するディレクティブの順に挙げます。尚、ここでは、インストール後に変更したもの及び説明のために特に重要と思われる主要な設定内容のみを挙げています。php.iniに関する詳細は、以下を参照して下さい。 | + | php.iniに関する詳細は、以下を参照して下さい。 |
| - | > https:// | + | |
| + | * https:// | ||
| + | |||
| + | \\ | ||
| + | |||
| + | ===== テスト環境のphp.ini ===== | ||
| + | |||
| + | 以下では、本編の目的である「PHPスクリプトのテスト環境の構築」を行うための設定内容を、php.ini で出現するディレクティブの順に挙げます。尚、ここでは、インストール後に変更したもの及び説明のために特に重要と思われる主要な設定内容のみを挙げています。 | ||
| ==== [PHP]言語オプション ==== | ==== [PHP]言語オプション ==== | ||
| 行 51: | 行 63: | ||
| output_bufferingは出力バファリングの設定を行います。OnまたはOffで指定します。出力バファリングをOnにすると、HTTP BODYを出力した後でもHTTPヘッダが出力できます。Onの代わりに実際のバファサイズの制限(4096)などを指定する事もできます。 | output_bufferingは出力バファリングの設定を行います。OnまたはOffで指定します。出力バファリングをOnにすると、HTTP BODYを出力した後でもHTTPヘッダが出力できます。Onの代わりに実際のバファサイズの制限(4096)などを指定する事もできます。 | ||
| + | |||
| + | \\ | ||
| + | |||
| + | ==== [PHP]リソース制限 ==== | ||
| + | |||
| + | <code ini> | ||
| + | memory_limit = 512M | ||
| + | </ | ||
| + | |||
| + | memory_limit 、スクリプトが確保できる最大メモリをバイト数で指定します。この命令は、正しく書かれていないスクリプトがサーバーのメモリを食いつぶすことを防止するのに役立ちます。後述のpost_max_size(最大POSTサイズ)はこの値より大きくすることはできません。 | ||
| + | |||
| + | 画像サムネイルの作成など多くのメモリを必要とする場合、この値を変更する必要があるかもしてません。もし、使用可能メモリに制限を設けたくない場合は、ここに -1 を指定してください。 | ||
| + | |||
| + | \\ | ||
| ==== [PHP]エラー処理 ==== | ==== [PHP]エラー処理 ==== | ||
| 行 65: | 行 91: | ||
| error_logはエラーログの出力先は設定します。ここでは、PHP7のインストールディレクトリ下にlogsフォルダを作成し、エラーログファイルとして" | error_logはエラーログの出力先は設定します。ここでは、PHP7のインストールディレクトリ下にlogsフォルダを作成し、エラーログファイルとして" | ||
| + | |||
| + | \\ | ||
| ==== [PHP]データ処理 ==== | ==== [PHP]データ処理 ==== | ||
| <code ini> | <code ini> | ||
| - | magic_quotes_gpc | + | post_max_size |
| default_mimetype = " | default_mimetype = " | ||
| default_charset = " | default_charset = " | ||
| </ | </ | ||
| - | magic_quotes_gpcはGPC(HTTPのGet/ | + | post_max_sizeは一回のリクエストでPOSTできるの最大のサイズを指定します。この設定は、upload_max_filesize(ファイルの最大アップロードサイズ)にも影響します。大きなファイルをアップロード するには、この値を upload_max_filesize より大きく設定する必要があります。また、一般的に 前述のmemory_limit |
| - | + | ||
| - | > PHPではGetをG、PostをP、CookieをC、環境変数をE、サーバ変数をSと表記し、それらを組み合わせてGPCやEGPCSなどと呼んでいます。 | + | |
| default_mimetypeとdefault_charsetはHTTPのContent-typeヘッダに加えるMIMEタイプと文字セットを設定します。 | default_mimetypeとdefault_charsetはHTTPのContent-typeヘッダに加えるMIMEタイプと文字セットを設定します。 | ||
| + | |||
| + | \\ | ||
| ==== [PHP]パスとディレクトリ ==== | ==== [PHP]パスとディレクトリ ==== | ||
| 行 96: | 行 124: | ||
| extension_dirは拡張モジュールのあるディレクトリを設定します。extension_dirは以下の動的エクステンションをロードするextensionディレクティブで使用されます。 | extension_dirは拡張モジュールのあるディレクトリを設定します。extension_dirは以下の動的エクステンションをロードするextensionディレクティブで使用されます。 | ||
| + | |||
| + | \\ | ||
| + | |||
| + | ==== [PHP]ファイルアップロード ==== | ||
| + | |||
| + | <code ini> | ||
| + | upload_max_filesize = 40M | ||
| + | max_file_uploads = 20 | ||
| + | </ | ||
| + | |||
| + | upload_max_filesize は、1ファイルあたりの最大アップロードサイズを、max_file_uploadsは、1回のリクエストでアップロードできる最大のファイル数を指定します。upload_max_filesize は前述のpost_max_sizeを超える事はできません。 | ||
| + | |||
| + | \\ | ||
| ==== [PHP]動的エクステンション ==== | ==== [PHP]動的エクステンション ==== | ||
| 行 121: | 行 162: | ||
| > https:// | > https:// | ||
| + | |||
| + | \\ | ||
| ===== .htaccessによるディレクティブの設定 ===== | ===== .htaccessによるディレクティブの設定 ===== | ||
| - | PHP を Apache 拡張モジュールで使用する場合、Apacheのhttpd.confや.htaccessファイルにphp.iniのディレクティブを記述する事ができます。通常、httpd.confが変更可能な人達(例えば:プロバイダやシステム管理者)はphp.iniを変更できる権限もあります。一方、一般の利用者はhttpd.confもphp.iniも変更できないので、.htaccessを利用する事になります。.htaccessファイルによるPHPディレクティブの上書きには、AllowOverride Optionsの権限が必要になります。本編でApacheはドキュメントルート以下に対して AllowOverride Allの権限を与えているので、.htaccessによるPHPの設定が可能です。 | + | PHP を Apache 拡張モジュールで使用する場合、Apacheのhttpd.confや.htaccessファイルにphp.iniのディレクティブを記述する事ができます。通常、httpd.confが変更可能な人達(例えば:プロバイダやシステム管理者)はphp.iniを変更できる権限もあります。一方、一般の利用者はhttpd.confもphp.iniも変更できないので、.htaccessを利用する事になります。.htaccessファイルによるPHPディレクティブの上書きには、AllowOverride Optionsの権限が必要になります。 |
| + | |||
| + | .htaccessで設定できるPHPディレクティブは、以下のPHPマニュアルの中で PHP_INI_ALL または PHP_INI_PERDIR と指定されているものだけです。 | ||
| - | .htaccessで設定できるPHPディレクティブは、 PHPマニュアル: | + | * http:// |
| - | > http:// | + | |
| - | でPHP_INI_ALL またはPHP_INI_PERDIR と指定されているものだけです。 | + | 以下に、.htaccessの例を示します。 |
| .htaccess | .htaccess | ||
| < | < | ||
| - | < | + | php_flag |
| - | | + | php_value include_path " |
| - | php_value include_path " | + | |
| - | </ | + | |
| </ | </ | ||
| - | ※mbstring関連のディレクティブ(mbstring.language、mbstring.internal_encoding など)も.htaccessで設定できます。 | ||
| php_flagはPHPディレクティブの値が論理値(boolean)の場合に使用し、php_valueは文字列(string)の場合に使用します。詳細は以下のURLを参照して下さい。 | php_flagはPHPディレクティブの値が論理値(boolean)の場合に使用し、php_valueは文字列(string)の場合に使用します。詳細は以下のURLを参照して下さい。 | ||
| 行 152: | 行 193: | ||
| php.ini で設定した内容は、phpinfo()関数のでプリントできます。XAMPPでは以下のURLでphpinfo()関数の実行ができます。 | php.ini で設定した内容は、phpinfo()関数のでプリントできます。XAMPPでは以下のURLでphpinfo()関数の実行ができます。 | ||
| - | > http:// | + | * http:// |
| また、コマンドラインから行うには以下のようにします: | また、コマンドラインから行うには以下のようにします: | ||
| + | |||
| < | < | ||
| C:\>php -i | C:\>php -i | ||
| </ | </ | ||
| + | |||
| + | \\ | ||
| + | |||