php.ini read only from /opt/local/var/db/php5

Scott Haneda talklists at newgeo.com
Tue Nov 17 00:26:27 PST 2009


On Nov 16, 2009, at 10:55 PM, Steve Edwards wrote:

> I'm using and Apache and PHP ports, a

What version of Apache, and what version of php are you using?

I am at php5 @5.3.0_1+apache2+macosx

> nd my php.ini is not being read from where it should be.  According  
> to my phpinfo(), it is loading php.ini from /opt/local/etc/php5,

That is where mine is read from.

> yet any changes I make in that file make no effect, and the Loaded  
> Configuration File is set to (none).

I am assuming you restart apache, in some way or another, after you  
make these changes?

> I noticed a while ago that my other config files (APC.ini,  
> imagick,ini, xdebug.ini, memcache.ini) were not read unless they  
> were in /opt/local/var/db/php5,

I have in /opt/local/var/db/php5
curl.ini   gd.ini     imap.ini   mcrypt.ini zlib.ini

For the php5 Portfile for version 5.3.0, if you look at about line  
60'ish
set phpinidir           ${prefix}/etc/${my_name}
set extraphpinidir      ${prefix}/var/db/${my_name}

So it is as intended to have the extras in the /opt/local/var/db/php5  
location.

However, /opt/local/etc/php5 should be where php.ini is read from,  
assuming we are on the same version of php installed by the same  
Portfile.  I see any changes with no issue as long as I reload.

> and that seems to be the case with php.ini.  Once I put a copy in / 
> opt/loca/var/db/php5, any changes I made in that file are shown in  
> phpinfo, and Loaded Configuration File shows /opt/local/var/db/php5/ 
> php.ini.

I think it should work fine in the extraphpinidir, but it would be  
nice to discover why your install is not reading from the normal  
phpinidir.

Can you show the output of `php -i` ?  Specifically, seeing the  
configure options would be helpful...

Mine has:
'--with-config-file-path=/opt/local/etc/php5'
'--with-config-file-scan-dir=/opt/local/var/db/php5'

I wonder what your 'with-config-file-path' is set to.  Even going to  
back 5.2.10, the phpinidir is set to the same, http://trac.macports.org/browser/trunk/dports/lang/php5/Portfile?rev=53529

Some more snips, for which you should be equivalent...
Configuration File (php.ini) Path => /opt/local/etc/php5
Loaded Configuration File => /opt/local/etc/php5/php.ini
Scan this dir for additional .ini files => /opt/local/var/db/php5

Additional .ini files parsed => /opt/local/var/db/php5/curl.ini,
/opt/local/var/db/php5/gd.ini,
/opt/local/var/db/php5/imap.ini,
/opt/local/var/db/php5/mcrypt.ini,
/opt/local/var/db/php5/zlib.ini

It would be good to see the line that says 'Loaded Configuration File'  
when the file is non existent, when it only exists in prefix/etc and  
when it only exists in prefix/var and when it exists in both.

Is your httpd.conf file, assuming Apache 2, have uncommented, at added  
the line:
LoadModule php5_module        modules/libphp5.so

And do you also have the line:
Include /opt/local/apache2/conf/extras-conf/mod_php.conf

> So my questions are:
> 1) Why is the one in /opt/loca/var/db/php5 the only one that works?
> 2) Why does Configuration File (php.ini) Path show as /opt/local/etc/ 
> php when that is not the file that is loaded?
> 3) Can my setup be fixed so that the /opt/local/etc/php/php.ini is  
> the file that is used?

I do not know how much you rely on your machine being up and running,  
and what other custom changes you have made.  If this is just a  
version issue, it should be a simple sudo port upgrade php5, or maybe  
you are version 4, in which case a bit of the above is not right.

You could do an uninstall and reinstall of php5, that should work it  
all out. Something like:
sudo port uninstall php5
sudo port install php5

Please add the variants you need, and backup and move aside any ini or  
other config files that you may want t keep around.

-- 
Scott * If you contact me off list replace talklists@ with scott@ *



More information about the macports-users mailing list