php exec() – Unable to fork warning windows alatt

Windows (IIS / Apache) alatt futtatott php 5.x alatt, ha exec függvényt próbálunk hívni, könnyen az alábbi hiba (figyelmeztetés) fogadhat minket:

"Warning: system() [function.system]: Unable to fork".

esetleg

"Warning: shell_exec() [function.shell-exec]: Unable to execute"

A probléma okozója az, hogy hiába van a php kódot futtató felhasználónak (általában IUSR_gépnév) jogosultsága a kérdéses állományt végrehajtani, a php exec() függvénye nem közvetlenül azt próbálja futtatni, hanem a cmd.exe-t, aminek paraméterben adja át a futtatni kívánt parancsot.

Így, a működéshez a cmd.exe-re is megfelelő jogosultságot kell adnunk. A cmd.exe elérési útvonala: %windir%\system32\cmd.exe (Általában c:\windows\system32\cmd.exe vagy c:\winnt\system32\cmd.exe)

A fájlon jobb klikk, tulajdonságok (properties)

 

cmd.exe tulajdonságai

cmd.exe tulajdonságai

 

 

Amennyiben az INTERNET GUEST ACCOUNT (IUSR_gépneve) nincs a listában, kattintsunk a hozzáadás(add gombra), és a mezőbe írjuk be az IUSR szöveget, majd nyomjuk meg a Névellenőrzés gombot. (Apache esetén válasszuk azt a felhasználót, amely nevében az apache folyamatok futnak.)

 

Fontos!!! Határozottan ellenjavallott több jogosultságot adni az IUSR felhasználónak, mint amennyi a képen látható

Kedveled? Másnak is ajánlanád? Megosztás:


Leave a Reply

Please insert the signs in the image: