ID: 41192 User updated by: martin at itmission dot com Reported By: martin at itmission dot com Status: Open Bug Type: PHP options/info functions Operating System: Windows Server 2003 PHP Version: 5.2.1 New Comment:
I am assuming that it has something to do with the massive change to registry.c between 5.2.0 and 5.2.1 changelogged as "implemented registry cache that prevent registry lookup on each request. In case of modification of corresponding registry-tree PHP will reload it automatic". Perhaps something in the way it's being cached is not working properly. The simpler code of 5.2.0 works as expected (and it hits the registry with every request, but I can live with that). Previous Comments: ------------------------------------------------------------------------ [2007-04-26 02:13:08] martin at itmission dot com Possibly noteworthy, the exact same configuration works fine in PHP 5.2.0. ------------------------------------------------------------------------ [2007-04-26 01:41:12] martin at itmission dot com I understand that I was wrong to try to make it work with auto_prepend_file. When I remove auto_prepend_file and specify only display_errors => on (PHP_INI_ALL), and change my scripts to <?php phpinfo(); ?>, www1 shows Display Errors: On, and www2 shows Display Errors: off. Deleting www1 or renaming it to www3 causes www2 to show Display Errors: on. When I create a fake error, like trying to open a nonexistent file, www1 displays the error, while www2 does not. ------------------------------------------------------------------------ [2007-04-25 20:49:10] [EMAIL PROTECTED] As documented in http://php.net/configuration.changes the registry keys do not work with PHP_INI_PERDIR ini values. You can see which ini value category it belongs to at: http://php.net/manual/en/ini.php#ini.list Only those marked PHP_INI_USER or PHP_INI_ALL will work. ------------------------------------------------------------------------ [2007-04-25 20:22:57] martin at itmission dot com Description: ------------ I am trying to configure multiple websites under IIS using ISAPI. For each site I would like to configure specific PHP directives. My directives only work on the first entry I make (lexicographically, not chronologically). Reproduce code: --------------- Using Regedit Add HKLM\Software\PHP\Per Directory Values\c\inetpub\www1\auto_prepend_file "c:\inetpub\www1\include1.php" Add HKLM\Software\PHP\Per Directory Values\c\inetpub\www2\auto_prepend_file "c:\inetpub\www2\include2.php" Files Create c:\inetpub\www1\include1.php containing "<?php echo('1'); ?>" Create c:\inetpub\www2\include2.php containing "<?php echo('2'); ?>" Create c:\inetpub\www1\index.php containing "<?php echo('hello'); ?>" Create c:\inetpub\www2\index.php containing "<?php echo('hello'); ?>" IIS Make the two sites (www1 and www2) and configure PHP on them. Web Browser Visit http://www1/index.php Visit http://www2/index.php Expected result: ---------------- http://www1/index.php: 1hello http://www2/index.php: 2hello Actual result: -------------- http://www1/index.php: 1hello http://www2/index.php: hello If I delete HKLM\Software\PHP\Per Directory Values\c\inetpub\www1, or rename it to HKLM\Software\PHP\Per Directory Values\c\inetpub\www3 http://www2/index.php changes: 2hello However at that point www1 no longer prepends the file. This is the case with all directives, not just auto_prepend_file. ------------------------------------------------------------------------ -- Edit this bug report at http://bugs.php.net/?id=41192&edit=1