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 の調べ方
▼ まずターミナル上で次のコマンドを打つ
1 |
# php -i | grep php.ini |
▼ このコマンドの実行結果
1 2 |
Configuration File (php.ini) Path => /etc/php/7.2/cli Loaded Configuration File => /etc/php/7.2/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 とかにしておく)
1 |
phpinfo(); |
そしてブラウザとかで実行すると、PHPの情報がズラ~~~と出てきますよね?
その中の Configuration File (php.ini) Path の値を見ればOKです。
▼ 実際に phpinfo(); で表示してみた様子
この画像の赤枠で囲んだところ
自分の環境だと /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なら、次のようなパスになるみたいです。
1 |
/etc/php/7.2/fpm/php.ini |
これについては、自分で調べたわけじゃないので確証はできません。。
でも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 の場所の調べ方でした。