php - 通过 shell 脚本运行 Cordova - 权限问题
问题描述
我有一个从 PHP 调用的 shell 脚本(称为 test.sh)。在脚本中,我只有:
#!/bin/bash
echo $(whoami)
cordova platform version ios
如果我从终端内调用 test.sh 它可以正常工作并返回cordova ios版本。
如果我尝试使用 PHP 调用 test.sh,我会得到:
cordova: not found
我已将 apache 更改为在我的用户名而不是 _www 下运行,但这并没有奏效。
谁能指出我正确的方向,因为我猜这是权限问题?
我现在通过删除 .sh 文件并仅使用 PHP 脚本(在用户 _www 下)进一步简化了它
exec('echo $(whoami) 2>&1', $output, $return_var);
print_r($output);
echo "<br><br>";
putenv("CORDOVA_HOME=/usr/local/bin/cordova");
exec('cordova -v 2>&1', $output, $return_var);
print_r($output);
注意: whoami 工作正常,但仍找不到 corvoda。
解决方案
使用 npm 全局安装 Cordova。目前 Cordova 在全球范围内您的主机中不可用。因此,首先在全球范围内进行。
在 OS X 和 Linux 上:
sudo npm install -g cordova
在 Windows 上:
C:\>npm install -g cordova
推荐阅读
- gcc - 静态链接linux中共享对象的依赖关系
- discord.js - 井字游戏循环中的 Discord.js 消息收集器
- css - 我需要在这里做什么使 css 动画关键帧(摆动)在这里工作?
- python - AttributeError:模块“pandas”没有属性“df”
- node.js - 将 node.JS 应用程序连接到 Heroku PostgreSQL 数据库
- sql - Postgresql - 按 DESC 排序不起作用
- excel-formula - Excel 2019:根据 sheet1 列 A 的值将数据从 sheet2 列 B、C、D 复制到 sheet1 列 B、C、D
- sql-server - 如何将 SQL Server 备份恢复到比最新可用时间更早的时间?
- java - Maven 中的后期构建步骤
- swiftui - 如何使用 SwiftUI2 网格创建“砌体式”布局?