Я пытаюсь выполнить пакетный файл с использованием PHP в Windows Server 2008.
Файл называется NEWDNS.bat
и его цель – записать новую запись в файл зоны DNS, хранящийся в c:\windows\system32\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 (Double Click), и он делает то, что он должен делать.
Безопасный режим PHP выключен, на случай, если вам интересно, и я попытался переместить пакетный файл в c: \ windows \ system32, и это тоже не сработало.
Любая помощь / советы / указатели, которые вы можете дать, очень ценится – я нахожусь на своем пути! Большое спасибо.