beyondcode / invoker-community

74 stars 2 forks source link

Unable to spawn PHP on NixOS #356

Closed radmen closed 1 year ago

radmen commented 1 year ago

Invoker tries to find the PHP binary in /usr/local/bin/php. On NixOS, it doesn't exist.

image

A common practice is using /usr/bin/env php to run the PHP process, though I don't know if this can be used in Invoker.


OS: NixOS 23.05 Invoker Version: 2.13.2 Laravel Version: unknown Local project: true PHP Binary: /usr/local/bin/php Route: /home

Error:

Error: spawn /usr/local/bin/php ENOENT
radmen commented 1 year ago

Oh, I just noticed that I can set a strict path in the settings. Is it possible to set it via the env variable? If yes, I can prepare a script that will set up everything on my host.

sschlein commented 1 year ago

Hi @radmen – if there is no normal binary on this OS, Invoker doesn't support it.

This is the first time that I hear of this OS and I don't think that we can investigate this further because it's too niche for us to be a business case.

Thanks for understanding

radmen commented 1 year ago

@sschlein is it possible to pass the path to PHP via env variable? In that case I can set up everything w/o any issues.

sschlein commented 1 year ago

Invoker has no support for this at the moment and I don't think that it will anytime soon

radmen commented 1 year ago

if there is no normal binary on this OS, Invoker doesn't support it.

BTW, I'm not sure if this is the correct approach. Invoker by default assumes that php binary will be at the same location for every OS, which might not be the case at all. There should be a better way of detecting it.

Via console, you can do it by using which php. If the binary is in $PATH it will locate it.

sschlein commented 1 year ago

Invoker does that and uses this as main PHP in the settings, so if your general question is to select a different path to the settings, you can do that 🤔

radmen commented 1 year ago

My issue is - why didn't it detect automatically the correct path to the PHP binary? It's in the $PATH, so there should be no problems with that.

For now, I set that manually in the settings so everything works.

radmen commented 1 year ago

I think answer to my question is that AppImage might have restricted access to the env variables and is unable to read $PATH.

Thank you for your time!