32

WebサーバーとCLIバージョンで実行されるphpは、同じphp.iniファイルを使用していません。コマンドを実行するとphp --ini、これが表示されます

Configuration File (php.ini) Path: C:\Windows
Loaded Configuration File:         C:\wamp\bin\php\php5.3.8\php.ini
Scan for additional .ini files in: (none)
Additional .ini files parsed:      (none)

私のWebバージョンはでphp.iniを使用していC:\wamp\bin\apache\Apache2.2.21\bin\php.iniます。これはおそらく、Wampを使用している人々にとって非常に一般的です。

ロードされた構成ファイルを読み取り元に変更して、C:\wamp\bin\apache\Apache2.2.21\bin\php.ini2つの異なるphp.iniバージョンを維持する必要がないようにするにはどうすればよいですか?

4

5 に答える 5

27

http://php.net/configuration.fileごと:

php.iniは、次の場所で(順番に)検索されます。

  • SAPIモジュール固有の場所(Apache 2のPHPIniDirディレクティブ、CGIおよびCLIの-cコマンドラインオプション、NSAPIのphp_iniパラメーター、THTTPDのPHP_INI_PATH環境変数)
  • PHPRC環境変数。PHP 5.2.0より前では、これは以下に説明するレジストリキーの後にチェックされていました。
  • PHP 5.2.0以降、php.iniファイルの場所はPHPのさまざまなバージョンに設定できます。次のレジストリキーが順番に調べられます。
    • [HKEY_LOCAL_MACHINE \ SOFTWARE \ PHP \ xyz]、[HKEY_LOCAL_MACHINE \ SOFTWARE \ PHP \ xy]、[HKEY_LOCAL_MACHINE \ SOFTWARE \ PHP \ x]、ここでx、y、zはPHPのメジャー、マイナー、リリースバージョンを意味します。これらのキーのいずれかにIniFilePathの値がある場合、最初に見つかったキーがphp.iniの場所として使用されます(Windowsのみ)。
    • [HKEY_LOCAL_MACHINE \ SOFTWARE \ PHP]、IniFilePathの値(Windowsのみ)。
  • 現在の作業ディレクトリ(CLIを除く)。
  • Webサーバーのディレクトリ(SAPIモジュールの場合)またはPHPのディレクトリ(それ以外の場合はWindows)。
  • Windowsディレクトリ(C:\ windowsまたはC:\ winnt)(Windowsの場合)、または--with-config-file-pathコンパイル時オプション。

CLIの場合、最善の策は、$PHPRCスクリプトを実行するアカウントの環境変数を設定するか、別の--with-config-file-path構成設定でPHPを再コンパイルすることです。

-cPHPを呼び出すときにオプションを指定することにより、実行ごとにphp.ini検索ディレクトリをオーバーライドすることもできます。

> php --help
使用法:php [options] [-f] [-] [args ...]
..。
  -c | このディレクトリでphp.iniファイルを探します

于 2012-06-01T05:22:59.260 に答える
14

Apacheが使用するものと同じphp.iniを指すように環境変数PHPRCを指定することにより、Ubuntuで機能しました

export PHPRC=/etc/php5/apache2/php.ini

または、$ HOME / .bashrcに入れて、CLIが開始されるたびにインポートします

于 2014-10-15T17:23:23.110 に答える
3

PHPRC環境変数としてC:\ YourPathto \ PHP7 \を使用しようとしましたが、失敗しました。ただし、filenameを使用してフルパスに設定する必要があります。また、新しい変数を取得するには、phpを完全に再起動する必要があることもわかりました。

  1. Windowsでは、php.iniファイルへのパスを見つけて、コマンドウィンドウで次のコマンドを変更して実行します。

    setx PHPRC "C:\YourPathto\PHP7\php.ini"

    君は見るべきだSUCCESS: Specified value was saved.

  2. 次に、コンピュータを再起動します(実際に)。

または、通常の方法で環境変数を編集してから、再起動します。

PHPRC環境変数をC:\ YourPathto \ PHP7\php.iniに設定

于 2019-11-01T05:30:10.287 に答える
2

私はあなたの質問が尋ねていることを正確にやろうとして約3時間を費やしました。できませんでした。私はあきらめてそのphp.iniをC:\ Windowsにコピーし、ENV変数 "PHPRC"をC:\ Windows(およびhttpd.conf内)に変更しました。そうすれば、CLIphpとApachphpeの両方が同じファイルを使用します。この変更を行うまで、php.iniにロードしたモジュールを「php-m」で表示することができませんでした...

于 2012-06-15T22:00:17.963 に答える
0

phpinfo()両側で関数を実行してみてください

WebサーバーとCLIをphp.ini使用して、両側のファイルの正確な場所を確認します

それらのファイルのみを維持します

于 2012-06-01T05:14:16.573 に答える