|
php.net | support | documentation | report a bug | advanced search | search howto | statistics | random bug | login |
[2003-05-10 22:31 UTC] maximiliano dot marques at bol dot com dot br
This is the same bug #7174 except it happens on Apache/1.3.26 (Unix) (Conectiva/Linux) PHP/4.3.1 mod_ssl/2.8.10 OpenSSL/0.9.6c I get different values on phpinfo(); -page for include_path everytime I make a new request - it seems that all values present in my site are shown randomly after I have made requests to pages using different include_path -settings. './configure' '--prefix=/usr' '--with-config-file-path=/etc' '--disable-debug' '--enable-inline-optimization' '--with-apxs' '--with-exec-dir=/usr/bin' '--with-regex=system' '--with-gettext' '--with-gd' '--with-jpeg-dir=/usr' '--with-png' '--enable-sysvsem' '--enable-sysvshm' '--enable-yp' '--enable-ftp' '--enable-wddx' '--with-mysql' '--with-xml' '--with-mhash' '--with-mcrypt=/usr/local/src/libmcrypt-2.5.3' '--with-mm' '--with-xpm-dir' '--with-imap' '--with-imap-ssl' '--enable-openssl' '--with-gdbm' '--with-zlib' '--with-zip' PHP API: 20020918 PHP Extension: 20020429 Zend Extension: 20021010 Apache/1.3.26 Apache Release: 10326100 Apache API: 19990320 PatchesPull RequestsHistoryAllCommentsChangesGit/SVN commits
|
|||||||||||||||||||||||||||||||||||||
Copyright © 2001-2025 The PHP GroupAll rights reserved. |
Last updated: Fri Oct 24 12:00:01 2025 UTC |
Yes I did and it behave exactly the same. And I also compiled without --with-regex=system --enable-inline-optimization and nothing changed. I have set include_path in httpd.conf. The follow code I extracted from my httpd.conf. I am working only with virtual hosts. <VirtualHost *:80> ServerAdmin marques@maximiliano.info DocumentRoot /sites/imax/http ServerName imax.maximiliano.info ServerAlias imax www.imaxmedia.com.br ErrorLog logs/imax-error_log CustomLog logs/imax-access_log common php_value include_path .:/sites/imax/includes:/sites/imax/instance/imx/includes Alias /photo/ "/sites/imax/instance/imx/photo/" Alias /file/ "/sites/imax/instance/imx/file/" Alias /img/ "/sites/imax/instance/imx/img/" Alias /img_dyn/ "/sites/imax/instance/imx/img_dyn/" Alias /style/ "/sites/imax/instance/imx/style/" Alias /https/ "/sites/imax/https/" </VirtualHost>Try adding "'s around the path. (I always have them around the paths, e.g. 'php_value include_path "/www/common/:."') Some questions we need get answers for: Do you set the include_path for _every_ vhost? Do you have php.ini and is it loaded? What is the include_path setting in your php.ini? How many vhosts do you have in your httpd.conf? If you start apache in single server mode, does it still happen for every request? (httpd -X -F -DSSL) Please run all these tests using this script: <?php echo ini_get('include_path'); ?>First answering your questions: >Do you set the include_path for _every_ vhost? Not every but almost. I have 7 vhosts and 5 using different include_path values. >Do you have php.ini and is it loaded? Yes, I do and it was loaded since it appear in phpinfo() briefing. >What is the include_path setting in your php.ini? include_path = "." >How many vhosts do you have in your httpd.conf? 7 and I use dynamic IP for all. 3 of them are using same DocumentRoot but different include_path values. >If you start apache in single server mode, does it still happen for every request? (httpd -X -F -DSSL) Yes, it does. However as in this case there is only one process running, at first request it keep the include_path value forever. I am explaining better below. Second I executed several tests including your recommendations above, adding _?_ around the path and I used netstat and ps to follow httpd child process behavior while I running your suggested script: <?php echo ini_get('include_path'); ?> My conclusion was that the first request that a child process run with include_path given, it cache the value for include_path (no matter if it was set in httpd.conf or .htaccess, I tried with both) and child process never change include_path value anymore while it still alive. I am using ?MaxRequestsPerChild 1? as workaround and however it is working, performance is debilitated.Looks like the caching isn't happening quite like I thought it was. Running this script a couple of times in the same httpd process: <?php print "getmypid() = " . getmypid() . " "; print "ini_get(include_path) = " . ini_get("include_path") . "<br />\n"; print "Setting include_path...<br />\n"; ini_set("include_path", "/home/users/noam/ web"); print "getmypid() = " . getmypid() . " "; print "ini_get(include_path) = " . ini_get("include_path") . "<br />\n"; ?> shows that the include_path is always as configured in php.ini at the beginning of the script. (i.e. the ini_set doesn't persist.) Using Apache 2.0.47.