2009-07-31 63 views
13

Apacheでは、php_valueディレクティブを使用して仮想ホストのphp.ini値を設定できます。nginxからphp include_pathを設定する

nginxには何か類似していますか?サイトごとにinclude_pathを設定する別の方法はありますか?

答えて

24

今は、この方法を行うことが可能です:

fastcgi_param PHP_VALUE "include_path=/my/include/path"; 
ここ

詳細情報: http://bugs.php.net/bug.php?id=51595

この手法を使用してPHP値を設定すると、複数の仮想ホストに対して異なる「error_log」場所を設定することに成功しました。

ありがとう、PHPとNginXみんな!

+0

これはすばらしいです!良くなったね! –

+0

PHPのバージョンは? – ColinM

+0

これは良い方法ではありません。私はこれを行い、ある仮想ホストで変更し、これらの設定をグローバルに追加して、他の仮想ホストを完全に破棄しました。 –

1

Sean、php_value、php_admin_valueはnginxでは動作しません。これはphp-cgiの制限であり、nginxの制限ではありません。

あなたがPHPの複数のインスタンスを起動し、そのようなカスタムphp.iniで渡すことによってこの問題を回避することができます

php-cgi -c /path/to/php.ini 

あなたはまた、そうのようなPHPコードで明示的にパスを含める設定することができます。

$paths = array(
    PATH_PROJECT . 'lib/', 
    PATH_PROJECT . 'lib/Doctrine/lib', 
    PATH_PROJECT . 'application/doctrine/mappers/', 
    PATH_PROJECT . 'application/lib', 
    PATH_PROJECT . 'application/modules/', 
    PATH_PROJECT . 'lib/classes', 
    PATH_PROJECT . 'application/lib/reports/', 
    get_include_path() 
); 

set_include_path(implode(PATH_SEPARATOR, $paths)); 
unset($paths); 
+0

ありがとうございます!私はこのリンクhttp://forum.slicehost.com/comments.php?DiscussionID=3087も見つけました - プロジェクト自体の設定(フロントコントローラなし)のため、PHP自体を使って設定するのは実現不可能です。 –

+0

新しい回答に切り替えました –