标签: shell-exec

如何让shell_exec在IIS 6.0上运行

问题

我有一个PHP脚本,用于shell_exec运行pdf到文本转换器。为了简化该问题,我创建了一个简短的脚本,该脚本shell_exec仅用于回显dir命令的输出。

<?php
$cmd = 'C:\\WINDOWS\\system32\\cmd.exe /c ';
echo shell_exec($cmd.' dir');
?>
Run Code Online (Sandbox Code Playgroud)

当我在Apache服务器上运行此程序时,一切都会按预期进行。当我切换到IIS时,好像该行被完全跳过了:没有错误,没有输出,没有日志,什么也没有。

不幸的是,我需要使用IIS,因为我将根据活动目录对用户进行身份验证。


到目前为止,这是我尝试过的方法:

  • 通过cmd.exe /c发出命令而不是直接发出命令
  • 授予对“ C:\ WINDOWS \ system32 \ cmd.exe”的Read & Execute权限SERVICE
  • 授予对“ C:\ WINDOWS \ system32 \ cmd.exe”的Read & Execute权限NETWORK SERVICE
  • 授予对“ C:\ WINDOWS \ system32 \ cmd.exe”的Read & Execute权限IUSR_MACHINENAME
  • 授予对“ C:\ WINDOWS \ system32 \ cmd.exe”的Read & Execute权限Everyone(不用担心,它不会长期保持这种状态,哈哈)
  • 将PHP作为ASAPI模块运行
    • 这是我的标准配置
  • 将PHP作为CGI扩展运行
    • 这不起作用,我得到一个错误: CGI …

php windows iis shell-exec

5
推荐指数
1
解决办法
8223
查看次数

php system()shell_exec()挂起浏览器

可能重复:
PHP中的异步shell exec

我需要在后台运行一个java程序.

process.php包含

shell_exec("php php_cli.php")

php_cli.php包含

shell_exec("java -jar BiForce.jar settings.ini > log.txt");
Run Code Online (Sandbox Code Playgroud)

我使用ajax异步调用process.php

当我单击调用ajax函数的网页中的链接(用于运行process.php)时,webage显示"正在加载".当我同时点击其他链接时它没有响应.

java程序大约需要24小时才能完成执行,因此用户不会等到执行结束.

问题是浏览器继续加载,并且在单击链接时不会转到其他页面.

我也尝试过system(),但同样的问题....

非常感谢帮助.

php shell-exec

5
推荐指数
2
解决办法
7284
查看次数

PHP shell_exec ssh连接

我知道这个问题之前已经有很多不同的问题,但是我仍然在摸不着为什么我不能让这个问题起作用.

首先,我有两个SLES服务器设置,它们是服务器A和服务器B,它们都运行在一个小型专用网络上,只能由一个专门的团队访问.

服务器A配置为运行Apache,PHP,MYSQL和ssh的Web服务器,所有这些服务器都运行无问题.

服务器B用于运行安装和激活ssh的内侧任务.

我已经在服务器A上创建了我的rsa密钥,并将其安装在服务器B上,当在命令行运行时,我会立即登录,不需要输入密码.我在服务器A上为root和nobody帐户重复了这个过程.

我已将这个PHP页面添加到服务器A,如下所示:

<?php
shell_exec('ssh root@192.162.0.5 ./StartTest.sh');

header("Location: archive.php?page=home"); 
?>
Run Code Online (Sandbox Code Playgroud)

但是当我运行它时它不会创建我的文件夹.如果我从命令行运行它,它适用于两者(我想两者,我不记得我是否尝试过现在cli上的nobody帐户)root&nobody帐户.我甚至将无人帐户添加到根组,但仍然没有快乐.

我在这里错过了一些东西吗?我想做的就是通过php&ssh从服务器A连接到服务器B来执行一个命令并重定向到网站上的另一个页面.

由于我的对乙酰氨基酚库存不足,所以任何帮助都会受到赞赏.

php linux ssh shell-exec

5
推荐指数
1
解决办法
1万
查看次数

浏览器挂起执行运行Powershell的PHP

我正在尝试运行一个运行PowerShell脚本的简单PHP,如果我使用此代码,我会在命令窗口中获得结果,但我在浏览器中得到一个空数组:

<?php 
exec("powershell C:\\Inetpub\\wwwroot\\my_shell.ps1 < NUL", $output);

echo "<pre>";
print_r($output);
echo "</pre>";
?>
Run Code Online (Sandbox Code Playgroud)

我相信NUL将丢弃输出,但是它在浏览器中发现了它[这个Fourm] [1]

如果我使用这个代码,没有NUL,我会在命令窗口中得到结果,但如果我在浏览器中运行脚本将继续加载,它永远不会给我任何结果:

exec("powershell C:\\Inetpub\\wwwroot\\emsrDev\\manual_shell.ps1", $output);
Run Code Online (Sandbox Code Playgroud)

如果我这样做,结果相同:

$output = shell_exec("powershell C:\\Inetpub\\wwwroot\\emsrDev\\manual_shell.ps1");
Run Code Online (Sandbox Code Playgroud)

如果我独立运行powershell脚本运行正常:

$cmd = "cmd.exe";
&$cmd "/C echo update tasks set last='manual' where id='8'; | sqlplus vvv/www@xxx";
Run Code Online (Sandbox Code Playgroud)

所以我需要在浏览器中执行此操作并获取输出.

php powershell exec shell-exec

5
推荐指数
1
解决办法
874
查看次数

php libreoffice shell_exec不能正常工作

我试图转换.docx文件,以.html使用php shell_exec于CentOS 6.5

