Назад | Перейти на главную страницу

php.ini не загружается в Windows 7 x64

Раньше я без проблем настраивал PHP вручную. Теперь я пытаюсь настроить среду разработки с PHP 5.3.1 в Windows 7 x64, и она не загружает файл 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. Основная причина, по которой он не загружался, заключалась в том, что я облажался с ограничением запроса сопоставления обработчика и непреднамеренно установил обработчик для вызова только в том случае, если запрос был сопоставлен с папкой. Это мешало PHP вообще запускаться в ответ на HTTP-запрос. Теперь, когда я это исправил, phpinfo () возвращает, что он загружает php.ini из папки c: \ php.

  2. Я до сих пор не знаю, почему при запуске «php.exe -info» из командной строки отображается «Загруженный файл конфигурации => (нет)». Я перепробовал все, что мог придумать, чтобы загрузить правильный файл INI, и ничего не сработало.

Под 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