Az ILIAS esete a PHP-FPM-mel

Ha az ILIAS keretrendszered nem képes kurzusok másolására, vagy a SOAP támogatás bekapcsolása után nem hajlandó többé leveleket továbbítani a felhasználók postaládájába, ez a történet Neked szól.

Az esetek nagy részében nem használom a SOAP támogatást, most is csak a kurzusok másolásának szintén ritkán használt művelete miatt lett volna rá szükségem. Bekapcsoltam a SOAP támogatást, kurzust azonban így sem tudtam másolni, de legalább a levelezés is megszűnt működni. A webszerver a Debian Jessie által szállított Apache 2.4.10-es, a PHP-t pedig PHP-FPM-mel használom már nagyon régóta. Természetesen minden, az ILIAS által igényelt PHP kiterjesztések és egyéb csomagok telepítve lettek, illetve minden ajánlott beállítás el lett készítve. Mégsem működött. Bejelentettem hibaként, viszont használható ötletek vagy javítás hónapokig (!) nem jöttek.

Rendben van, virtuális környezetben felépítettem a tesztrendszert, persze ott sem működött. Kipróbáltam több Linux változatot is (Debian és Ubuntu változatokat), az eredmény ugyanaz volt. Végső próbaként beállítottam a PHP-t Apache modulként az FPM helyett és láss csodát: működött a levelezés és a kurzus másolás, ahogyan kell. Visszaállítottam a PHP-FPM-et, ismét nem működött sem a levelezés, sem pedig a kurzus másolás. Hmmm.

Próbaként lecseréltem az Apache webszervert NGINX-re, a PHP-FPM maradt érintetlenül. A levelezés és a kurzus másolás ismét működött. Hát ez egyre szebb...

Több, mint négy hónap szenvedés után kaptam végre egy használhatónak tűnő üzenetet az egyik ILIAS fejlesztőtől, idézem:

For some reasons, php-fpm cannot parse soap request parameters when using the nusoap library. 

Please try the following. Insert the following line in your ilias.ini.php:

file ilias.ini.php

...
[server]
http_path = "...."
absolute_path = "...."
presetting = ""
timezone = "Europe/Berlin"
soap = "internal" <--- add this line in the group [server]

Please let me know if it helps. 
I've tested it this workaround with debian lenny and php-fpm

With 5.2 this workaround will not be required anymore, since we will drop the nusoap library for php 7 support.

Beletettem a kért sort az ilias.ini.php fájlba és láss csodát, működik a levelezés és a kurzusmásolás is, ahogyan kell. A fejlesztő szerint a PHP-FPM a ludas, de ugyanaz a PHP-FPM, amikor NGINX szerverrel használtam, működött rendesen, azonban Apache esetén a fenti két hiba ismét előjött. Sajnos a fenti megoldás a cikk írásának időpontjában nem került publikálásra az ILIAS telepítési leírásban, pedig szerintem nagyon is hasznos lenne. Értem én, hogy az ILIAS 5.2-es változatában a PHP 7 kedvéért kidobják a komplett nusoap library-t, de a korábbi ILIAS változatok még egy ideig velünk maradnak és biztosan mások is bele fognak ütközni ebbe a hibába. De ez már egy másik történet. Mindenesetre az én ILIAS telepítési leírásomat kiegészítettem ezzel a fontos beállítással is.