问题标签 [shell-exec]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
412 浏览

php - 从 php 脚本启动 bash 脚本

我正在尝试使用 shell_exec 运行 bash 脚本,但它似乎不起作用。(似乎什么也没发生)我正在使用 nginx 和最新的 php5-cgi。下面是 php 文件的样子:

这就是 bash 脚本的样子:

phpscript 中没有错误,文件创建得很好,但 $startserver 似乎没有被执行并且 $pid 为空。我错过了 php 文件中的某些内容还是需要更改用户的权限?谢谢你的帮助。

0 投票
1 回答
2381 浏览

php - shell_exec 返回 NULL

当我运行代码时

它返回 NULL,但是当我ping -c 4 127.0.0.1在 ssh 中运行相同的命令 () 时,它完美地返回......

是的,脚本可以运行 shell_exec,我试过shell_exec('ls')了,它返回正确,并shell_exec('ping -V')返回ping utility, iputils-ss020927所以 ping 被调用,但我没有得到任何响应......

有什么帮助吗?谢谢!

0 投票
2 回答
545 浏览

php - PHP密码错误

我正在这样做:

但是当我执行这个时,我得到这个错误:

为什么?我该如何解决这个问题以及如何隐藏 passwd 的输出?

0 投票
2 回答
2326 浏览

php - Git使用私钥从带有shell_exec的PHP文件中获取

我已经构建了一个对特定文件夹执行 git fetch 的 php 脚本:

确切的命令是:

当然,如果我在命令行上运行它,它会完美运行。

现在,当我使用 shell_exec 运行它时,我收到以下错误:

查看它尝试连接的服务器,确切的错误是:

4 月 8 日 10:52:17 myserver sshd [26230]:来自 192.15.136.253 端口 32878 ssh2 的 git 密码失败

那么好吧。我猜这个 shell_exec 无法读取我设置的 ~/.ssh/id_rsa 密钥。所以我给那个文件 777 权限,我得到了这个错误。

@@@@@ @ 警告:未受保护的私钥文件!@ @@@ '/home/bathan/.ssh/id_rsa' 的权限 0777 太开放了。建议其他人不能访问您的私钥文件。此私钥将被忽略。权限错误:忽略键:/home/bathan/.ssh/id_rsa 权限被拒绝,请重试。权限被拒绝,请重试。权限被拒绝(公钥、gssapi-with-mic、密码)。致命:远端意外挂断

所以我猜 git 能够读取密钥文件。如果我把它放回正确的权限,我会再次回到第一个错误。

注意:我的 apache 服务器设置为使用我的同一个用户(bathan)运行,这是一个 ubuntu 盒子。

这是 ssh -v 响应

有任何想法吗?

0 投票
6 回答
40120 浏览

php - shell_exec 中的 PHP sudo

我想用 shell_exec 以 root 身份执行命令。现在我知道这很危险,但请相信我,您需要使用 MOD_AUTH 登录并拥有访问此页面的正确权限。它是安全的。我怎样才能完成这项工作?

0 投票
2 回答
2210 浏览

php - php shell_exec 触摸重定向和adduser

我试图最终使用 php 的shell_exec功能来创建新的 Linux 用户。但是,即使在调试时我也遇到了问题。这是我的代码

这些try-catch语句没有做任何事情,让我相信 shell 错误不会作为 PHP 错误传播(Python 也是这种方式)。该行$output=shell_exec("pwd")返回正确的目录。但是,该行shell_exec("touch test.txt")无法创建文件 test.txt(即使我给出了完整路径“/home/user/.../test.txt”)。

不用说,添加用户的实际代码也不起作用。

编辑我设法修复了一些代码。该touch test.txt错误是由于权限不足造成的。Apache 使用用户 www-data 登录,我只是为该用户创建了一个主文件夹,并确保触摸该主文件夹中的文件。

然而,根据 Christian 的要求,添加三个调试语句现在引起了问题。

编辑经过进一步检查,它与以用户 www-data 登录时无法以 root 身份登录有关。ssh -v返回debug1: read_passphrase: can't open /dev/tty: No such device or address。我的猜测是 ssh 是在询问通用的“您是否愿意将 xxx 永久添加到 known_hosts”,但我无法回应。无论如何手动将用户添加到已知主机列表?

0 投票
4 回答
13054 浏览

php - php shell_exec() 输出以获取文本文件

我正在尝试rate -c 192.168.122.0/24在我的 Centos 计算机上运行命令,并使用命令将该命令的输出写入文本文件shell_exec('rate -c 192.168.122.0/24');还是没有运气!!

0 投票
2 回答
1058 浏览

php - 如何在 php 中以 linux root 用户身份连接

可能重复:
如何以 root 身份运行 PHP exec()?

大家好,

我需要在 php 中连接 linux root 用户。

我将我的文件托管在 var/www/html/connect.php

我需要执行一个 shell_exec 脚本。它说“只有root用户可以登录”。

我该如何改变呢?或请帮我解决问题。

0 投票
1 回答
1194 浏览

php - 限制 shell_exec 的执行时间并获取生成的任何输出

我试图将 PHP 中 shell_exec 的最大执行时间限制为 20 秒,并获取在此期间生成的任何输出。如果 shell_exec 在不到 20 秒内完成,则脚本应直接继续。

更具体地说,我正在开发一个函数,该函数可以遍历 subversion 存储库的大量修订。对于每个修订版,它都会获取 svn diff 并计算添加的行数。问题是如果在修订中提交了非常大的文件,脚本将挂起。因此,我试图限制每个 svn diff 命令的执行时间。

popen() 与 sleep() 组合不是一个选项,因为它似乎使脚本在每次迭代中休眠 20 秒,这在 100 次迭代中是不可行的。设置 max_execution_time 也不是一个选项,因为它会返回一个致命错误。

0 投票
3 回答
1026 浏览

php - 使用 PHP 的 shell_exec

我正在尝试使用 PHP shell_exec 在网络上运行apktool(只是一个解包 android 应用程序的工具),但它不起作用。有谁知道这可能是为什么?

这就是这行代码的实际样子:

任何建议都会帮助我完全不知道为什么我运行 php 而没有任何反应。谢谢!