簡體   English   中英

如何從PHP調用Shell腳本

[英]How to call the shell script from php

我試圖使用php調用shell腳本。

在這里,我有一個ajax代碼,該代碼獲得下拉值並將這些值發送到另一個php頁面( deleteslide.php )。

deleteslide.php從此頁面獲取值,並使用帶有從deleteslide.php獲取的值的參數調用delete-slide.sh腳本。

但是當我運行代碼時,它沒有調用腳本...

如何解決這個問題呢

這是我所做的:

主頁(index.php)

AJAX代碼:

$("#deleteslide").click(function()
    {
        var prjid=document.getElementById("project-list").value;
        var unitid=document.getElementById("unit-list").value;
        var slidid=document.getElementById("slide-list").value;
           var d ='deleteslide.php?projectId='+prjid+'&unitNo='+unitid+'&slideNo='+slidid;
            $.ajax({                   
        url:d,                                           
        success:function(output)
        {              
            alert(output);              
        }           
    });
    });

deleteslide.php代碼:

<?php
$prtId =$_GET["projectId"];
$utNo=$_GET["unitNo"];
$sdeNo=$_GET["slideNo"];
 $c='/var/www/createslides/gen-json-data/delete-slide.sh '.$prtId.' '.$utNo.' '.$sdeNo;
 //print("$c");
$output=shell_exec($c );
print("$output"); 
?>

在這里,deleteslide.php正在調用delete-slide.sh腳本,但是該腳本未運行。

可能是什么問題呢??

我該如何解決?

可能是您的腳本沒有執行權限:-

1)都可以給您的sctipt授予執行權限:-linux_shell> chmod + x /var/www/createslides/gen-json-data/delete-slide.sh

要么

2)使用“ sh”運行腳本:

$ c =' sh /var/www/createslides/gen-json-data/delete-slide.sh'。$ prtId。' '。$ utNo。' '。$ sdeNo;

注意:-當您在linux shell中測試shell腳本時,它會以登錄用戶權限執行,但是當您通過網絡運行它時,它將以apache用戶權限運行,因此apache應該具有執行該腳本的權限...

嘗試添加error_reporting(-1); 可能是禁用了shell_exec

暫無
暫無

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

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