我的PHP代码:

 $command = "libreoffice --headless -convert-to html resume.docx 2>&1";
 $result = shell_exec($command);
 echo $result;
Run Code Online (Sandbox Code Playgroud)

当我跑步时index.php,http://localhost/converter/它给了我:

javaldx:找不到Java运行时环境!警告:无法从javaldx读取路径/usr/lib64/libreoffice/program/soffice.bin X11错误:无法打开显示:设置DISPLAY环境变量,使用-display选项或检查X-Server的权限(参见"man" X"resp."man xhost"了解详情)`

在终端,它完美地工作:

cd /var/www/html/converter/

libreoffice --healdess -convert-to html resume.docx

在这里它创造resume.html了我的/var/www/html/converter/.

php linux centos shell-exec libreoffice

5
推荐指数
3
解决办法
6444
查看次数

PHP同时运行多个脚本

我有一个像这样的对象服务器的数组:

Array
(
    [0](
                (
                    [id] => 1
                    [version] => 1
                    [server_addr] => 192.168.5.210
                    [server_name] => server1
                )
        )
    [1](
                (
                    [id] => 2
                    [server_addr] => 192.168.5.211
                    [server_name] => server2
                )
        )
)
Run Code Online (Sandbox Code Playgroud)

通过运行下面的代码,我能够获得所需的输出

foreach ($model as $server) {
        $cpu_usage = shell_exec('sudo path/to/total_cpu_usage.sh '.$server->server_addr);
        $memory_usage = shell_exec('sudo path/to/total_memory_usage.sh '.$server->server_addr);
        $disk_space = shell_exec('sudo path/to/disk_space.sh '.$server->server_addr);
        $inode_space = shell_exec('sudo path/to/inode_space.sh '.$server->server_addr);
        $network = shell_exec('sudo path/to/network.sh '.$server->server_addr);
        exec('sudo path/to/process.sh '.$server->server_addr, $processString);
        $processArray = array();
        foreach ($processString as $i) {
          $row = explode(" ", …
Run Code Online (Sandbox Code Playgroud)

php shell foreach exec shell-exec

5
推荐指数
1
解决办法
2858
查看次数

如何在安装程序退出时执行多个启动条件

我已经设法让WIX在退出时启动我的应用程序,但不知道如何使用WixShellExecTarget属性安排两个自定义操作.

一个CA是启动应用程序,另一个是基于来自另一个CA的URL的网页.如果选中相应的复选框,则会启动这些选项.

<!-- Custom action for executing app -->
    <Property Id="WixShellExecTarget" Value="[#Application.exe]" />
    <CustomAction Id="LaunchApplication" BinaryKey="WixCA" DllEntry="WixShellExec" Impersonate="yes" />

    <!-- Custom action for executing Webbrowser -->

    <Property Id="???" Value="[CONFIGWIZARDURL]" />
    <CustomAction Id="LaunchConfigWizard" BinaryKey="WixCA" DllEntry="WixShellExec" Impersonate="yes" />
Run Code Online (Sandbox Code Playgroud)

任何帮助你可以让我让这个工作将不胜感激.

干杯,杰米

[编辑]我已经尝试了下面的建议,但我没有为第二个动作设置合适的值.它没有像我建议的那样去www.google.com:

<Publish Dialog="MyExitDialog" Control="Finish" Event="DoAction" Value="SetExec1"><![CDATA[NOT Installed]]></Publish>
        <Publish Dialog="MyExitDialog" Control="Finish" Event="DoAction" Value="DoExec"><![CDATA[LAUNCHCAPTURE = "1" AND NOT Installed]]></Publish>

        <Publish Dialog="MyExitDialog" Control="Finish" Event="DoAction" Value="SetExec2"><![CDATA[NOT Installed]]></Publish>
        <Publish Dialog="MyExitDialog" Control="Finish" Event="DoAction" Value="DoExec"><![CDATA[LAUNCHCONFIGWIZARD = "1" AND NOT Installed]]></Publish>



Property(S): LAUNCHCONFIGWIZARD = 1
MSI (s) (5C:DC) …
Run Code Online (Sandbox Code Playgroud)

installer custom-action wix shell-exec wix3.5

4
推荐指数
1
解决办法
3418
查看次数

PHP检测shell_exec()命令是否失败

我正在PHP的shell_exec()中运行ffmpeg命令来转换列表中的多个视频.无论如何都要检测视频转换时是否发生了错误(或至少验证它是否完全完成了转换)?

如果发生错误,我不想停止转换其他视频,只是记录错误的能力.

<?php
    shell_exec('ffmpeg -i downloads/flv/file1.flv -vcodec libvpx -acodec libvorbis downloads/webm/file1.webm');

    if(error) {
     //run a command here to report the error (ie. MySQL or email)
    }
?>
Run Code Online (Sandbox Code Playgroud)

php ffmpeg shell-exec

4
推荐指数
1
解决办法
8297
查看次数

shell脚本中的##是什么意思

在编译脚本时,我遇到了命令do f=${file##*/}.我很想知道##这一行意味着什么.感谢您提前回复

bash shell-exec

4
推荐指数
1
解决办法
4184
查看次数

从 php exec() 运行 vcgencmd

当我vcgencmd measure_temp在终端中运行时,它会给出 CPU 的温度读数。

但是当我在 php 中使用相同的命令时,exec('vcgencmd measure_temp 2>&1')它在浏览器中出现以下错误:

VCHI 初始化失败

如何vcgencmd从php执行命令?

php shell-exec

4
推荐指数
1
解决办法
2390
查看次数