LoginSignup
1
1

More than 3 years have passed since last update.

php.ini ディレクティブ モードと設定ファイル

Posted at

PHP でファイルアップロード処理を実装する場合
雑に .htaccesspost_max_sizeupload_max_filesize を変更したり
メモリでコケたら ini_set()memory_limit を変更することがある
あるよね?
(環境構築時に要件に応じた設定ができていれば、それがベストなんだろうけど)

今回、upload_tmp_dir ディレクティブを変更する際、恥ずかしながら初めてモードの存在を知ったので
自分への戒め

PHP ディレクティブ モード

PHP ディレクティブには
以下のいずれかのモードが定義されており、モード毎に変更を指定可能な方法が異なる
https://www.php.net/manual/ja/configuration.changes.modes.php

例えば upload_tmp_dir ディレクティブは PHP_INI_SYSTEM モードであるため
.htaccessini_set() では変更できない
https://www.php.net/manual/ja/ini.list.php

設定ファイル

設定ファイル 区分 影響範囲 備考
php.ini PHP 全体
httpd.conf Apache 全体
.htaccess Apache ディレクトリ単位
web.config IIS ディレクトリ単位
.user.ini PHP ディレクトリ単位 PHP 5.3.0 以降
ini_set() PHP スクリプトレベル

ただし、Web サーバ(Apache、IIS)により使用できる設定ファイルが異なる

例えば PHP_INI_PERDIR モードのディレクティブを変更する場合
よくある Apache サーバの場合は .htaccesshttpd.conf を使用できるが
Windows 上で稼働している IIS サーバの場合は web.config を使用して設定を行う必要がある
または .user.ini を使用した PHP 側での変更も可能

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1