草庐IT

shell-execute

全部标签

php - 如何使 PHP shell_exec 可以访问 GPG key

我正在编写一个需要通过命令行(使用shell_exec())运行perl脚本的脚本。为了设置脚本,我需要在我这边生成一个GPGkey,并将他们的公钥导入我的GPGkey环。当我以ROOT用户身份运行时,perl脚本工作正常,但是当通过PHP运行时,它会抛出此错误消息:“尝试签署请求时发生错误”我认为这意味着我在我的根用户中设置的GPGkey无法访问PHP在(即apache)下运行其shell命令的用户。我应该如何解决这个问题?我不知道我是否需要以apache身份登录并导入key,或者是否有一个命令以root身份运行以允许将它们共享给apache用户...任何想法都很好:)

php shell_exec 添加不需要的换行符

为什么php的shell_exec命令会在输出中添加不需要的换行符(\r\n),我该如何防止这种情况发生?测试.php:运行phptest.php结果:string(5)"test" 最佳答案 echo命令添加换行符,以便您的示例按预期工作。如果你想删除它,只需使用trim:var_dump(trim(shell_exec('echo"test"')));这将输出:string(5)"test" 关于phpshell_exec添加不需要的换行符,我们在StackOverflow上找到一个

php - bindParam()、bindValue()和execute(array())有什么区别和优势

prepare('INSERTINTOtable(uname,age)VALUES(:uname,:age)');$stmt->execute(array(':uname'=>$uname,':age'=>$age));$stmt=$db->prepare('INSERTINTOtable(uname,age)VALUES(?,?)');$stmt->execute(array($uname,$age));$stmt=$db->prepare('INSERTINTOtable(uname,age)VALUES(:uname,:age)');$stmt->bindValue(':unam

php - "Maximum execution time of 60 seconds is exceeded"当我重写 toArray() 函数时

我需要覆盖函数toArray()来检查用户是否有适当的权限来获取特定的列,所以我创建了这个函数:publicfunctiontoArray($options=0){if(!auth()->user()->hasPermissionTo('users.show.email')){$this->hidden[]='email';}//etc...returnparent::toJson($options);}但是当我在Controller中使用User::Get()来获取所有用户的列表时,我没有得到任何结果,但是60秒后我得到:[2019-04-0623:18:33]local.ERROR

解决 bin/go: cannot execute binary file 问题

问题记录我是在linux64位系统安装1.19.7版本出现的问题cd/usr/local/src#安装gogo1.19.7wgethttps://golang.google.cn/dl/go1.19.7.linux-arm64.tar.gz#解压到指定目录tar-C/usr/local/go1.19.7-xzvfgo1.19.7.linux-arm64.tar.gz修改全局执行命令vim~/.bashrc#增加一行go全局执行pathexportPATH=$PATH:/usr/local/go1.19.7/go/bin#保存后重新引入文件(不会生效重新打开一个新的命令号窗口就会生效)sourc

php - 如何在 php 中操作 shell 输出

我正在尝试编写执行一些shell功能(如报告)的php脚本。所以我从磁盘使用报告开始我想要以下格式drivepath------------total-size--------free-space没有别的我的脚本是$output=shell_exec('df-h-T');echo"$output";它的输出如下所示FilesystemTypeSizeUsedAvailUse%Mountedon/dev/sda6ext392G6.6G81G8%/nonedevtmpfs3.9G216K3.9G1%/devnonetmpfs4.0G176K4.0G1%/dev/shmnonetmpfs4.

php shell_exec() 输出得到一个文本文件

我正在尝试在我的Centos计算机上运行rate-c192.168.122.0/24命令,并使用shell_exec('rate-c192.168.122.0/24')命令;仍然没有运气!! 最佳答案 如果你不需要PHP,你可以在shell中运行它:rate-c192.168.122.0/24>file.txt如果你必须从PHP运行它:shell_exec('rate-c192.168.122.0/24>file.txt');“>”字符将命令的输出重定向到文件。 关于phpshell_e

php - zend 框架 : how to prepare and execute WHERE IN clause?

我想准备一个在循环内使用的语句。当我尝试执行该语句时,我在日志中看到一条错误消息,提示“参数编号无效:未绑定(bind)任何参数”。我的代码有什么问题?$itemSelectSql="SELECT*FROM`tblItems`WHERE`itemID`IN(?)";$itemSelectStmt=newZend_Db_Statement_Mysqli($this->db_ro,$itemSelectSql);while(){...$itemIds=array();//populate$itemIdsarray...$itemSelectStmt->execute(array($item

PHP/Linux shell 文本颜色

我想知道是否有一种方法可以对来自php标准输出的文本进行“着色”...(在ubuntu上)基本上我已经制作了一个报废脚本,但我想让它看起来更好,对不同的东西使用不同的颜色。http://cfgfactory.com/images/i/1de3b_colorz.png 最佳答案 您可以使用Jm_Console包裹。这是我自己写的图书馆。特点:它支持控制台颜色、控制台文本装饰,并具有光标定位或行/屏幕删除(清晰)等附加功能。您可以使用pearinstaller安装它或composer或者只是downloadthesources它将在所有

java - 通过 exec 或 shell_exec 执行 java 会出错

我在服务器(linux)上安装了jdk1.7.0_07。~/bin文件的文件权限是可执行的(755)。但是,当我尝试执行时,$output=exec("/usr/java/jdk1.7.0_07/bin/java-version2>&1");echo$output;它给出了权限被拒绝的错误,我试过了,$output=exec("java-version2>&1");echo$output;这给出了找不到命令的错误。在检查我的环境变量时。我已成功添加JAVA_HOME=/usr/java/jdk1.7.0_07和PATH=/usr/java/jdk1.7.0_07/bin但是,当我运行上