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.
Answer by the asker:
We have at least determined that this seems to be related to our version of PHP. Our old systems that worked were on PHP 5.3.3. The newer one (that does not work) is on PHP 5.3.4. We pulled back the version to 5.3.3, and suddenly the “include_once”s in CodeIgniter magically started working. How’s about them apples? We’re calling it a PHP bug for now, and we’re going to try to reproduce it for the benefit of all mankind (or at least anyone else who finds this problem).