注意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的参数列表及可被改变的范围