2009-10-31 3 views
0

Я разработал программу на windows xp, и я использовал exec для запуска файла «.bat», и он отлично работал. Я скопировал точную программу в Windows 2003, и файл bat не запускался. я использовал эхо до ехес функции и, казалось, отлично работает, я имею в виду, что повторил:PHP exec() function

D: \ XAMPP \ HTDOCS \ х> rundll32.exe printui.dll, PrintUIEntry/у/п «HP LaserJet P2015 Series PS "

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

ответ

1

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

С ручной

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

+0

Thanx для вашего ответа, у меня нет доступа к этому компьютеру, но я проверю безопасный режим как можно скорее. Если безопасный режим включен, не должен ли я давать предупреждение или что-то для вызова exec? – AliBZ

+0

, если у вас есть правильный уровень ошибки –

+0

Я проверил файл php.ini, и safe_mode отключен. disable_functions пуст. – AliBZ

1

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

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

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

+0

Можно ли проверить это дистанционно с другого компьютера? Сейчас у меня нет доступа к компьютеру. – AliBZ

+0

Да, чтобы убедиться, что у вас есть права выполнения на 'cmd.exe' check' echo system ("dir"); '. Если это работает, убедитесь, что выполнение командного файла с использованием только 'dir' в нем работает. Оттуда вы можете утверждать, что проблема 'rundll32.exe' является проблемой. –

+0

У меня проблема с функцией php exec. Вы уверены, что это связано с exec? – AliBZ