2009-09-08 17 views
23

別のphp.iniファイルにphp.iniファイルを含めるにはどうすればよいですか?別のphp.iniファイルにphp.iniファイルを含めるにはどうすればよいですか?

+2

RHEL/Fedoraが/etc/php.d/*インクルードをどのように達成するのか興味があります。これを可能にするためにPHPにパッチを当てましたか? – gahooa

+0

@gahooaこれは、ここで私を導いてくれた質問です。あなたは/etc/php.d/*インクルードをどのように達成するかを学んだことがありますか? –

+1

以下の受け入れ可能な回答をご覧ください。これもあなたの質問に答えます。 Uはphp -i(phpinfo())を実行してPHPがどのように構築されたかを見ることができます –

答えて

17

メインのphp.iniファイルの.iniファイルを "インクルード"することはできません。

一つの可能​​な解決策は、しかし、PHPをコンパイルする際、configure行にこのオプションを使用するには次のようになります。

--with-config-file-scan-dir=PATH               
    Set the path where to scan for configuration files 

このオプションは、コンパイル時に使用されている場合、PHPはすべての.iniファイルを探します。このディレクトリには、 "通常の" php.iniファイルに加えて、

たとえば、これはUbuntuで使用されているもので、php.iniを変更するのではなく、ダウンロードした各拡張子に対して異なる.iniファイルを使用するとします。

php.iniファイルへのパスがconfigure行に、このオプションを使用して定義されている: - それはないそれでも

--with-config-file-path=PATH                
    Set the path in which to look for php.ini [PREFIX/lib] 

、それはおそらく、あなたが再コンパイルする必要がありますPHP意味しますハード、btw - あなたが必要とする依存関係を得るのが最も難しい部分です。あなたはそれがini_set機能を利用してシミュレートしようとすることができconfig files and PHP_CONFIG_FILE_SCAN_DIR

+0

コンパイル時の設定に加えて、デフォルトの 'php.ini'(そして可能な他のiniファイル)ディレクトリを変更できる環境変数' PHPRC'もあります。 –

+0

あなたがconfigure行で言うとき、それはどういう意味ですか?それはどこかのファイルですか? – tomjung

1

できません。オンラインのページを読む:

The configuration file

概要:PHPの起動時に読み込まれる設定ファイル (php.iniのを)。 サーバモジュールバージョンのPHPの場合、 は、ウェブ サーバが起動されたときに1回だけ発生します。 CGIおよびCLI バージョンでは、すべての 呼び出し時に発生します。

.user.ini files

概要:メイン php.iniファイルに加えて、各ディレクトリ内のINIファイル のためのPHPスキャンは、 、要求されたPHPファイルの ディレクトリから始まると作業します現在の ドキュメントルート( $ _SERVER ['DOCUMENT_ROOT']に設定されているとおり)までです。 INI モードのPHP_INI_PERDIR とPHP_INI_USERの設定は、 .user.ini形式のINIファイルで認識されます。

+3

投稿する前にそれらを読んで、可能かどうかについては何も言いません。 –

0

はそして、ここで私がそうであるように同じことを言うmaillingリスト@内部の投稿です。しかし、 "man page"が示しているように、ini_setを使ってすべてのiniオプションを変更することはできません。しかし、それは間違いなく便利な機能です。

7

私はmemcached for phpをインストールしましたが、iniがphp.iniに含まれていることを確認する方法がわかりませんでしたが、自動的に判明しました。 php --iniを実行すると、読み込まれている内容を検証できます。

php --ini 
Configuration File (php.ini) Path: /opt/local/etc/php5 
Loaded Configuration File:   (none) 
Scan for additional .ini files in: /opt/local/var/db/php5 
Additional .ini files parsed:  /opt/local/var/db/php5/memcached.ini 
+0

"php --ini"によって返された設定ファイルのパスは、Webページ(<?php phpinfo();?>)から返されるものと同じではないかもしれません。 – gonglong

4

1も~/.bashrc

export PHP_INI_SCAN_DIR=/usr/local/lib/php.d 
1

でパスを定義することができることは、それが参照され、ロードされるように、あなたは別のものに1つのiniファイルを含めることはできませんようです。しかし、いくつかのフォルダに調べるフォルダを指定することでphpを設定することができます。

FastCGIセットアップ(FPMでも可能ですが、確かに分かりませんが)を使用する場合は、PHPラッパーから環境変数をエクスポートできます。

あなたができるあり

export PHP_INI_SCAN_DIR=/etc/php5/cgi/conf.d:/var/www/mydomain.net/etc 

/var/www/mydomain.net/etcは一例であり、それはあなたがあなたの中に追加のiniファイルを置くフォルダです。これは:で区切られたリストになる可能性があります。

phpinfo.php(任意では<? phpinfo();というファイルのみ)を使用し、ブラウザで対応するURLを開き、解析されるディレクトリのリストとその上部にロードされるファイルのリストを確認します。

/etc/php5/cgi/conf.d(PHPの実行ファイルにコンパイルされているためだと思います)、実際には必要ない可能性があります。

関連する問題