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

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

Posted by: admin July 12, 2020 Leave a comment

Questions:

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.

How to&Answers:

For the record (and for all lost souls who arrive here by Google search like me):

Symfony console is not a program per se. It is just a PHP script. Therefore, when you run Symfony console, it doesn’t have its own php.ini or extension directory or other configuration – It uses the same settings as all your other PHP scripts. (Unless overwritten at runtime – which actually might be the case of the original question.)

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

Answer:

Drop a file in your web directory with inside. Open it with your browser and search for php.ini that will give you the correct file. There could be several files yf you look directy in your configuration directory (cli, fpm, apache and so on)