小编Ian*_*ley的帖子

npm install 无法通过 php system() (exec / shell_exec) 运行

我正在使用 npm install 在其他软件包中安装 gulp-sass。使用 CLI(使用 sudo su forge)可以正常工作:

cd /path/to/package.json/
npm install
Run Code Online (Sandbox Code Playgroud)

package.json 看起来像:

{
  "name": "skeleton",
  "version": "1.0.0",
  "authors": [
    "Me <me@mycompany.co.uk>"
  ],
  "private": true,
  "devDependencies": {
    "gulp": "^3.8.11",
    "gulp-autoprefixer": "^2.1.0",
    "gulp-concat": "^2.5.2",
    "gulp-minify-css": "^1.0.0",
    "gulp-notify": "^2.2.0",
    "gulp-sass": "^1.3.3",
    "gulp-sourcemaps": "^1.5.2",
    "gulp-uglify": "^1.2.0"
  },
  "dependencies": {
    "node-notifier": "^4.2.1",
    "streamqueue": "^0.1.3"
  }
}
Run Code Online (Sandbox Code Playgroud)

在命令行中使用 PHP 也可以正常工作:

php -r "system('npm install');"
Run Code Online (Sandbox Code Playgroud)

但是通过 nginx/PHP-FPM 运行以下 PHP:

<?php

set_time_limit(0);
chdir('/path/to/package.json/');
echo "<pre>";
echo shell_exec('npm install 2>&1');

die();
Run Code Online (Sandbox Code Playgroud)

输出包含以下行的调试文件:

81427 error Linux 4.5.5-x86_64-linode69 …
Run Code Online (Sandbox Code Playgroud)

php nginx command-line-interface npm

5
推荐指数
1
解决办法
1424
查看次数

标签 统计

command-line-interface ×1

nginx ×1

npm ×1

php ×1