web-dev-qa-db-ja.com

PHP CLIバージョンでphp.iniへのパスを変更する方法

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バージョンではC:\wamp\bin\Apache\Apache2.2.21\bin\php.iniのphp.iniを使用しています。これはおそらく、湿地を使用している人々にとって非常に一般的です。

ロードされた設定ファイルをC:\wamp\bin\Apache\Apache2.2.21\bin\php.iniから読み取るように変更するには、2つの異なるphp.iniバージョンを維持する必要はありませんか?

25
Sufendy

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 major、マイナーバージョンとリリースバージョン:これらのキーのいずれかに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 。

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

> php --help 
使用法:php [オプション] [-f] [-] [args ...] 
 ... 
 -c |このディレクトリでphp.iniファイルを探します
 
20
user212218

環境変数PHPRCを指定して、Apacheが使用するものと同じphp.iniを指すようにしました。

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

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

10
latvian

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

1
Andrew

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

WebサーバーとCLIを使用して、php.ini両側のファイル

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

0
maxjackie