PachinSV PachinSV - 3 months ago 20
PHP Question

What php.ini file uses symfony server:run command?

I'm using virtphp to have separate environments (different PHP versions, extensions, etc).

When I use symfony's command to run a local development server:

php app/console server:run


It seems that it ignores the php.ini file of my virtual environment (~/.virtenv/envs/myenv/etc/php.ini), e.g.: does not load the extensions definided in that file.

But when I use the php built-in server directly, it works perfectly:

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


What's the difference of those two commands or what does symfony do differently?

This is the output of the
php --ini
command:

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)


This is the output of the function
phpinfo()
in a Symfony controller when using the command
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)


Note the difference in "Loaded Configuration File"... when I use the
php --ini
command it replaces the "Loaded Configuration file" with the one in my php virtual environment and when I use the command
php app/console server:run
it uses the "global" configuration file.

Answer

A workaround for this issue is to move the php.ini file of my virtual environment to a sub-directory called php inside the etc directory. e.g.:

Move the file ~/.virtphp/envs/my-env/etc/php.ini

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

Comments