web-dev-qa-db-ja.com

phpinfo.phpは、追加のPHP構成ファイル用の追加のフォルダーを表示していません

私のphpinfo.phpは、追加のPHP構成ファイル用の追加のフォルダーを表示していません。Apachev2.4.4(with PHP DSO)and PHPv5.4.14。ApacheおよびPHPインストールはソースからコンパイルされます。

PHPの構成オプション '--with-config-file-scan-dir = PATH'を使用していません。 (複数のフォルダーが必要になるため、使用しません)。

環境変数PHPRCとApacheディレクティブPHPIniDirは、メインのPHPファイルに関連しているため、環境変数 'PHP_INI_SCAN_DIR'を使用できます。以下の手順を実行しました。-

ステップ1/2-PHPの設定

OS環境変数である「PHP_INI_SCAN_DIR」は、Apacheを起動する前に設定する必要があります。そこで、次のエントリを/etc/profile.d/php.shファイルに追加しました。

 PHP_INI_SCAN_DIR = "/ usr/local/lib/php/custom" 
エクスポートPHP_INI_SCAN_DIR 

次に、システムを再起動しました。

ここで、コマンド 'env | grep PHP '、' php -i | grep INI 'および' php --ini 'は、次の出力を提供します。

=>#env | grep PHP

 PHP_INI_SCAN_DIR =/usr/local/lib/php/custom 

=>#php -i | grep INI

 PHP_INI_SCAN_DIR => /usr/local/lib/php/custom
_SERVER["PHP_INI_SCAN_DIR"]=>/usr/local/lib/php/custom

=>#php --ini

構成ファイル(php.ini)パス:/ usr/local/lib 
ロードされた構成ファイル:/usr/local/lib/php.ini 
追加の.iniファイルをスキャンしますで:/ usr/local/lib/php/custom 
解析された追加の.iniファイル:(なし)

ステップ2/2-Apacheの設定

最初の試み

===================

Apache2/bin/envvarsファイルとApache2/bin/envvars-stdファイルの両方に次のエントリを追加しました。

envvarsとenvvars-stdファイルの違いについてのコメントはありますか?

 PHP_INI_SCAN_DIR = "/ usr/local/lib/php/custom" 
エクスポートPHP_INI_SCAN_DIR 

Apacheサービスを再起動しました。ただし、phpinfo.phpファイルの「このディレクトリをスキャンして追加の.iniファイルを探す」の値は空です。

2回目の試行

===================

そこで、envvarsとenvvars-stdからエントリを削除しました。モジュールmod_envがデフォルトでロードされています。 httpd.confに以下を追加しました。

 SetEnv PHP_INI_SCAN_DIR "/usr/local/lib/php/custom"

Apacheサービスを再起動しました。 phpinfo.phpファイルの「このディレクトリをスキャンして追加の.iniファイルを探す」の値はまだ空です。

回目の試行

===================

繰り返しますが、httpd.confからエントリを削除しました。 httpd-vhosts.confのVirtualHostのディレクトリセクションに同じ行を追加しました。

 SetEnv PHP_INI_SCAN_DIR "/usr/local/lib/php/custom"

Apacheサービスを再起動しました。 phpinfo.phpファイルの「このディレクトリをスキャンして追加の.iniファイルを探す」の値はまだ空です。

あなたの考えのいくつかに対する答え:

  • はい、私のphpinfo.phpファイルはphpinfo()のみで構成されています。静的ファイルではありません。

  • はい、ブラウザのキャッシュはクリーンアップされました。別のブラウザも試してみました。

ついに

だから、誰かが私のphpinfoファイルが追加のPHP構成ファイルのための追加のフォルダーを表示していない理由を教えてもらえますか?

前もって感謝します。

6
Arun GP

その環境変数を設定してApacheを起動する必要があります。 /etc/profile.d/php.shで変数を設定すると、それはPHP実行可能ファイル自体にのみ設定され、mod_php5では使用されません。

私はちょうどこのリガマロールを通り抜けました。 mod_php5がロードされた後に定義されるため、SetEnvを使用した変数の設定も機能しません。

CentOS 6.5では、/etc/sysconfig/httpdを編集すると、Apacheプロセス自体の追加の環境変数を設定およびエクスポートできることがわかりました。そこで追加してみてください:

export PHP_INI_SCAN_DIR="/usr/local/lib/php/custom"

2
Bendoh