cachix / devenv

Fast, Declarative, Reproducible, and Composable Developer Environments
https://devenv.sh
Apache License 2.0
4.05k stars 304 forks source link

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

Open nickygerritsen opened 3 months ago

nickygerritsen commented 3 months ago

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)
domenkozar commented 3 months ago

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

nickygerritsen commented 3 months ago

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

shyim commented 3 months ago

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

RafaelKr commented 1 month ago

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