问题标签 [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 投票
9 回答
113885 浏览

php - 使用 PHP ping IP 地址并回显结果

我有以下功能,到目前为止我还没有工作。我想 ping 一个 IP 地址,然后回显 IP 是否存在。

当我使用示例调用此函数时:

回声结果总是“死的”——无论如何。

有人可以帮我解决我哪里出错了吗?和/或是否有更好的方法可以达到相同的结果?

非常感谢。

更新:已修改代码以包含双引号,但仍然得到相同(不正确)的结果。

0 投票
2 回答
973 浏览

php - 内核 IP 路由表的 PHP 接口

我正在尝试为 IP 路由表实现 CRUD 接口,但我一直坚持使用 PHP 执行 unix 命令。我尝试使用 shell_exec 命令回显路由命令的输出,但输出为空。

我还尝试了其他几种组合,例如:

那么,我应该如何从 PHP 中执行 route 命令呢?

谢谢!

0 投票
1 回答
110 浏览

php - 更改目录不会保留在 apache 调用的 php 脚本中

我正在尝试构建一个在我的服务器上进行一些更改的脚本,我可以通过访问网页来调用它。

但是,我在 apache 用户的权限方面遇到了许多困难,他们试图在我的 php 脚本中运行 shell 命令。根据您的服务器,用户可能是 wwwrun 或 wwwdata。

例如,我想将目录更改为../subdomains/$url/httpdocs/,但如果我运行后续pwd,我还没有更改目录。我可以列出其他目录,但文件夹的权限使我无法进行大部分更改。

不过,我不能只是手动进入服务器并 chmod 文件夹,因为文件夹应该是在我进入进行其他更改之前由系统自动生成的。

起初,我尝试编辑 /etc/sudoers,它适用于我机器上我实际上知道其位置的可执行文件。但是,尽管我进行了所有搜索,但我找不到内置可执行文件(如 cd)的 BaSH 的位置。但是,我觉得这是一个红鲱鱼。将这些功能添加到我的 sudoers 文件中可能对安全性不利。

也许 apache suEXEC 是要走的路。但是我在服务器管理旅行方面不是很先进,而且我还没有找到适合我技能水平的人安装和设置它的适当指南。

我还尝试编写一个 shell 脚本,我可以从第一个 php 脚本调用它,但我正在努力让它工作。我会坚持下去,但我觉得我可以而且应该能够让原始文件正常工作。

对不起,文字墙。谢谢你的帮助。

0 投票
5 回答
10060 浏览

php - php shell_exec 实时更新

我有这个我想通过 php 执行的 shell 程序。问题是它可能需要很长时间,因此我需要它对用户的浏览器进行实时更新。

我读到我可能需要使用 popen() 来做到这一点,但我有点(好吧,我真的是:P)一个 PHP 菜鸟,不知道我是如何做到的。

将不胜感激任何帮助!

0 投票
1 回答
536 浏览

php - 与 PHP 中的 shell_exec() 并发

shell_exec()我有一个使用PHP运行 FontForge shell 命令的 Web 应用程序。我担心潜在的并发问题。有没有办法shell_exec()为每个用户打开一个唯一的实例?

其中一个命令允许用户将字体从一种文件格式转换为另一种文件格式:

我担心如果 USER A 打开 FONT A 并且 USER B 立即打开 FONT B(在调用 USER A 的 Generate() 命令之前),那么 USER A 会错误地接收 FONT B,因为 FONT B 当前是“打开的”字体。

0 投票
1 回答
490 浏览

linux - 当我收到错误“找不到命令”时,如何在 PHP 中使用 shell_exec() 执行 Linux 实用程序?

我已经安装了一个 linux 实用程序(optipng)。

从命令行调用时它工作正常,如下所示:$ optipng image_name.jpg

如果我尝试像这样在 PHP 中执行它shell_exec( 'optipng image_name.jpg' );...我得到错误optipng command not found

当我sudo: optipng: command not found尝试从命令行使用sudo.

当我安装这个实用程序时,我使用了configuremake.

我该怎么做才能让这个工作shell_exec()

0 投票
1 回答
282 浏览

linux - 检查通过 Cron 运行的 shell 脚本中的上一步

--- 文件 makebackup.sh

--- 文件上传.sh

为什么这不起作用,我不想使用睡眠我需要知道最后一个 tar 何时结束并执行文件 upload.sh。相反,它总是在最后一个 tar 文件启动后立即执行。

&& 即使我删除 sleep 60 也不做任何事情

0 投票
1 回答
13456 浏览

php - PHP shell_exec,执行-rwxrwxrwx shell脚本的权限被拒绝

我目前在运行 Apache 网络服务器的远程 CentOS 5.6 系统上通过 ssh。我需要使用 popplerpdftohtml二进制文件,不幸的是,该二进制文件当前未安装在该机器上。所以我下载了 poppler 包并将其构建在我的用户文件夹下。由于我不是系统管理员,所以我没有这样做

我有我所有的编译文件

我需要通过php执行的文件shell_exec()

如果我通过我的 ssh bash 执行它,我会得到正确的输出。相反,如果我将此行放在 php 脚本上:

我得到以下输出:

我尝试将文件权限设置为 777,目前是 -rwxrwxrwx。我还注意到shell_exec("whoami");在“apache”中使用结果。如果文件权限是-rwxrwxrwx,apache不应该能够执行脚本吗?

我也知道通过安装 popplermake install可以解决问题,但由于这是出于测试目的,我想避免在我的个人文件夹之外“污染”系统,直到测试完成。

感谢任何会提供帮助的人!

0 投票
2 回答
1102 浏览

php - 运行时打印出 shell_exec

我在本地创建了一个在命令行中运行 java 应用程序的小型 php 脚本。这个 java 应用程序持续运行并且永远不会完成。在运行时,它会输出命令行文本。这是代码:

我的问题是永远不会打印输出,因为应用程序永远不会停止运行。有没有办法让 php 打印出应用程序运行时返回的每一行?希望我在这里有意义(如果我不是,请告诉我)。

0 投票
1 回答
1078 浏览

php - 从 PHP 运行 Linux 命令

我有一点独特的情况。我正在尝试从名为 Diascope 的 PHP 脚本运行视频编码程序,该脚本依赖于 ImageMagick 提供的“转换”命令。我有一个 bash 脚本,它执行一个非常简单的转换,然后运行名为 Diascope 的应用程序。这是转换代码,以下确实有效,它创建了新文件

没有显示错误,但是我像这样运行 Diascope

我可以看到 Diascope 加载属性,因为它打印“Diascope 0.2.1”:

diascope 0.2.1 (ms 2006-2010) 幻灯片生成器 有关文档和更新,请参见 http://diascope.sf.net

错误:未找到可执行程序:转换请参阅发行说明中对 diascope 的要求。

当我运行shell_exec("whoami");它时,它会打印“nobody”

那么为什么我可以自己运行转换,但“diascope”进程似乎无法使用它?我已经尝试进入/usr/local/bin/convert并将其更改为 777,但它似乎没有任何效果,我还能在这里尝试什么?

更新:我可能应该补充一点,当我尝试diascope -clean audio.txt在终端上以 root 身份运行时,它会创建应有的 audio.flv 文件,而且我似乎无法sudo su nobody返回This account is currently not available.