php.ini wird unter Windows 7 x64 nicht geladen

php.ini wird unter Windows 7 x64 nicht geladen

Ich habe PHP in der Vergangenheit ohne Probleme manuell konfiguriert. Jetzt versuche ich, eine Entwicklungsumgebung mit PHP 5.3.1 unter Windows 7 x64 einzurichten, und die Datei php.ini wird nicht geladen!

Ich bin neu bei Win7 und dem 64-Bit-Betriebssystem, also könnte es da etwas sein, das ich übersehe. Oh... und das läuft auch in einer VM (VMWare Player), obwohl ich nicht sicher bin, ob das einen Unterschied machen könnte.

Ich habe die Umgebungsvariable PHPRC so eingestellt, dass sie auf „c:\php\“ verweist, den Registrierungsschlüssel IniFilePath (sowohl in HKLM/Software/PHP als auch in HKLM/Software/Wow6432Node/PHP) auf „c:\php“ gesetzt und ich habe sogar php.ini nach c:\windows kopiert, und „php -info“ zeigt immer noch:

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

Ich bin sogar so weit gegangen, den Lesezugriff für „Jeder“ auf c:\Windows\php.ini einzurichten, aber ohne Erfolg.

Kann mir jemand helfen, das herauszufinden? Vielen Dank im Voraus! Hier ist die erste Ausgabe von „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.*

Antwort1

Unter Windows 7 ist es keine gute Idee, Konfigurationsdateien unter c:\windows abzulegen

Legen Sie PHP.INI besser in das PHP-Installationsverzeichnis und befolgen Sie die Richtlinien (wie etwahttp://www.iis-aid.com/articles/how_to_guides/where_php_ini_is_loaded_from), um PHP.EXE mitzuteilen, wo PHP.INI zu finden ist

Antwort2

Nach langem Herumprobieren habe ich schließlich ein paar Dinge herausgefunden:

  1. Der Hauptgrund, warum es nicht geladen wurde, war, dass ich die Einschränkung der Handler-Mapping-Anforderung vermasselt und den Handler versehentlich so eingestellt hatte, dass er nur aufgerufen wurde, wenn die Anforderung einem Ordner zugeordnet war. Dies verhinderte, dass PHP als Antwort auf eine HTTP-Anforderung überhaupt ausgeführt wurde. Nachdem ich das nun behoben habe, gibt phpinfo() zurück, dass php.ini aus dem Ordner c:\php geladen wird.

  2. Ich weiß immer noch nicht, warum beim Ausführen von „php.exe -info“ in der Befehlszeile „Konfigurationsdatei geladen => (keine)“ angezeigt wird. Ich habe alles Mögliche versucht, um die richtige INI-Datei zu laden, aber nichts hat funktioniert.

Antwort3

Ich habe festgestellt, dass die geladene Konfigurationsdatei angezeigt wird (keine), da ihre Berechtigungen Benutzern keinen Zugriff darauf erlauben ...

Versuchen Sie, die Berechtigungen zu ändern ...

verwandte Informationen