web-dev-qa-db-ja.com

php.iniの変更は効果がありません

Centosの/ usr/local/libにあるphp.iniに変更を加えた場合、たとえば、php.iniのすべてのコンテンツを消去してApacheを再起動すると、すべてが正常に機能し、変更が適用されていないように見えます。 ..

私はphp.iniを検索しましたが、システムの1つの場所にあります...問題は何ですか?どうすれば修正できますか?

9
Fcoder

使用されているphp.iniが不明な場合は、Webフォルダーに新しいファイルを作成し、phpinfo.phpたとえば、次のコンテンツ

<?php
phpinfo();
?>

次に、ブラウザーでURLを開きます( http://www.example.com/phpinfo.php )。使用されているphp.iniへのパスが表示されます。

正しいファイルを特定したら、必要な変更を加え、必ず先頭のを削除してください。設定を有効にするものがある場合。

apacheを再起動してphpinfoページをリロードすると、変更した設定が表示されます。そうでない場合は、phpの設定を上書きする.htaccessファイルがウェブルートにないことを確認してください。

12
Gryphius

これらのスレッドを読むことをお勧めします。

ヒント:

  1. Php_info出力の「ロードされた構成ファイル」とは何ですか? ->正しいiniファイルを編集していることを確認してください。
  2. 同じファイルで設定の複数の発生を確認します。
  3. Gryphiusのヒントも悪くありません:設定のコメントを外してください! (先頭の ";"を削除してください)
  4. Iniファイルの権限を確認してください。 Webサーバーとphp-cgi/php-fpmには読み取りアクセス権が必要です。
  5. php 5以降:Webサーバーを再起動するだけでなく、テストの前にphp-fpmサービスも再起動しないでください。
5
Titus

これに従ってください:

ウェブルート内にファイルを作成し、好きな名前を付けます。私は通常x.phpを好みます

 # vim x.php

ファイルの内容は次のようになります。

<?php
phpinfo();
?>

このファイルをブラウザで次のように開きます。

http://server_ip/x.php

これにより、Apacheが使用しているphp.iniの場所が表示されます。そのphp.iniを編集すれば動作します。

1
Napster_X

私のphp.iniファイルに非常に露骨なエラーが見つかりました。一部のphp.ini設定が有効になりませんでした。

Php7.0以降、#文字は有効なコメントスターターではありません。 ;のみが受け入れられます。ただし、vimなどの多くのエディターでは、「#」の後に文字がコメントとして表示されるため、php.iniファイルの特定の部分が無視できるコメントではないことを認識できない場合があります。

私の場合、提出されたphp.iniには以下が含まれています。

# ""
max_input_vars = 3000

前の行はコメントではないため、max_input_vars = 3000は有効になりませんでした。これには副作用があり、次の行が無視されます。

に変更

; ""
max_input_vars = 3000

問題を解決しました。

0
Csongor Halmai

ここではまだコメントできませんが、変更を維持してApacheを再起動すると機能しますか?

もしそうなら、その理由はおそらくPHPがApacheモジュールとして実行されることです。
Webサーバーを再起動せずに変更を有効にするには、代わりにphp-cgiを使用します。

このページ インストールと構成について説明します。 「Apacheモジュールとして」または「CGIバイナリとしてのPHP 5」のページを検索します。

0
Titus

あなたのウェブルートにphp.iniファイルがあるかもしれません。

0
jahil