【发布时间】:2023-03-25 16:16:02
【问题描述】:
我正在尝试运行一个 shell 命令来编译 gulp。
我经常跑:
cd
cd /var/www/html/
npm uninstall gulp --save
npm install gulp --save
npm start
gulp 文件编译良好。
我需要知道是否有编译 gulp 文件的方法(本质上是从 php 文档运行 npm start 命令。
$output = shell_exec('./compileNpmStart.sh');
// display $output
echo $output;
这似乎可以编译但是:
编译后我得到一个日志文件而不是正确编译。
0 info it worked if it ends with ok
1 verbose cli [ '/usr/bin/nodejs', '/usr/bin/npm', 'start' ]
2 info using npm@4.1.2
3 info using node@v7.5.0
4 verbose run-script [ 'prestart', 'start', 'poststart' ]
5 info lifecycle base-prep@1.0.0~prestart: base-prep@1.0.0
6 warn lifecycle npm is using /usr/bin/nodejs but there is no node binary in the current PATH. Use the `--scripts-prepend-node-path` option to include the path for the node binary npm was executed with.
7 silly lifecycle base-prep@1.0.0~prestart: no script for prestart, continuing
8 info lifecycle base-prep@1.0.0~start: base-prep@1.0.0
9 verbose lifecycle base-prep@1.0.0~start: unsafe-perm in lifecycle true
10 verbose lifecycle base-prep@1.0.0~start: PATH: /usr/lib/node_modules/npm/bin/node-gyp-bin:/var/www/html/node_modules/.bin
11 verbose lifecycle base-prep@1.0.0~start: CWD: /var/www/html
12 silly lifecycle base-prep@1.0.0~start: Args: [ '-c', 'gulp serve' ]
13 info lifecycle base-prep@1.0.0~start: Failed to exec start script
14 verbose stack Error: base-prep@1.0.0 start: `gulp serve`
14 verbose stack spawn sh ENOENT
14 verbose stack at exports._errnoException (util.js:1023:11)
14 verbose stack at Process.ChildProcess._handle.onexit (internal/child_process.js:193:32)
14 verbose stack at onErrorNT (internal/child_process.js:359:16)
14 verbose stack at _combinedTickCallback (internal/process/next_tick.js:74:11)
14 verbose stack at process._tickCallback (internal/process/next_tick.js:98:9)
15 verbose pkgid base-prep@1.0.0
16 verbose cwd /var/www/html
17 error Linux 4.8.6-x86_64-linode78
18 error argv "/usr/bin/nodejs" "/usr/bin/npm" "start"
19 error node v7.5.0
20 error npm v4.1.2
21 error file sh
22 error path sh
23 error code ELIFECYCLE
24 error errno ENOENT
25 error syscall spawn sh
26 error base-prep@1.0.0 start: `gulp serve`
26 error spawn sh ENOENT
27 error Failed at the base-prep@1.0.0 start script 'gulp serve'.
27 error Make sure you have the latest version of node.js and npm installed.
27 error If you do, this is most likely a problem with the base-prep package,
27 error not with npm itself.
27 error Tell the author that this fails on your system:
27 error gulp serve
27 error You can get information on how to open an issue for this project with:
27 error npm bugs base-prep
27 error Or if that isn't available, you can get their info via:
27 error npm owner ls base-prep
27 error There is likely additional logging output above.
28 verbose exit [ 1, true ]
【问题讨论】:
-
查找 shell_exec
-
我尝试了 shell_exec、System()、exec() 和其他一些。它们似乎都不起作用。我认为可能存在某种权限错误。尝试安装 webconsole.php 并从基于 Web 的 web-console.org 终端运行命令。出现权限错误。
-
你试过用 SUID 创建一个 shell 脚本并执行它吗?
-
我没有。我现在试试看它是否适合我。
-
无法正常工作
标签: php node.js shell npm gulp