| Bug #7175 | "perdir" ini settings are not per dir | ||||
|---|---|---|---|---|---|
| Submitted: | 13 Oct 2000 3:52am UTC | Modified: | 13 Oct 2000 9:36pm UTC | ||
| From: | rick at eastcore dot net | Assigned to: | |||
| Status: | Closed | Category: | PHP options/info functions | ||
| Version: | 4.0.3 | OS: | Linux 2.2.17 | ||
[13 Oct 2000 4:45am UTC] rick at eastcore dot net
The code in php-4.0.3/sapi/apache/mod_php4.c (line 551) looks
suspicious:
static zend_bool should_overwrite_per_dir_entry(php_per_dir_entry
*orig_per_dir_entry, php_per_dir_entry *new_per_dir_entry)
{
if (orig_per_dir_entry->type==PHP_INI_SYSTEM
&& new_per_dir_entry->type!=PHP_INI_SYSTEM) {
return 0;
} else {
return 1;
}
}
[13 Oct 2000 9:36pm UTC] rick at eastcore dot net
Zeev's fixes in CVS (which include changes in the suspicious area in sapi/apache/mod_php4.c) resolve this issue (tested on the original reporting system). This bug should be closed.

Given the apache (1.3.12) virtual hosts definitions: <VirtualHost 1.2.3.4> ServerAdmin webmaster@domain.com ServerName www.domain.com ServerAlias *.domain.com domain.com DocumentRoot /home/domain/htdocs ScriptAlias /cgi-bin/ /home/domain/cgi-bin/ php_value include_path /home/domain/phpinc php_value auto_prepend_file dom_prepend.php3 TransferLog /var/log/httpd/access_log.domain ErrorLog /var/log/httpd/error_log.domain </VirtualHost> <VirtualHost 1.2.3.4> ServerAdmin webmaster@network.net ServerName www.network.net ServerAlias network.net *.network.net DocumentRoot /home/rick/network/htdocs ScriptAlias /cgi-bin/ /home/rick/network/cgi-bin/ php_value include_path /home/rick/network/phpinc php_value auto_prepend_file net_prepend.php3 TransferLog /var/log/httpd/access_log.network ErrorLog /var/log/httpd/error_log.network </VirtualHost> both running a freshly compiled php3.0.4 (configure line: ./configure' '--with-apache=/usr/src/apache_1.3.12' '--with-mysql=/usr' '--with-xml') Virtual host network.net has the same 'include_path' and 'auto_prepend_file' settings as domain.com. These were systems that had no such problem prior to the upgrade (from 4.0.1pl2). I dug through the source for a few hours and decided that it is most likely to do with php_alter_ini_entry for ini values set to PHP_INI_PERDIR or PHP_INI_ALL in main/main.c, but I couldn't make headway beyond this. If this is true, this is a show-stopper for a lot of users.