2016-08-29 9 views
5

私は別の環境(異なるPHPのバージョン、拡張機能など)を持つためにvirtphpを使用しています。symfonyサーバを使用するphp.iniファイル:runコマンド?

私はローカルの開発サーバーを実行するためにsymfonyのコマンドを使用します。

php app/console server:run 

それは私の仮想環境(〜/ .virtenv/ENVS/myenvの/ etc/PHPのphp.iniファイルを無視するようです.ini)、例えば、:そのファイルで定義された拡張をロードしません。

しかし、私は内蔵のサーバー直接 PHPを使用する場合、それは完璧に動作します:

php -S 127.0.0.1:8000 --docroot=web/ 

これら二つのコマンドまたは何symfonyは違っやるんの違いは何ですか?

これはphp --iniコマンドの出力である:コマンドphp app/console server:runを使用する場合

Configuration File (php.ini) Path: /usr/local/etc/php/5.5 
Loaded Configuration File:   /Users/mjuarez/.virtphp/envs/wowfi/etc/php.ini 
Scan for additional .ini files in: /Users/mjuarez/.virtphp/envs/wowfi/etc/php 
Additional .ini files parsed:  (none) 

これはsymfonyコントローラ内の関数phpinfo()の出力である:

Configuration File (php.ini) Path /usr/local/etc/php/5.5 
Loaded Configuration File /usr/local/etc/php/5.5/php.ini 
Scan this dir for additional .ini files /Users/mjuarez/.virtphp/envs/wowfi/etc/php 
Additional .ini files parsed (none) 

"の違いに注意してくださいロードされた構成ファイル "... php --iniコマンドを使用すると、"ロードされた構成ファイル "がPHP仮想環境のものに置き換えられ、コマンドを使用するとphp app/console server:runは "グローバル"設定ファイルを使用します。

+0

'PHP phpがロードされるのは 'php -ini'ですが、そのコマンドの出力は、両方のファイルを"グローバル "php.iniとphp.iniを私の仮想環境にロードしていることを示しています。 –

+0

おかげ@MarcBにあなたの.iniファイルを示して実際にコマンドをロードされた(S)ファイルの.ini何を教えてくれます-i' – PachinSV

+0

一部の(ただしすべてではない).iniディレクティブは、実行時に 'ini_set()'コールで上書きすることができます。 'php -S'はsymphonyを直接実行していないので、http要求を待っているだけで、THENはsymphonyを実行します。 –

答えて

0

この問題を回避するには、私の仮想環境のphp.iniファイルをサブフォルダに移動して、サブディレクトリに移動してください。 etcディレクトリ内にphpというディレクトリがあります。例えば:

移動ファイル~/.virtphp/envs/my-env/etc/php.ini

~/.virtphp/envs/my-env/etc/php/php.ini

-1

Webディレクトリ内のファイルを内部にドロップします。あなたのブラウザでそれを開き、正しいファイルを与えるphp.iniを探します。

関連する問題