0

我有一个 shell 脚本(即mat.sh),并且在同一目录中/var/www/也有一个 php 脚本(即)。n1.php当我从 bash 命令运行 shell 脚本时,它正在运行,但是当我从 apache2 php 服务器执行相同的命令时,它没有执行。

mat.sh包含..

#!/bin/bash

cat <<EOF | /var/www/matlab  -nodesktop -nosplash -nodisplay /> result.out
a=add(2,3);
disp('this is done');
disp(a);
exit
EOF

注意:/var/www/matlab是matlab链接的目录

n1.php包含..

<html>
<body>
<?php
if ($_GET['run'])
{
  # This code will run if ?run=true is set.
 echo "Execution starts here...<br/>\n";
 echo exec("whoami");
 echo "<br/>\n";
exec ("chmod a+x mat.sh", $output, $return);
if ($return != 0)

{
        //An error occured, fallback or whatever

        echo "Execution failed<br/>\n";
}
exec ("sh mat.sh");
}
?>

<!-- This link will add ?run=true to your URL, myfilename.php?run=true -->
<a href="?run=true">Click Me!</a>

请帮我.....

4

1 回答 1

0

完成后是否收到错误消息chmod

确保它mat.sh与您的 apache2-server-instance 具有相同的所有者,否则此行

exec ("chmod a+x mat.sh", $output, $return);

将失败,因为只有所有者才能更改权限。

于 2013-08-09T05:48:48.157 回答