エラーメッセージをよく読んでください。
Warning: file_put_contents(/Applications/XAMPP/xamppfiles/htdocs/cake3app/logs/error.log) [function.file-put-contents]: failed to open stream: Permission denied in /Applications/XAMPP/xamppfiles/htdocs/cake3app/vendor/cakephp/cakephp/src/Log/Engine/FileLog.php on line 129
failed open stream になったファイルは、
** /Application/XAMPP/xamppfiles/htdocs/cake3app/logs/error.log **
です。
ここに対して書き込もうとしているのが /Applications/XAMPP/xamppfiles/htdocs/cake3app/vendor/cakephp/cakephp/src/Log/Engine/FileLog.php のソースコードなので、このソースコードのパーミッションを変更しても何の意味もありません。
この場合色々可能性があって、
- /Application/XAMPP/xamppfiles/htdocs/cake3app/logs のグループが、Apache の動作するグループではないため、グループで書き込みできない
- /Application/XAMPP/xamppfiles/htdocs/cake3app/logs に、グループの書き込み権限がない
- /Application/XAMPP/xamppfiles/htdocs/cake3app/logs/error.log が存在しているが、所有者が Apache ではない
- /Application/XAMPP/xamppfiles/htdocs/cake3app/logs/error.log が存在しているが、グループが Apache でない
- /Application/XAMPP/xamppfiles/htdocs/cake3app/logs/error.log が存在していてグループが Apache だが、グループの書き込み権限がない
一度内蔵サーバで動かしたと言うことは、その時点で logs/error.log が作られていて、所有者とグループが内蔵サーバになっているはずです。そこに Apache で動かし直すと、所有者もグループも異なるので書き込みできなくなります。
other にも書き込み権限を与える(logs に o+rwx、logs/error.log に o+rw)手もありますが、誰でも書き込めてしまうのはあまりよろしくないですね。
すべてチェックしてみてください。