簡體   English   中英

PHP無法正確執行bash腳本

[英]PHP not properly executing bash script

我正在創建一個簡單的網頁,該網頁將允許用戶在基本php頁面上選擇一個選項,單擊“提交”,然后后端PHP應執行一個bash腳本,該腳本將執行一些AppleScript。

我可以從Terminal運行bash腳本,並且可以使用osascript很好地運行Applescript文件,但是當我嘗試從php執行bash腳本時,它將運行echo命令,但不會執行osascript行。 我想這是一個權限問題,但是我使用chmod 777將所有內容更改為完全特權(當然,這不是最好的主意,但這是重點)

我有什么想念的嗎? 似乎完全跳過了osascript行很奇怪。 有什么建議么? 提前致謝!

碼:

的PHP

<?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');
    }
}
?>

重擊

#!/bin/bash
echo "test String"
cd /Users/Zimmerman/Library/Scripts
osascript /Users/Zimmerman/Library/Scripts/testscript.scpt
echo "test String"

您的apache $ PATH變量可能不在/usr/bin/ 如果您回聲shell_exec('which osascript'); 在PHP文件中,您可能看不到任何內容,但是會在終端上看到結果。

您可以將路徑添加到Web服務器的$ PATH變量,或者可以嘗試使用腳本中可執行文件/usr/bin/osascript的完整路徑。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM