php - 通过 php 运行 npm install 脚本

标签 php bash shell

我想在文件夹中运行npm install来安装一些节点模块等。

如何在 PHP 脚本中执行此操作? 我已经尝试了很多东西,很明显我不清楚实际问题;)

我尝试过以下方法:

shell_exec("npm install");(失败)

exec("npm install") (失败并出现 127 错误,这意味着我认为它找不到要运行的脚本)

有什么想法吗?

最佳答案

有两个问题需要处理:

  1. 在我的 vagrant box 上安装 Node。

  2. 确保 PHP 运行 exec() 命令的用户拥有正确的权限。

在同事的帮助下,我找到了要设置的正确权限。我调用了 exec("whoami") 来查看 PHP 正在使用 apache 用户,然后通过 SSH 连接到 vagrant 并执行以下操作:

cd /var
sudo chown apache:apache www

然后我能够通过运行来确保我的用户被授予权限

ls -l

结果摘录如下。您可以看到 www 文件夹已为 apache 设置了权限

drwxr-xr-x.  8 root   root   4096 Nov 30  2015 spool
drwxrwxrwt.  4 root   root   4096 Oct 27 15:48 tmp
drwxr-xr-x.  5 apache apache 4096 Jul 18 11:24 www
drwxr-xr-x.  2 root   root   4096 Sep 23  2011 yp

这是我现在能够通过 PHP 成功运行的内容:

exec("HOME='".$_SERVER['DOCUMENT_ROOT']."' && cd ./../tmp && npm install", $output, $status);

希望这对将来的人有帮助。

关于php - 通过 php 运行 npm install 脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40291782/

相关文章:

php - 好友关注/取消关注表结构#MySQL

php - echo 中三元运算符的问题

linux - 在 Linux 中使用列表重命名文件名

bash - 无法在 curl 中插入带有两个 header 的变量

linux - IF语句多个and or条件

php - SQL/Joomla 数据库查询 - 伪代码需要翻译

php - 我如何在 php 中对私有(private)属性进行 json 编码?

Bash - 具有可选参数和缺失逻辑的函数

bash - 当我想查看 bash 中某些内容的 grep 输出时,如何检索 header ?

linux - 将文件移动到同一目录中具有旧扩展名的文件