多くの場合、サーバーに関するできるだけ多くの情報を得る必要があります。ネイティブの `phpinfo()` 関数は、このような場合に最適です。
phpinfo();die; // 設定を書き込んだら、スクリプトを終了する
これにより、インストールされているバージョン、拡張機能、ライブラリなどを簡単に確認することができます。
設定や変更方法については、本記事の最後をご覧ください。
特定の情報のみをリストアップするのが便利な場合もあるので、最初のパラメータを設定して、興味のあるものを正確に指定することができます。
phpinfo(INFO_MODULES);
設定にはあらかじめ定義された定数が使用される。
定数名|値|説明 |
---|
INFO_GENERAL|1|一般的な設定、php.iniの場所、最終更新日、Webサーバー、システム情報、その他。 |
INFO_CREDITS |
INFO_CONFIGURATION|4|現在の場所と設定のディレクティブ。より詳細な情報は ini_get() 関数で提供されます。 |
INFO_MODULES|8|インストールされたモジュールに関する情報です。詳しくは get_loaded_extensions() 関数を参照してください。 |
INFO_ENVIRONMENT|16| $_ENV として利用可能な Environment 変数に関する情報です。 |
INFO_VARIABLES|32| EGPCS` (Environment, GET, POST, Cookie, Server) と呼ばれるスーパーグローバル変数設定の概要です。 |
INFO_LICENSE|64|PHPの使用ライセンスやその他の使用条件に関する情報です。 |
INFO_ALL|-1|すべての情報を表示する(初期値) |
$_SERVER
を使用する。スクリプトの実行中に、サーバー設定に関するかなり多くの情報(ウェブマスターへのメール、訪問者の現在のIPアドレスや現在呼び出されているURLなど)を直接知ることができます。
既存の値をすべてリストアップするのは簡単です。
foreach ($_SERVER as $key => $value) {echo $key . ':' . $value . '<br>。';}
Warning: すべてのインデックスが存在する必要はありません (例えば、スクリプトがCLIモードでcronを実行する場合、ページのURLやリクエストのIPアドレスを持つインデックスは存在しません)。
設定の多くは php.ini
に格納されており、通常の方法では PHP から直接アクセスできません。例えば、最大アップロードファイルサイズなど。
設定を直接読み込むには、 ini_get()
関数を使用します (注意: この関数はすべてのサーバーで有効とは限りません。特にホストの場合に顕著です)。
例えば、アップロードできる最大ファイルサイズを調べたい場合、独自に実装を書かなければならない。
/*** 著者 ヤン・バラシェック*/public static function getMaxUploadFileSize(): int{$maxUpload = min(ini_get('投稿最大サイズ'),ini_get('アップロードの最大ファイルサイズ'));if (strncmp($maxUpload, 'M', 1) === 0) {return (int) str_replace('M', '', $maxUpload);}return (int) $maxUpload;}
upload_max_filesizeと
post_max_size` の最大値を MB 単位で返します。
設定自体は php.ini
ファイルに保存されます。その場所は phpinfo()
関数を使うか、php --ini
コマンドを呼び出すことで簡単に見つけることができます。
> php --iniConfiguration File (php.ini) Path: /etc/php/7.1/cliLoaded Configuration File: /etc/php/7.1/cli/php.iniScan for additional .ini files in: /etc/php/7.1/cli/conf.dAdditional .ini files parsed: /etc/php/7.1/cli/conf.d/10-mysqlnd.ini,/etc/php/7.1/cli/conf.d/10-opcache.ini,/etc/php/7.1/cli/conf.d/10-pdo.ini,/etc/php/7.1/cli/conf.d/20-calendar.ini,/etc/php/7.1/cli/conf.d/20-ctype.ini,/etc/php/7.1/cli/conf.d/20-exif.ini,/etc/php/7.1/cli/conf.d/20-fileinfo.ini,/etc/php/7.1/cli/conf.d/20-ftp.ini,/etc/php/7.1/cli/conf.d/20-gd.ini,/etc/php/7.1/cli/conf.d/20-gettext.ini
あるいは、パスを巧みに解析することもできます(Linuxシステムで動作します)。
php -r "phpinfo();" | grep php.ini
彼は戻ってきますよ。
Configuration File (php.ini) Path => /etc/php/7.1/cliLoaded Configuration File => /etc/php/7.1/cli/php.ini
例えば、
CLI
の設定はCLIモード、つまりターミナルからcronやコマンドを呼び出すときのみ有効です。
よくphp.ini
で直接設定されるプロパティの例として、最大アップロードファイルサイズ(デフォルトは2MB
、これは2018年現在すでに低い)があります。
設定ファイル内では、例えば次のように記述します。
; Maximum allowed size for uploaded files.upload_max_filesize = 40M; Must be greater than or equal to upload_max_filesizepost_max_size = 40M
*中点はコメント、その後に特定の設定ディレクティブが続くことを意味します。
Jan Barášek Více o autorovi
Autor článku pracuje jako seniorní vývojář a software architekt v Praze. Navrhuje a spravuje velké webové aplikace, které znáte a používáte. Od roku 2009 nabral bohaté zkušenosti, které tímto webem předává dál.
Rád vám pomůžu:
Články píše Jan Barášek © 2009-2024 | Kontakt | Mapa webu
Status | Aktualizováno: ... | ja