【发布时间】:2013-12-05 13:31:20
【问题描述】:
我正在尝试在 Windows Server 2008 上使用 PHP 执行批处理文件。
该文件名为NEWDNS.bat,其目的是将新条目写入存储在c:\windows\system32\dns 中的DNS 区域文件。区域文件名为motlocal.co.uk。
这里是newdns.bat的内容
@echo off
cd windows\system32\dns\
dnscmd dsvr012345 /recordadd motlocal.co.uk mynewsubdomain A 88.208.200.221
dnscmd dsvr012345 /ZoneReload motlocal.co.uk
newdns.bat 存储在服务器上与调用它的 PHP 页面相同的目录中:-
这里是调用newdns.bat的页面内容(php页面叫做dnscreator.php)
<?php
if(isset($_POST['submit']))
{
echo exec("cmd.exe /c newdns.bat");
echo "Done!";
} else {
?>
<form action="" method="post">
<input type="submit" name="submit" value="DO IT!">
</form>
<?php
}
?>
当我双击 Windows 文件夹中的批处理文件时 - 它会运行并完美执行其命令并在 dns 区域文件中创建新的子域。
但是 - 无论我如何尝试(我已经使用了 2 天了),当我运行 dnscreator.php 时它不会执行。
表单执行并显示消息“完成!”但是newdns.bat中的命令没有执行。我知道批处理文件有效,因为正如我所说 - 我可以从 windows 文件夹(双击)运行它,它会做它应该做的事情。
PHP 安全模式已关闭,以防万一您想知道,我已尝试将批处理文件移动到 c:\windows\system32 中,但这也不起作用。
非常感谢您提供的任何帮助/建议/指点 - 我无能为力!非常感谢。
【问题讨论】:
标签: php windows batch-file exec batch-processing