A-A+

IIS环境下如何指定php.ini文件的路径

2008年11月24日 编程开发 暂无评论 阅读 1 次
摘要:

一次安装ZendStudioServer后发现默认的php.ini文件的路径改变了。 IIS环境下安装完ZendStudioServer-5.1.0后,运行PHP程序,发现原有的网站提示找不到dll文件。 通过ZendStudioServer的Web页面查看PHP Configuration,发现默认的PHP.ini文件应该是在C:Windows下的,不过此时已经指向到了ZendStudioServer的安装目录中的ect文件夹:E:Program FilesZendZendStudioServer-5.1.0etc 我把此目录下的php.ini文件删除然后重新启动IIS,发现此时的PHP使用的是C:Windowsphp.ini。 最后看了PHP的帮助文档才知道原来是ZendStudioServer在注册表里改了点信息。

一次安装ZendStudioServer后发现默认的php.ini文件的路径改变了而写的。
IIS环境下安装完ZendStudioServer-5.1.0后,运行PHP程序,发现原有的网站提示找不到dll文件。

通过ZendStudioServer的Web页面查看PHP Configuration,发现默认的PHP.ini文件应该是在C:Windows下的,

不过此时已经指向到了ZendStudioServer的安装目录中的ect文件夹:E:Program FilesZendZendStudioServer-5.1.0etc

打开此文件夹,发现此目录下有如下三个文件:
IISsettings.txt
php.ini
zend.ini

我把此目录下的php.ini文件删除然后重新启动IIS,发现此时的PHP使用的是C:Windowsphp.ini。

呵呵,这就奇怪了。

Google后找到更改PHP.ini文件路径的方法:新建一个环境变量PHPRC,设为你的php.ini所在的路径就可以了
经实验此方法无效,具体原因见以下说明,Windows2003+IIS6

最后看了PHP的帮助文档才知道原来是ZendStudioServer在注册表里改了点信息。

    配置文件(PHP 3 中是 php3.ini,自 PHP 4 起是 php.ini)在 PHP 启动时被读取。对于服务器模块版本的 PHP,仅在 web 服务器启动时读取一次。对于 CGI 和 CLI 版本,每次调用都会读取。
php.ini 的搜索路径如下(按顺序):
    * SAPI 模块所指定的位置(Apache 2 中的 PHPIniDir 指令,CGI 和 CLI 中的 -c 命令行选项,NSAPI 中的 php_ini 参数,THTTPD 中的 PHP_INI_PATH 环境变量)
    *HKEY_LOCAL_MACHINESOFTWAREPHPIniFilePath(Windows 注册表位置)
    *PHPRC 环境变量
    *当前工作目录(对于 CLI)
    *web 服务器目录(对于 SAPI 模块)或 PHP 所在目录(Windows 下其它情况)
    *Windows 目录(C:windows 或 C:winnt),或 --with-config-file-path 编译时选项指定的位置

如果存在 php-SAPI.ini(SAPI 是当前所用的 SAPI 名称,因此实际文件名为 php-cli.ini 或 php-apache.ini 等),则会用它替代 php.ini。SAPI 的名称可以用 php_sapi_name() 来测定。
    Note: Apache web 服务器在启动时会把目录转到根目录,这将导致 PHP 尝试在根目录下读取 php.ini,如果存在的话。

给我留言

Copyright © 浩然东方 保留所有权利.   Theme  Ality 07032740

用户登录