Povolení funkce exec v PHP

Autor: administrator <>, Téma: Windows, Vydáno dne: 30. 06. 2009

Pokud používáte pro testování svých stránek na lokále Windows XP a jeho webový server IIS (Internet Information Services) dostanete po užití funkce exec() chybovou hlášku Warning: exec() [function.exec]: Unable to fork...



Příčinou tohoto hlášení jsou nedostatečná práva pro uživatele IIS Anonymous. Spusťte přikazový řádek a zadejte do něho příkaz:

cacls %ComSpec%

Po vykonání dostanete zpět tento výpis.

C:\WINDOWS\system32\cmd.exe JMENOPC\IUSR_JMENOPC:N
BUILTIN\Users:R
BUILTIN\Power Users:R
BUILTIN\Administrators:F
NT AUTHORITY\SYSTEM:F

Z tohoto výpisu je vidět že uživatel IUSR_JMENOPC má nedostatečná práva na spouštění příkazu z windows. Oprava je velmi snadná. Stačí do příkazového řádku napsat tento příkaz:

cacls %COMSPEC% /E /G %COMPUTERNAME%\IUSR_%COMPUTERNAME%:R

Po zaddáte znovu příkaz:

cacls %ComSpec%

Dostanete již tento výpis:

C:\WINDOWS\system32\cmd.exe JMENOPC\IUSR_JMENOPC:(DENY)(special access:)
DELETE
WRITE_DAC
WRITE_OWNER
FILE_WRITE_DATA
FILE_APPEND_DATA
FILE_WRITE_EA
FILE_DELETE_CHILD
FILE_WRITE_ATTRIBUTES
BUILTIN\Users:R
BUILTIN\Power Users:R
BUILTIN\Administrators:F
NT AUTHORITY\SYSTEM:F
JMENOPC\IUSR_JMENOPC:R

Zde jsou již vidět dostatečná práva pro uživatele IUSR_JMENOPC a v PHP bude jiř funkce exec() fungovat správně.