【问题标题】:execute bat throw php script deployed on iis server执行部署在 iis 服务器上的 bat throw php 脚本
【发布时间】:2014-07-01 09:38:15
【问题描述】:

我想从部署在 IIS 服务器中的 php 脚本执行这个 file.bat:

android 1>> log.log 2>> erreur.log

问题是,当我双击文件时它可以工作,但是当我使用这个简单的代码从网络上尝试它时,它却没有

<html>
<head>
</head>
<body>
<p>Hello word !!!!!!!</p>
<a href="<?php exec('file.bat');?>"> click me</a>
</body>
</html>

我在日志文件中收到此错误。

'android.exe' n'est pas reconnu en tant que commande interne
ou externe, un programme ex‚cutable ou un fichier de commandes.

那是依赖角色和权限吗?因为我在 WAMP 上得到了这个日志文件

[8444:7948:0701/101205:ERROR:policy_loader_win.cc(531)] GetAppliedGPOList scope 1: L’opération a réussi.
[8444:7948:0701/101205:ERROR:policy_loader_win.cc(531)] GetAppliedGPOList scope 0: L’opération a réussi.
[8444:7948:0701/102705:ERROR:policy_loader_win.cc(531)] GetAppliedGPOList scope 1: L’opération a réussi.
[8444:7948:0701/102705:ERROR:policy_loader_win.cc(531)] GetAppliedGPOList scope 0: L’opération a réussi.

任何将不胜感激。

【问题讨论】:

    标签: php android iis wamp


    【解决方案1】:

    问题一:href的错误使用

    如果你想通过点击HTML链接来执行一个php脚本scrip.php,那么写下这个锚标签:

    <a href="/path/to/my/script.php">Doit</a>
    

    script.php 中,您编写您的exec('file.bat'); 声明。

    就像您编写代码一样,PHP 将首先执行您的脚本,从脚本中取回结果(由于每个输出都转发到文件,因此该结果为空)并将空结果填充到 href 属性中。因此,请尝试更准确地理解 PHP 中解释了什么、执行了什么以及传递给 Web 浏览器的内容。

    问题 2:几种 PHP 配置

    如果你双击你的file.bat-文件,PHP 基本上是从 CLI(命令行界面)启动的。如果您通过 Web 浏览器单击链接启动它,那么 PHP 可能作为 Apache 模块启动。

    在这两种情况下,PHP 可能有完全不同的配置。

    为了找出正在运行的配置,请创建一个仅包含

    的脚本
    <?php 
       phpinfo();
    ?>
    

    并从 CLI(i.d. Windows 命令外壳)启动此脚本一次,然后在 Web 浏览器中启动一次并比较结果。您将找到有关加载的模块、变量集和使用的配置的许多详细信息。它会告诉你这样的事情:

    ...
    Configuration File (php.ini) Path => /etc
    ...
    Scan this dir for additional .ini files => /Library/Server/Web/Config/php
    ...
    

    这里将解释双击启动和浏览器标签启动的区别。

    尝试了解有关php.ini 的更多信息,例如这里:http://php.net/manual/en/configuration.file.php

    一开始就有不同的配置可能难以处理,但这是有道理的。

    祝你好运:-)

    【讨论】:

    • 您说“如果您双击 file.bat 文件,PHP 基本上是从 CLI(命令行界面)启动的。如果您通过 Web 浏览器单击链接启动它,那么 PHP可能作为 Apache 模块启动。”但是双击我的 file.bat 文件并不意味着 PHP 是从 CLI 启动的。我之所以这么说是因为我认为问题出在用户权限上执行 android
    • 只要确保没有多个php.ini 文件,或者如果有,请具体检查http 的ini 文件允许的内容。但首先,尝试将真实链接写入href 属性:-)
    • 我认为问题出在 iis 可以读取 Path 变量。如果我输入绝对路径,一切都很好。那么如何让 IIS 读取路径变量???
    猜你喜欢
    • 2012-09-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-01-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多