我正在创建一个简单的网页,允许用户在基本的php页面上选择一个选项,点击提交,然后后端PHP应该执行一个bash脚本,它将执行一些AppleScript。
我可以从终端运行bash脚本,并使用osascript
运行Applescript文件,但是当我尝试从php执行bash脚本时,它将运行echo命令,但不会执行{{1}行。我想这是一个权限问题,但是我使用osascript
将所有内容更改为完全权限(诚然不是最好的主意,但这不是重点)
我有什么遗失的吗?奇怪的是它似乎完全跳过chmod 777
线。有什么建议?提前谢谢!
CODE:
PHP
osascript
BASH
<?php
if (isset($_POST['submit'])) {
$username = $_POST['username'];
if (strcasecmp($username, 'user1') == 0) {
echo 'test1';
} else if (strcasecmp($username, 'user2') == 0) {
echo 'test2';
} else if (strcasecmp($username, 'user3') == 0) {
echo 'test3';
} else if (strcasecmp($username, 'user4') == 0) {
shell_exec('cd ~/Sites;./a.out');
}
}
?>
答案 0 :(得分:0)
您的apache $ PATH变量可能无法查看/usr/bin/
。如果你在PHP文件中回显shell_exec('which osascript');
,你可能看不到任何东西,但你会在终端上看到结果。
您可以向Web服务器$ PATH变量添加路径,也可以尝试使用脚本上可执行文件/usr/bin/osascript
的完整路径。