【问题标题】:Probleme shell_exec with php using ubuntu使用 ubuntu 的 php 问题 shell_exec
【发布时间】:2017-12-22 09:38:56
【问题描述】:

shell_exec 有问题。我需要从php 文件运行sh 文件

在 ubuntu 中:

<?php
echo shell_exec ('sh ./myScript.sh');
?>

但是没有用。


我在 Windows 中尝试了以下方法,并且成功了:

<?php
exec('c:\WINDOWS\system32\cmd.exe /c START myScript.bat');
?>

【问题讨论】:

  • 有什么问题?您确定./myScript.sh 指向您指定的文件吗?还是什么不起作用?
  • myScript.sh 与我的页面 runScript.php 在同一文件夹中 /var/www/html/ 我使用终端 Sh ./myScript.sh 测试 myScript.sh 并工作
  • 是的,但是 shell_exec 可能从其他目录开始,比如 shell 二进制文件所在的位置,我会先尝试完整路径
  • 我托盘它 echo shell_exec ('sh var/www/html/myScript.sh');没有 rslt :/

标签: php ubuntu sh shell-exec


【解决方案1】:

你需要像这样运行命令:

shell_exec ('sh /var/www/html/myScript.sh'); 

【讨论】:

  • 无法从 Talend 作业生成 myScript.sh #!/bin/sh cd dirname $0 ROOT_PATH=pwd java -Xms256M -Xmx1024M -cp .:$ROOT_PATH:$ROOT_PATH/../ lib/routines.jar:$ROOT_PATH/../lib/log4j-1.2.16.jar:$ROOT_PATH/../lib/dom4j-1.6.1.jar:$ROOT_PATH/php_0_1.jar:local_project.php_0_1.Php --context=默认 "$@"
  • 这是你得到的错误吗?似乎脚本正在运行该文件,但错误来自 myScript.sh。您是否尝试过在 Linux 中从终端运行脚本?
  • 不,这是我在 myScript.sh 文件中的代码 #!/bin/sh cd dirname $0 ROOT_PATH=pwd java -Xms256M -Xmx1024M -cp .:$ROOT_PATH:$ROOT_PATH/.. /lib/routines.jar:$ROOT_PATH/../lib/log4j-1.2.16.jar:$ROOT_PATH/../lib/dom4j-1.6.1.jar:$ROOT_PATH/php_0_1.jar:local_project.php_0_1。 Php --context=Default "$@" 是的,我尝试使用 Sh ./myScript.sh 运行它并运行
  • 当你从 PHP 运行它时,它会抛出任何错误吗?
  • 没有错误我尝试使用示例 shell 文件 hello word 和工作:3 但我的 shell 文件需要显示它显示一个消息框
猜你喜欢
  • 2016-07-04
  • 2012-02-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-03-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多