Artykuł ten jest kontynuacją poprzedniego, dotyczącego błędu w aplikacjach CakePHP na serwerach home.pl. Element, który sprawia kłopot na tych serwerach to IdeaCache. Ten i podobne problemy zostały opisane w następujących linkach:
1. http://cakephp.lighthouseapp.com/projects/42648/tickets/817-class-cakelog-not-found
2. http://cakephp.lighthouseapp.com/projects/42648/tickets/923
Aby naprawić ten błąd należy zamienić kawałek kodu w pliku /cake/libs/cake_log.php
z
if (!defined('DISABLE_DEFAULT_ERROR_HANDLING')) { set_error_handler(array('CakeLog', 'handleError')); }
na
if (!defined('DISABLE_DEFAULT_ERROR_HANDLING')) { $cakeLog =& CakeLog::getInstance(); set_error_handler(array(&$cakeLog, 'handleError')); }
Musimy pamiętać o tym, że jest to ingerencja w źródła CakePHP. Przy każdej aktualizacji, będziemy musieli podmieniać wyżej wymieniony fragment kodu. Pomimo tej wady, zdecydowałem się na zastosowanie tego fixa. Jeżeli to nie zadziała, to w wyżej wymienionych linkach są również podane inne sposoby naprawy.
Jedna myśl w temacie “CakePHP: IdeaCache – Internal Server Error 500”