devenv icon indicating copy to clipboard operation
devenv copied to clipboard

PHP FPM service seems to use .env file even if dotenv is not enabled

Open nickygerritsen opened this issue 1 year ago • 4 comments

Describe the bug Any PHP scripts running through PHP FPM seem to put all variables that are in my .env file into the $_SERVER supergloball, even if I disable dotEnv integration.

To reproduce https://gist.github.com/nickygerritsen/a2c52ba9e8e2f8bf96485bb05169f654

Note that setting "clear_env" = "no" makes all environment variables go away, but of course also those in my .nix file.

Now when I open the index.php and dump $_SERVER i see APP_ENV=prod as defined in my .env. Which is not what I want, since I also would like my .env.local to override this (default Symfony / Shopware behavior).

Enabling the dotenv integration and specifying both files makes it use the right environment variables, but then I need to restart my services each time I change one, while Symfony normally dynamically loads the files.

Note that devenv shell does NOT have the .env variables, and I can't seem to find where FPM get's them from. If there is anything I can do to help find the issue or explain it better, let me know.

Version

devenv 1.0.5 (aarch64-darwin)

nickygerritsen avatar Jun 05 '24 14:06 nickygerritsen

Maybe php-fpm reads the .env files itself? That's the only way I could see it working.

domenkozar avatar Jun 06 '24 09:06 domenkozar

That was my guess, but I can't seem to find anything telling me it does

nickygerritsen avatar Jun 06 '24 09:06 nickygerritsen

Noo it's an bug of process compose. IT"S SOOO ANNOYING

Just do

process.implementation = "honcho";

https://github.com/F1bonacc1/process-compose/issues/192

shyim avatar Jun 09 '24 16:06 shyim

I just had a somehow related problem for another project where $_ENV was always an empty array. I needed to set variables_order = "EGPCS" in my php.ini (via php.buildEnv extraConfig) to make my project load the environment correctly.

More info: https://stackoverflow.com/a/27077452/4303873

RafaelKr avatar Jul 30 '24 13:07 RafaelKr

This can now be disabled when you add --disable-dotenv to process-compose. If you use the version from unstable.

Nebucatnetzer avatar Oct 04 '24 15:10 Nebucatnetzer

Will be fixed by https://github.com/cachix/devenv/pull/1489

domenkozar avatar Oct 07 '24 13:10 domenkozar