web-dev-qa-db-ja.com

正しいphp.iniファイルを見つける

私は現在、正しいphp.iniファイルを見つけて編集し、Apacheを再起動して、変更が行われ、困惑しているようにしています。

私は3つの異なるphp.iniファイルを見つけました(なぜ3つあるのか分かりません)これがファイルの見つけ方です

$ Sudo find / -name php.ini
/etc/php5/cli/php.ini
/etc/php5/Apache2/php.ini
/etc/php5/cgi/php.ini

私も…。

$ Sudo php -i | grep 'Configuration File'
Configuration File (php.ini) Path => /etc/php5/cli
Loaded Configuration File => /etc/php5/cli/php.ini

私はそれらをすべて(念のため)必要な設定に変更しました。

を使用してApacheを再起動しました

Sudo service Apache2 restart

結果...

* Restarting web server Apache2

ページをリロードすると、php.iniファイルが更新されていないことがわかりました。

私はこれを知っています

echo ini_get('post_max_size');

これは20Mに変更されるはずでしたが、まだ2Mでした

Apacheサーバーを停止し、正しい設定でphp.iniファイルを再読み込みすると考えて、コンピューターを再起動しましたが、残念ながらその試みも失敗しました。

干渉する可能性のある別のphp.iniファイルが存在する可能性はありますか?

166
Michael

そこにある3つのファイルは、それぞれ異なる用途向けです。

/etc/php/5.6/cli/php.iniは、ターミナルでphpを実行して見つけたCLI PHPプログラム用です。

/etc/php/5.6/cgi/php.iniは、このセットアップでは特に使用されないphp-cgiシステム用です。

/etc/php/5.6/Apache2/php.iniは、Apacheが使用するPHPプラグイン用です。 これは編集する必要があるものです変更をApacheセットアップに適用するため。

/etc/php/5.6/fpm/php.iniphp5-fpmプロセッサ用で、PHP処理(NGINXからphp5-fpmへのハンドオフなど)用のfastcgi互換の「ラッパー」であり、実行されますシステム上のスタンドアロンプ​​ロセスとして(Apache PHPプラグインとは異なり)

Ubuntuのバージョンが16.04より低い/etc/php/5.6//etc/php/7.0//etc/php/7.1/などが置き換えられます。 /etc/php5/など。それ以外の場合、これらのパスは正確なままです。これを環境に合わせて調整し、5.6または番号を環境に存在する実際のバージョンフォルダーに置き換えます。

285
Thomas Ward

ブラウザでこのスニペットを含むスクリプトを実行してください<?php phpinfo(); ?>、次にLoaded Configuration Fileのようなものを検索してみてください。このエントリは、ApacheサーバーでPHPが使用するphp.iniを指定します。

21

CLIが使用しているphp.iniを見つけるには、次を実行します。

php -i | grep 'php.ini'

出力例:

$ php -i | grep 'php.ini'

Configuration File (php.ini) Path => /etc/php/7.0/cli
Loaded Configuration File => /etc/php/7.0/cli/php.ini
14
Gianfranco P.

php7 Ubuntu 16.4の場合

/etc/php/7.0/Apache2/php.ini
13
Softmixt