PHP exec () функция - PullRequest
       6

PHP exec () функция

0 голосов
/ 31 октября 2009

Я разработал программу для Windows XP и использовал exec для запуска файла «.bat», и он работал нормально. Я скопировал точную программу на Windows 2003, и файл bat не запустился. Я использовал echo перед функцией exec, и она, кажется, работала нормально, я имею в виду, что echoed:

D: \ xampp \ htdocs \ x> RunDLL32.EXE printui.dll, PrintUIEntry / y / n "HP LaserJet P2015 Series PS"

но это ничего не сделало. Я запустил файл летучей мыши один, и он работал нормально. Просто не работает с exec в Windows 2003. есть идеи?

Ответы [ 2 ]

1 голос
/ 31 октября 2009

Если вы используете IIS, для выполнения приложения учетной записи гостя в Интернете требуются права на CMD.exe. Поскольку каждое выполнение оболочки запускается как CMD.exe -c <your command>.

Затем убедитесь, что простой echo system("dir"); работает. Это должно вернуть список каталогов текущей папки.

Вероятно, вам придется предоставить учетной записи гостя Интернета права на выполнение командного файла и любого исполняемого файла, который он выполняет (в данном случае rundll32.exe).

1 голос
/ 31 октября 2009

На этом сервере включен безопасный режим? Если так, то вы не сможете выполнять такие программы. Вам нужно либо отключить безопасный режим, либо добавить этот каталог в safe_mode_exec_dir в PHP.ini

Из руководства

Примечание. Когда включен безопасный режим, вы можете запускать файлы только в пределах safe_mode_exec_dir. По практическим соображениям в настоящее время запрещено иметь .. компоненты в пути к исполняемому файлу.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...