草庐IT

shell-execute

全部标签

php - 为什么结果等于 0,有时等于 1 - shell_exec('pgrep -f

脚本:$S='pgrep-ftest.php|wc-l';$U=trim(shell_exec($S));echo$U;为什么这个脚本的结果等于0有时是1?文件test.php没有运行。 最佳答案 问题是在执行命令时pgrep-ftest.php|wc-l,它有时会(取决于时间)出现在结果中。您可以根据aquestiononLinux&UnixSE防止这种情况发生使用以下语法:pgrep-f'[t]est.php'|wc-l括号中的部分基本上是说“找到字母t后跟est.php”,如果它正在运行,它会找到文件,但不会匹配当前执行的命令

php - Shell脚本段错误

您好,我有一个shell脚本,它应该基于返回的php代码运行:x=1while[["$x"!=5]]doecho"Welcome$x"phptest.phpx=$?done还有php代码echo"Testdfdftest".PHP_EOL;exit(4);所以我希望每当我从php获得5时退出循环。但我有时会:./myshell:line7:20529Segmentationfaultphptest.php它应该毫无问题地循环吗? 最佳答案 可能是因为这个错误同时影响了Ubuntu和Debian...https://bugs.laun

php - 带 git pull 的 Shell_exec?

我正在设置一个github帐户,与一些friend一起做一个小项目。我想让我的家用机器能够通过php进行gitpull,这样我们只需要调用这个小的php文件就可以使机器保持最新。截至目前:$output";?>这完美地工作,我得到了输出,我在正确的目录中,所以gitpull应该也能正常工作,但我得到一个挂起的页面,没有错误,什么都没有。有什么想法吗?编辑:一些精度,repo非常小,大约300K,从命令行只需几秒钟。我还尝试了shell_exec("dir"),我在正确的目录中。我在Windows7x64上运行xampp的默认安装,如果我能足够精确的话:) 最

php - 以不同(非 root)用户身份从 PHP 运行 shell 脚本

我正在尝试在Ubuntu服务器上通过PHP运行非特权用户拥有的shell脚本。权限问题使得使用exec()运行它变得不切实际,因为运行它的是www-data。我在谷歌上搜索了一下,发现了对suExec的各种引用(对于这样一个小问题,这似乎太麻烦了),设置suid位,以及Stackoverflow上的一个有趣的方法,涉及Python服务器监听发送的命令通过PHP。无论如何,在所有这些解决方案中,我倾向于涉及设置suid位的解决方案,尝试过但没有用:chmodu+sscript.sh,以及我的Apache日志仍然显示权限错误,所以我知道脚本不是以其所有者的身份运行,而是以www-data的

php - 无法以完全权限运行 shell 脚本 (UNIX)

我有一个在php脚本中创建的shell脚本(具有完全权限)。当我尝试从终端运行shell脚本时,我没有收到任何错误,但脚本没有运行(没有命令执行)。虽然,一旦我复制shell脚本的内容,将它们粘贴到XCode中的一个新文件中,并覆盖旧的shell脚本,它就可以正常运行。有什么建议吗?很长一段时间以来,我一直在努力解决这个问题,但没有任何进展。我假设从php脚本编写shell脚本存在问题,因为它在XCode或文本编辑器中编写时有效。这里是写shell脚本的php脚本:$filePath="/Applications/MAMP/htdocs/php/Batch/modulator/Rele

php - max_execution_time 和 sleep()

这个问题在这里已经有了答案:关闭11年前。PossibleDuplicate:Doessleeptimecountforexecutiontimelimit?如果最大执行时间低于sleep函数参数ini_set('max_execution_time',30);sleep(35);foo();foo()函数会运行吗?它是否特定于操作系统?编辑:感谢您的回答,并提供指向类似问题的链接:Doessleeptimecountforexecutiontimelimit?

php - fatal error : Maximum execution time of 30 seconds exceeded when i execute daily run from my website

我正在使用来自网站供应商的phpMyAdmin。我似乎无法编辑php.ini设置页面。那么在哪里设置ini_set('max_execution_time',300);?在我的Php编码页面中?或任何设置页面? 最佳答案 如果您不能编辑php.ini配置,那么您可以在您的PHP页面顶部设置以下内容:ini_set('max_execution_time',300);//300seconds=5minutes//ORset_time_limit(300);//Ifsettozero,notimelimitisimposed.注意:se

php - 如何使用 PHP 的实时反馈运行 shell 脚本?

如何在向浏览器提供持续/实时反馈的同时从PHP执行shell脚本?我从system了解到功能文档:Thesystem()callalsotriestoautomaticallyflushthewebserver'soutputbufferaftereachlineofoutputifPHPisrunningasaservermodule.我不清楚他们将其作为“服务器模块”运行是什么意思。示例PHP代码:示例shell代码:#!/bin/bashecho"Start..."foriin{1..10}doecho"$i..."sleep1doneecho"Done."这是做什么的:它将等待

php - 当使用 php exec() 运行 shell 脚本时,一个脚本可以工作(只执行 git status)而另一个不可用(执行 git checkout)。怎么会?

我正在尝试设置一个基于Web的门户,通过它我们可以通过简单地单击后端面板来检查Git存储库的不同分支。目前,我有/var/www/devportal,其中包含index.php、status.sh和checkout.sh在index.php中,我执行以下操作:$repo=$_GET['repo'];$command='shstatus.sh'.$repo;$output=exec($command);echo"$output";status.sh的内容是:#!/bin/bash-eif[$#-ne1]thenecho"Usage:`basename$0`"exit1ficd/var/w

php - bindParam 和 execute(array) 有什么区别?

$stmt=$this->_db->prepare("SELECTuseridFROMusersWHERElogin=?ANDmd5pass=?");#$stmt->bindParam(1,$login,PDO::PARAM_INT);#$stmt->bindParam(2,$pass,PDO::PARAM_STR);$stmt->execute(array($login,$pass));$res=$stmt->fetch(PDO::FETCH_NUM);将变量传输到预先声明的bindParam或execute(array)中哪种方式更好?两者都有效,但有什么不同?只有PDO::PAR