Amennyiben Debian vagy Ubuntu rendszerű linux szerverünkön alapértelmezett (vagy alapértelmezetthez közeli) konfigurációval futtatjuk az Apache2 web szervert, nagy valószínűséggel a apache2-mpm-prefork wokert használjuk libapache2-mod-php5 -tel. Habár ez az alapértelemezett működés, nagy forgalom, illetve nagy, lassan futó scriptek esetében meggondolandó az apache2-mpm-worker használata, mivel a prefok modul memória igénye magas, illetve amiatt, hogy minden kérésrt egyetlen szál szolgál ki, a kiszolgálás sebessége nagymértékben lassulhat.
Nagy terhelésű szervereken ezek alapján mindenképpen érdemes a worker-t telepíteni, de ez felvet egy újabb problémát: a libapache2-mod-php5 csak a prefork-kal kompatibilis, a worker telepítése esetén a debian alapú rendszerek automatikusan eltávolítják azt.
Ebben a leírásban bemutatom, hogy hogyan tudjuk a preforkot workerre cserélni, illetve a libapache2-mod-php5 helyett hogyan tudunk mod_fcgi-t üzembe helyezni.
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)
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ó