PHPプログラミング

ベストプラクティス

設定

php.iniが置いてある場所の探し方

  • このエントリーをはてなブックマークに追加

PHPの設定情報が書かれた大事なファイル「php.ini」。設定を変更、参照したいときに「あれ?そういえばどこに置いてあったっけ?」となりがちです。今回はそんな時のための、php.iniの探し方について。

目次

  1. #  php.iniはどこにある!?
  2. #  phpコマンドを使う
  3. #  phpinfo関数を使う
  4. #  findコマンド(Linux & Mac)で検索
  5. #  lsコマンド(Windows)で検索

php.iniはどこにある!?

今回は、php.iniの置いてある場所(以下、「パス」とします)を見つける方法を解説します。
php.iniの場所を特定したい方が対象です。

探し方は大きく分けて次の4つ。

  • phpコマンドを使う
  • phpinfo関数を使う
  • findコマンド(Linux & Mac)で検索
  • lsコマンド(Windows)で検索

1つずつ方法を確認していきましょう。

phpコマンドを使う

一番手軽な方法はphpコマンドを使う方法です。
次のコマンドとオプション「–ini」を指定することで、php.iniの場所が表示されます。

コマンド入力例

# php --ini

実行結果の例

Configuration File (php.ini) Path: /usr/local/php5/lib
Loaded Configuration File:         /usr/local/php5/lib/php.ini
Scan for additional .ini files in: /usr/local/php5/php.d
Additional .ini files parsed:      /usr/local/php5/php.d/10-extension_dir.ini,
/usr/local/php5/php.d/20-extension-opcache.ini,
/usr/local/php5/php.d/50-extension-apcu.ini,
/usr/local/php5/php.d/50-extension-curl.ini,
/usr/local/php5/php.d/50-extension-gmp.ini,
/usr/local/php5/php.d/50-extension-igbinary.ini,
/usr/local/php5/php.d/50-extension-imap.ini,
/usr/local/php5/php.d/50-extension-intl.ini,
/usr/local/php5/php.d/50-extension-mcrypt.ini,
/usr/local/php5/php.d/50-extension-memcache.ini,
/usr/local/php5/php.d/50-extension-memcached.ini,
/usr/local/php5/php.d/50-extension-mongo.ini,
/usr/local/php5/php.d/50-extension-mssql.ini,
/usr/local/php5/php.d/50-extension-oauth.ini,
/usr/local/php5/php.d/50-extension-pdo_dblib.ini,
/usr/local/php5/php.d/50-extension-pdo_pgsql.ini,
/usr/local/php5/php.d/50-extension-pgsql.ini,
/usr/local/php5/php.d/50-extension-propro.ini,
/usr/local/php5/php.d/50-extension-raphf.ini,
/usr/local/php5/php.d/50-extension-readline.ini,
/usr/local/php5/php.d/50-extension-redis.ini,
/usr/local/php5/php.d/50-extension-solr.ini,
/usr/local/php5/php.d/50-extension-ssh2.ini,
/usr/local/php5/php.d/50-extension-twig.ini,
/usr/local/php5/php.d/50-extension-uploadprogress.ini,
/usr/local/php5/php.d/50-extension-xdebug.ini,
/usr/local/php5/php.d/50-extension-xhprof.ini,
/usr/local/php5/php.d/50-extension-xsl.ini,
/usr/local/php5/php.d/60-extension-pecl_http.ini,
/usr/local/php5/php.d/99-liip-developer.ini

2行目の「Loaded Configuration File:」に読み込んでいるphp.iniへのパスが書かれています。

その他の設定ファイルのパスも表示されるので、とりあえず上記のコマンドを実行すれば読み込んでいる設定ファイルのパス、種類は一通り把握することができます。

phpinfo関数を使う

phpinfo関数を記載したphpファイルを実行し、表示されたphpの設定情報からパスを知る方法です。
実行するサーバーで「.php」のファイルが実行できることが前提となります。

コードの例

<?php phpinfo(); ?>

実行結果の例

phpinfo関数の実行結果

表示されたページの「Loaded Configuration File」に、読み込まれているphp.iniのパスが記載されています。

こちらの方法はPHPの実行環境がもろに表示されてしまうため、公開状態のサーバーでphpinfo関数を実行するのは関係者以外の人も設定情報を閲覧できるため大変危険です
Basic認証が設定された場所で実行するか、もしくはファイル名が分からないものにして一瞬だけ設置し、確認できたらすぐに削除するようにしてください。

findコマンド(Linux & Mac)で検索

この方法はOSごとに用意されたファイル検索コマンドを使ってパスを特定する方法です。
そのため、PHPのインストール状況に影響されずに検索することができます。

ただし、複数のディレクトリに同名のphp.iniが存在する場合、実際に読み込まれている設定ファイルを判断しづらいというデメリットがあります。

コードの例

# find / -name 'php.ini'

実行結果の例

/usr/local/php5/lib/php.ini

権限が足りずに「Permission denied」が表示されてしまう場合は、findコマンドの前にsudoを加えてください。

# sudo find / -name 'php.ini'

以上、PHPの設定ファイル「php.ini」を検索する方法でした。

lsコマンド(Windows)で検索

Windowsで検索する場合の方法です。

コードの例

C:¥> ls -r | where { $_.Name -match "php.ini" }

実行結果の例

ディレクトリ: C:¥php

Mode    LastWriteTime    Length Name
----    -------------    ------ ----
-a----  2017/05/23 20:00  55990 php.ini

以上、PHPの設定ファイル「php.ini」を検索する方法でした。

  • このエントリーをはてなブックマークに追加