php.ini 无法在 Windows7 x64 上加载

php.ini 无法在 Windows7 x64 上加载

我以前手动配置过 PHP,没有任何问题。现在我尝试在 Windows 7 x64 上使用 PHP 5.3.1 设置开发环境,但它无法加载 php.ini 文件!

我对 Win7 和 64 位操作系统都很陌生,所以我可能忽略了其中的一些东西。哦……这也是在虚拟机 (VMWare Player) 中运行的,不过我不确定这会带来什么不同。

我已将 PHPRC 环境变量设置为指向“c:\php\”,将 IniFilePath 注册表项(在 HKLM/Software/PHP 和 HKLM/Software/Wow6432Node/PHP 中)设置为“c:\php”,我甚至将 php.ini 复制到 c:\windows,而“php -info”仍然显示:

Configuration File (php.ini) Path => C:\Windows
Loaded Configuration File => (none)

我甚至为 c:\Windows\php.ini 设置了“所有人”的读取权限,但无济于事。

有人能帮我解决这个问题吗?提前谢谢!这是“php -info”的第一部分输出...

phpinfo()
PHP Version => 5.3.1

System => Windows NT DEV 6.1 build 7600 ((null)) i586
Build Date => Nov 19 2009 09:48:59
Compiler => MSVC9 (Visual C++ 2008)
Architecture => x86
Configure Command => cscript /nologo configure.js  "--enable-snapshot-build" "--
enable-debug-pack" "--disable-zts" "--disable-isapi" "--disable-nsapi" "--with-p
do-oci=D:\php-sdk\oracle\instantclient10\sdk,shared" "--with-oci8=D:\php-sdk\ora
cle\instantclient10\sdk,shared" "--with-oci8-11g=D:\php-sdk\oracle\instantclient
11\sdk,shared" "--with-enchant=shared" "--enable-object-out-dir=../obj/"
Server API => Command Line Interface
Virtual Directory Support => disabled
Configuration File (php.ini) Path => C:\Windows
Loaded Configuration File => (none)
Scan this dir for additional .ini files => (none)
Additional .ini files parsed => (none)
PHP API => 20090626
PHP Extension => 20090626
Zend Extension => 220090626
Zend Extension Build => API220090626,NTS,VC9
PHP Extension Build => API20090626,NTS,VC9
Debug Build => no
Thread Safety => disabled
Zend Memory Manager => enabled
Zend Multibyte Support => disabled
IPv6 Support => enabled
Registered PHP Streams => php, file, glob, data, http, ftp, zip, compress.zlib,
phar
Registered Stream Socket Transports => tcp, udp
Registered Stream Filters => convert.iconv.*, string.rot13, string.toupper, stri
ng.tolower, string.strip_tags, convert.*, consumed, dechunk, zlib.*

答案1

在 Windows 7 下,将配置文件放在 c:\windows 下是个坏主意

最好将 PHP.INI 放在 PHP 安装目录中,并遵循以下指南(例如http://www.iis-aid.com/articles/how_to_guides/where_php_ini_is_loaded_from)告诉 PHP.EXE 在哪里找到 PHP.INI

答案2

经过多次反复尝试,我终于弄清楚了以下几件事:

  1. 它无法加载的主要原因是我搞砸了处理程序映射请求限制,并无意中将处理程序设置为仅当请求映射到文件夹时才调用。这导致 PHP 无法响应 HTTP 请求执行。现在我已经解决了这个问题,phpinfo() 返回它正在从 c:\php 文件夹加载 php.ini。

  2. 我仍然不知道为什么从命令行运行“php.exe -info”会显示“已加载配置文件 => (无)”。我尝试了所有能想到的方法来加载正确的 INI 文件,但都不起作用。

答案3

我发现已加载的配置文件显示(无)因为其权限不允许用户访问它...

尝试改变它的权限...

相关内容