env:bash:没有这样的文件或目录

时间:2018-08-27 12:10:54

标签: bash nginx passenger

(是,我已经检查了其他答案,这与行尾无关。)

我在Passenger上部署nginx时遇到以下子流程错误。这是在FreeBSD-11.1上:

env: bash: No such file or directory

很奇怪。 nginx进程从root开始,然后移至nobody,我的外壳确实更改为/usr/local/bin/bash。这些用户中的任何一个看不到bash的方式都很奇怪。但是他们报告的路径不包括/usr/local/bin

root环境:

uid=0(root) gid=0(wheel) groups=0(wheel),5(operator)

SERVER_SOFTWARE=nginx/1.14.0 Phusion_Passenger/5.3.4
PASSENGER_USE_FEEDBACK_FD=true
PATH=/sbin:/bin:/usr/sbin:/usr/bin
PWD=/
HOME=/
RC_PID=1360

对于nobody

uid=65534(nobody) gid=65534(nobody) groups=65534(nobody)

PYTHONUNBUFFERED=1
PASSENGER_SPAWN_WORK_DIR=/tmp/passenger.spawn.lJk10nqveb
RC_PID=1360
PASSENGER_USE_FEEDBACK_FD=true
NODE_PATH=/usr/local/lib/ruby/gems/2.5/gems/passenger/src/nodejs_supportlib
NODE_ENV=production
USER=nobody
PWD=/usr/local/www/pneb
HOME=/nonexistent
PASSENGER_APP_ENV=production
RAILS_ENV=production
SHELL=/usr/local/bin/bash
RACK_ENV=production
SHLVL=0
IN_PASSENGER=1
WSGI_ENV=production
LOGNAME=nobody
PATH=/sbin:/bin:/usr/sbin:/usr/bin
SERVER_SOFTWARE=nginx/1.14.0 Phusion_Passenger/5.3.4

这些用户都看不到bash。我不确定哪个引发了错误。

如何解决这个问题?我希望Passengernginx一起使用能够看到外壳。

2 个答案:

答案 0 :(得分:1)

解决了,感谢查尔斯·达菲的聊天:

nginx的{​​{1}}启动器中添加以下内容:

/usr/local/etc/rc.d/nginx

这给nginx一个PATH=$PATH:/usr/local/bin 来查看PATH

答案 1 :(得分:0)

谢谢。这可以通过在.zsh终端中运行它来解决我的问题

通过运行$ nano .zshrc打开.zshrc 然后 将此添加到文件中: PATH = $ PATH:/ usr / local / bin:$ PATH