【发布时间】:2018-05-22 09:39:00
【问题描述】:
我必须在我的 laravel 项目中设置 laravel-echo-server。我已成功安装它,并且在我从终端运行时它运行良好。但是在从主管运行时,它会抛出错误
找不到模块'node-v46-linux-x64/node_sqlite3.node'
我几乎花了两天时间来解决这个问题。但我没有成功。因此,如果有人知道答案,将不胜感激。
这里是所有步骤/配置详细信息。
- 安装节点 7.10.0 (https://github.com/nodejs/help/wiki/Installation)
- 全局安装 laravel-echo-server 并在我的项目中初始化
在这些步骤之后,如果我从终端运行“laravel-echo-server start”,它会完美运行。
现在我必须在主管中设置这个命令。所以我已经执行了这些步骤。
创建 laravel-echo-server 的符号链接 (
sudo ln -s /usr/lib/nodejs/node-v7.10.0/lib/node_modules/laravel-echo-server/bin/server.js /usr/bin/laravel-echo-server)-
在主管中设置“laravel-echo-server start”命令
这里是主管的详细信息。
文件位置:
/etc/supervisor/conf.d/laravel.conf[program:laravel-echo-server] command=/usr/bin/laravel-echo-server start --dir=/var/www/html/laravel autostart=true autorestart=true stderr_logfile=/var/www/html/laravel/laravel-echo-server-err.log stdout_logfile=/var/www/html/laravel/laravel-echo-server-out.log 运行
sudo supervisorctl reread和sudo supervisorctl update运行
sudo supervisorctl start laravel-echo-server
但它会引发错误。这是错误日志。
Error: Cannot find module '/usr/lib/nodejs/node-v7.10.0/lib/node_modules/laravel-echo-server/node_modules/sqlite3/lib/binding/node-v46-linux-x64/node_sqlite3.node'
at Function.Module._resolveFilename (module.js:326:15)
at Function.Module._load (module.js:277:25)
at Module.require (module.js:354:17)
at require (internal/module.js:12:17)
at Object.<anonymous> (/usr/lib/nodejs/node-v7.10.0/lib/node_modules/laravel-echo-server/node_modules/sqlite3/lib/sqlite3.js:4:15)
at Module._compile (module.js:410:26)
at Object.Module._extensions..js (module.js:417:10)
at Module.load (module.js:344:32)
at Function.Module._load (module.js:301:12)
at Module.require (module.js:354:17)
at require (internal/module.js:12:17)
at Object.<anonymous> (/usr/lib/nodejs/node-v7.10.0/lib/node_modules/laravel-echo-server/dist/database/sqlite.js:3:15)
at Module._compile (module.js:410:26)
at Object.Module._extensions..js (module.js:417:10)
at Module.load (module.js:344:32)
at Function.Module._load (module.js:301:12)
/usr/lib/nodejs/node-v7.10.0/lib/node_modules/laravel-echo-server/node_modules/sqlite3/lib/binding中有node-v51-linux-x64目录。
【问题讨论】:
-
试试
npm install sqlite3 --build-from-source -
或者只是将 v51 重命名为 v46
-
@SapneshNaik 重命名不起作用
-
@SapneshNaik 你能告诉我应该从哪里运行
npm install sqlite3 --build-from-source吗?仅供参考,laravel-echo-server 在安装 laravel-echo-server 时自行运行sqlite3@3.1.13 install。见https://prnt.sc/hknskn -
从你的 laravel 文件夹运行它
标签: node.js laravel sqlite laravel-echo