After further suffering, I've discovered this was due to the source tree
being used to build two PHPs.  I'm not sure the exact cause, but I
removed the entire php-5.2.9/ tree and re-extracted the tarball.  My new
PHP correctly points at /usr/local/.

Maybe this will help someone else in the same position.

- Kyle

-----Original Message-----
From: kyle.smith [] 
Sent: Wednesday, March 25, 2009 10:56 AM
Subject: [PHP] Multiple PHP's and php.ini's - Linux 5.2.9/5.2.6

I've been wrestling with this issue for a few days, I'm hoping someone
can help.

The issue we had is that we have a system httpd running a custom
php-5.2.9 which is compiled in /opt/php/.  The php.ini for this
installation linked to and ioncube accelerator Zend module.  The same
apache also hosted some development work, and the developers want to use
Zend Debugger, which cannot be used at the same time as ioncube.
Ioncube is needed for a key application.

So I build a new httpd, and a I built a new php-5.2.9 in
/usr/local/gforge/php-5.2.9, pointing at the new Apache.

After this was all done I noticed (in phpinfo) that it said something
like "configuration file path = /usr/local/gforge/php-5.2.9/lib/,
configuration file loaded = /opt/php/lib/php.ini".  I shrugged it off,
added a PHPIni apache directive and called it a night.

Come to find out that this application (GForge) uses some php-based
scripts linked in with their CVS.  I don't know that gritty details.

Anyway, it uses the system php, which of course links to php.ini in
/opt/php/lib.php.  I figured it would be a simple task to symlink the
system php to this new build of php and it would reference the correct
php.ini.  Here's where the confusion sets in.

[r...@dev2 php-5.2.9]# /usr/local/gforge/php-5.2.9/bin/php -i|grep
php.ini Configuration File (php.ini) Path =>
/usr/local/gforge/php-5.2.9/lib/ Loaded Configuration File =>

The path explicitly says "/usr/local/...", yet it loads the
"/opt/php/lib/php.ini" file.  However, if I set:

[r...@dev2 php-5.2.9]# /usr/local/gforge/php-5.2.9/bin/php -c
/usr/local/gforge/php-5.2.9/lib/ -i|grep php.ini Configuration File
(php.ini) Path => /usr/local/gforge/php-5.2.9/lib/ Loaded Configuration
File => /usr/local/gforge/php-5.2.9/lib/php.ini

Bingo!  Great news.  Sort of...  I don't want to have to modify every
CVS script to add a -c <path> option to the php request.  Why should I
have to?  That should be the first place it looks, right?

I recompiled php with
--with-config-file-path=/usr/local/gforge/php-5.2.9/lib/.  Same results.

I compiled php 5.2.6 with the same options.  Same results.

Am I missing something?

Any help is greatly appreciated!

Thank you,
Kyle Smith

PHP General Mailing List ( To unsubscribe, visit:

PHP General Mailing List (
To unsubscribe, visit:

Reply via email to