出现错误“node”:在设置 laravel-echo-server 时没有这样的文件或目录

Getting error ‘node’: No such file or directory while setting up laravel-echo-server with supervisor

我正在设置 laravel-echo-server 以从 supervisor 启动,但我收到此错误日志

/usr/bin/env: ‘node’: No such file or directory
/usr/bin/env: ‘node’: No such file or directory
/usr/bin/env: ‘node’: No such file or directory
/usr/bin/env: ‘node’: No such file or directory

我的supervisor.conf文件有脚本:

; supervisor config file

[unix_http_server]
file=/var/run/supervisor.sock   ; (the path to the socket file)
chmod=0770                       ; sockef file mode (default 0700)
chown=root:supervisor

[supervisord]
logfile=/var/log/supervisor/supervisord.log ; (main log file;default $CWD/supervisord.log)
pidfile=/var/run/supervisord.pid ; (supervisord pidfile;default supervisord.pid)
childlogdir=/var/log/supervisor            ; ('AUTO' child log dir, default $TEMP)

; the below section must remain in the config file for RPC
; (supervisorctl/web interface) to work, additional interfaces may be
; added by defining them in separate rpcinterface: sections
[rpcinterface:supervisor]
supervisor.rpcinterface_factory = supervisor.rpcinterface:make_main_rpcinterface

[supervisorctl]
serverurl=unix:///var/run/supervisor.sock ; use a unix:// URL  for a unix socket

; The [include] section can just contain the "files" setting.  This
; setting can list multiple files (separated by whitespace or
; newlines).  It can also contain wildcards.  The filenames are
; interpreted as relative to this file.  Included files *cannot*
; include files themselves.

[include]
files = /etc/supervisor/conf.d/*.conf

laravel-echo.conf有这个脚本

[program:echo-server]
directory=/var/www/html/nowme_realchat
command= /home/nayan/.nvm/versions/node/v10.15.1/bin/laravel-echo-server start
autostart=true
autorestart=true
startsecs=0
user=root
redirect_stderr=true
stdout_logfile=/var/www/html/nowme_realchat/storage/logs/echoserver.log

我重新阅读了 conf 文件

sudo supervisorctl reread

并更新脚本

sudo supervisorctl update

sudo supervisorctl status:

出错
echo-server                      FATAL     Exited too quickly (process log may have details)

我该如何解决这个问题?

节点未定义。

/home/nayan/.nvm/versions/node/v10.15.1/bin/node

将键添加到命令。

--dir={path_project}

例子

[program:echo-server]
directory={path_project}
command=/home/nayan/.nvm/versions/node/v10.15.1/bin/node /home/nayan/.nvm/versions/node/v10.15.1/bin/laravel-echo-server start --dir={path_project}
autostart=true
autorestart=true
user=root
redirect_stderr=true
stdout_logfile={path_project}/storage/logs/echoserver.log

所以我在 2 年后看到了这个,并想添加我的发现以解决上述问题:

问题出在找不到节点的路径上。为了解决这个问题,我为节点和 npm

创建了符号链接
sudo ln -s "$(which node)" /usr/bin/node
sudo ln -s "$(which npm)" /usr/bin/npm

我们还可以为我们的 laravel-echo-server 创建一个符号链接,以摆脱冗长的绝对路径。

sudo ln -s /home/vermajnv/.nvm/versions/node/v14.17.1/bin/laravel-echo-server /usr/bin/laravel-echo-server

现在我们可以像这样更改laravel-echo.conf中的命令

command=laravel-echo-server start

现在重新阅读并更新 supervisorctl 服务,一切都会好起来的。