2016-08-29 3 views
5

Я использую virtphp, чтобы иметь отдельные среды (разные версии PHP, расширения и т. Д.).В каком файле php.ini используется сервер symfony: выполнить команду?

Когда я использую команду Symfony, чтобы запустить локальный сервер разработки:

php app/console server:run 

Это кажется, что он игнорирует файл php.ini моей виртуальной среде (~/.virtenv/envs/myenv/и т.д./PHP .ini), например: не загружает расширения, определенные в этом файле.

Но когда я использую PHP встроенный сервер непосредственно, он отлично работает:

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

В чем разница этих двух команд или что делает Symfony делать по-другому?

Это вывод команды php --ini:

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) 

Это выход функции phpinfo() в контроллере Symfony при использовании команды php app/console server:run:

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 -i' расскажет вам, что файл .ini (ы) были загружены –

+0

Благодаря @MarcB в самом деле команда, которая показывает вам файлы .ini что php будет загружаться, это 'php -ini' ... но вывод этих команд показывает, что он загружает оба файла« global »php.ini и php.ini в мою виртуальную среду. – PachinSV

+0

Некоторые (но не все) директивы .ini могут быть переопределены во время выполнения с помощью вызовов 'ini_set()'. 'php -S' не работает непосредственно с симфонией, он просто будет ждать HTTP-запроса, а THEN запускает симфонию. –

ответ

0

Обойти эту проблему, чтобы переместить файл php.ini моей виртуальной среды к суб- каталог под названием php внутри каталога etc. например:

Переместить файл ~/.virtphp/envs/my-env/etc/php.ini

Для ~/.virtphp/envs/my-env/etc/php/php.ini

-1

Оставьте файл в своем веб-каталоге с помощью внутри. Откройте его в своем браузере и найдите php.ini, который даст вам правильный файл. Там может быть несколько файлов YF вы смотрите directy в каталоге конфигурации (АОН, FPM, Apache и так далее)

Смежные вопросы