注意mode_php5.c必须在load php的dll之后才能使用,否则放在加载的前面是无效的;还有php的指令

见 http://www.php.net/manual/en/configuration.changes.php

看说明指令有二种,一种是不允许在文件夹的自定义配置中使用;

如我想改变php.ini中的extension_dir

在php.ini中注释使用默认的是c:/php(见phpinfo()结果)

如这样

extension_dir D:/Program Files/apache/php/ext  C:\php


LoadModule php5_module php/php5apache2_2.dll
<IfModule mod_php5.c>
    php_admin_value extension_dir "D:/Program Files/apache/php/ext"
</IfModule>
AddHandler application/x-httpd-php .php

# configure the path to php.ini
PHPIniDir php


也就是指令已经生效,可惜好像是先解释完pnp.ini后再执行指令?

虽然在phpinfo中看到已经改变,但是apache的运行还是提示加载dll出错


D:\Program Files\apache\bin>httpd -e warn -w
<br />
<b>Warning</b>:  PHP Startup:  in <b>Unknown</b> on line <b>0</b><br />
<br />
<b>Warning</b>:  PHP Startup:  in <b>Unknown</b> on line <b>0</b><br />
<br />
<b>Warning</b>:  PHP Startup:  in <b>Unknown</b> on line <b>0</b><br />
<br />
<b>Warning</b>:  PHP Startup:  in <b>Unknown</b> on line <b>0</b><br />
<br />
<b>Warning</b>:  PHP Startup:  in <b>Unknown</b> on line <b>0</b><br />


只能在php.ini中写上绝对路径如 extension_dir="D:/Program Files/apache/php/ext"

才不会出现上面的提示,但至少这里可以看到在httpd.conf中可以做个php.ini的改变.

至于为什么在httpd中改变了却还是提示出错暂无法确定原因;

至于php.ini中的那些参数是可以通过httpd来改变的见:

http://www.php.net/manual/en/configuration.changes.modes.php 说明可被改变范围类型区别

http://www.php.net/manual/en/ini.list.php php.ini的参数列表及可被改变的范围