We are building several applications around one Codeigniter installation (v2.0.3). We began development in a Windows environment (using XAMPP), and deployed our alpha installation to a virtual CentOS 5.6 machine (which works perfectly). As the project progressed, I began to need access to video tools (ffmpeg/mencoder) that are (practically) unavailable on Windows. I have been using a virtual installation of CentOS 5.7 (running in VirtualBox 3.2.8) to develop other applications, so I installed the software on that virtual CentOS. We had added several libraries to the "Codeigniter/system/libraries" folder so that they are available to all of the different applications. On my local virtual CentOS, our core libraries will not load, we receive an error message saying the classes do not exist. The paths exist, and we can readfile their contents, and include_once does not throw an error... they just won't work.
We tracked down the inclusion of the core libraries, and found that our lib was being loaded in "system/core/Loader.php" on line 886 via an "include_once". After much tweaking, we determined that if we changed that "include_once" to an "include", the file was included, and the entire software suite worked exactly as expected (exactly as it does on the other systems).
What... the... heck? Do we need to enable "include_once" somewhere in PHP's config? The path is obviously correct, since the "include" works. I just don't have any desire to go changing the system core of CI if it's not completely necessary.
Any input (or even reasonable speculation) would be appreciated. Cheers.