2009-07-20 9 views
4

設定していないシステム上でいくつかのコードを継承しましたが、PHPインクルードパスが設定されている場所を追跡する問題が発生しています。php.iniファイルとPHPファイルのinclude_pathを変更できるもの

私は私が取るとき、私は次のphpinfoコール

<?php 
     phpinfo(); 

でtest.phpをという名前のWebルートにあるPHPファイルを持って、次のinclude_path

include_path = ".:/usr/local/lib/php" 

でphp.iniファイルを持っていますphpinfo呼び出しを見ると、include_pathのローカル値はオーバーライドされています

    Local Value          Master Value 
include_path .;C:\Program Files\Apache Software Foundation\  .:/usr/local/lib/php 
       Apache2.2\pdc_forecasting\classes    

はまた、php.iniのファイルは、PHPの間のinclude_pathをオーバーライドすることができ、私の質問は、(いくつかのPEARライブラリを含む)に、標準のPHPシステム内の他のどのような追加の.iniファイルがそう

Configuration File (php.ini) Path   /usr/local/lib 
Loaded Configuration File     /usr/local/lib/php.ini 
Scan this dir for additional .ini files  (none) 
additional .ini files parsed    (none) 

をロードされていないされていることを示し.iniと実際のPHPコードが解釈/実行されています。 auto_prepend_file経由でPHPファイルにロードすることができ、PHPの方法

ini_set('include_path', 'new/path'); 
// or 
set_include_path('new/path'); 

のOutisde

答えて

5

.htaccessファイルが

phpvalue include_path new/path 
+0

Grumble grumble .htaccess。私は、http.confを調べて上書きを探し、.htaccessを忘れてしまった。 –

2

.htaccessファイルまたはApacheの設定だけでなく、それを行う行うことができます( httpd.conf)も責任を負う可能性があります。

PHP: How to change configuration settings


は、他のオプションが使用可能になります。ここでその行動について

php_value include_path something 

詳細情報:次のようになります。何のための

チェックini_set()またはset_include_path()どこかで、あなたのtest.phpにはphpinfo()しか含まれていないと考えています(そして、test.phpが直接呼び出されたと仮定して)、私はあなたの問題だと思っています。

3

奇妙な結果が得られる理由はいくつかあります。

  • include_pathがPHPコードのどこかでオーバーライドされています。コードにset_include_path()コールが含まれているかどうかを確認してください。この機能を使用すると、インクルードパスをカスタマイズできます。現在のパスを保持したい場合は、文字列を連結するだけです。. PATH_SEPARATOR . get_include_path()
  • include_pathを.htaccessに上書きします。 php_valueまたはphp_flagディレクティブがダギーパスを追加していないか確認してください。
  • phpインタープリタに標準でない設定ファイルがあります。可能であれば、あなたのPHPプロセスが、カスタムのphp.iniファイルを渡して開始された可能性は非常に低いです。 Webサーバーの設定および/またはPHP配布を調べて、予想される場所を確認してください。php.ini多分あなたは間違ったものを見ているでしょう。
+0

+1:あなたは基本的には、すでに言われているすべてを繰り返す場合でも。 –

関連する問題