Ubuntuでの php.ini の場所の調べ方を解説&自分用メモ

Ubuntuでの php.ini の場所について

これはどのPHPを使っているかで、実は場所が違うみたいです。

もちろん普通のレンタルサーバーを借りてるなら、そんなこと意識しないですが、、、

でも自分でVPSサーバーとか借りたり、自宅サーバーを立てるなら、自分で設定しないといけないことが多いので、php.iniの場所が分からないとかなり困ります。

ということで Ubuntuでの php.iini の調べ方と実際のパス例 をメモがてらに紹介します。

調べ方は コマンドライン用 と Apacheモジュール版 で異なる

実は Ubutnu(というかLinux)で動くPHPの種類には2種類あって、

  • コマンドライン(CLI)で動くPHP
  • Apacheモジュールで動くPHP

この2つに分かれてます。

SSHでターミナルからPHP実行する場合だとCLI版、
逆にWebページとか curl から実行する場合だとApacheモジュールが使われる訳です。

この2つの php.ini の調べ方は次の通り

1.コマンドライン(CLI)版の php.ini の調べ方

▼ まずターミナル上で次のコマンドを打つ

▼ このコマンドの実行結果

自分の環境だと php7.2 でしたが、 /etc/php/x.x/cli  はUbuntu共通だと思います。(x.xはバージョン)

コマンドライン(Cronジョブとかも?)で動くPHPの設定を変えたいなら、 /etc/php/x.x/cli/php.ini  の設定を変えればOK

2.Apacheモジュール版の php.ini の調べ方

これはPHP内で phpinfo();  を実行して、その中からパスを調べるのが手っ取り早いです。

例えば、次みたいなテストスクリプトを書きます(名前は適当で phpinfo.php とかにしておく)

そしてブラウザとかで実行すると、PHPの情報がズラ~~~と出てきますよね?

その中の Configuration File (php.ini) Path  の値を見ればOKです。

▼ 実際に phpinfo(); で表示してみた様子

phpinfo(); を実行して 【Configuration File (php.ini) Path】 の値を見ればphp.iniの場所が分かる

この画像の赤枠で囲んだところ

自分の環境だと /etc/php/7.2/apache2  みたいになってました。

Ubuntuの場合だと、Apacheモジュール版の php.ini は /etc/php/x.x/apache2  にあるんだと思います。

3.ちなみにFastCGI版PHPの php.ini のパスは...

ただし Apacheモジュール版ではなく、FPM(FastCGI)を使ってる場合はパスが違います。

例えばPHPのバージョンが7.2なら、次のようなパスになるみたいです。

これについては、自分で調べたわけじゃないので確証はできません。。

でもApache版・FastCGI版、どっち使ってるかで変わるので要注意!

ここまでのまとめ ー php.ini の場所は1つじゃない!

ここまで書いたように、php.ini の場所は次の3パターンで変わります。

  • コマンドライン(CLI)版PHPの場所
    多くの環境だと /etc/php/x.x/cli/php.ini  にあるはず(x.x.はバージョン)。ただし不安ならさっき紹介した方法でターミナルから調べるのが確実
  • Apacheモジュール版PHPの場所
    これもUbuntuなら /etc/php/x.x/apache2/php.ini  で共通のはず。Ubuntu以外の環境ならこの記事で詳解した phpinfo(); を使ったやり方ですぐ分かる
  • FastCGIモジュール版PHPの場所
    もしApacheではなくFastCGI版を使っているなら、 /etc/php/x,x/fpm/php.ini  にあるはず

もし php.ini を変更したのに設定が反映されないなら、多分変更すべきphp.ini が違うんだと思います。

以上、Ubuntuでの php.ini の場所の調べ方でした。