2015-08-30 4 views
1

Я использую PHP на моей хост-системе Windows для composer. После неудачной попытки добавить parse/php-sdk в проект (так как SDK нужен модуль PHP cURL для включения), я обновил настройки PHP. Но это не решило проблему. Потом я проверил, являются ли php.ini настройки правильны:PHP игнорирует свой php.ini в Windows

C:\Users\me>php --info | grep "extension_dir" 
extension_dir => ext => ext 
C:\Users\me>php --info | grep "php.ini" 
Configuration File (php.ini) Path => C:\Windows 
Loaded Configuration File => C:\Program Files\php-5.6.8-Win32-VC11-x64\php.ini 

Да, они есть. Нет C:\Windows\php.ini, но это не имеет значения - C:\Program Files\php-5.6.8-Win32-VC11-x64\php.ini - это файл, который я обновил и загружен.

Затем я распечатал список модулей (php --modules) и заметил, что он не имеет ничего общего с настройками расширения в загруженном php.ini. Я также пытался изменить другие настройки (например, memory_limit), но PHP, похоже, игнорирует мой php.ini и загружает конфигурации из другого места.

Как обнаружить это волшебное «где-то» (означает: где PHP фактически загружает свои настройки) и как заставить его загружать желаемые настройки из определенного файла?

+0

Возможный дубликат [Ошибка установки Composer - требуется ext \ _curl, когда он включен) [http://stackoverflow.com/questions/19335305/composer-install-error-requires-ext-curl-when-its-actualy -enabled) – uri2x

+0

@ uri2x Спасибо за замечание. Нет, этот вопрос не дублирует тот, с которым вы связались. На самом деле речь идет не о композиторе, а о PHP на Windows. – automatix

+0

Интересно, что мы используем одну и ту же настройку, где мы обновляем файл Loaded Configuration, и это, похоже, работает. – rccoros

ответ

0

Проблема вызвана тем фактом, что php.ini редактируется редактором, который не запускался с повышенными привилегиями. Если папка PHP находится внутри «Программных файлов», вам необходимо получить доступ к файлам внутри нее с правами администратора. Я обнаружил невероятный факт, что изменения не сохраняются в php.ini, несмотря на то, что редактор показывает их правильно, даже если они закрыты/открыты! Это можно просто проверить, проверив содержимое php.ini - запустите more "C:\Program Files\... ...\php.ini" из командной строки.

Решение очевидно: вам нужно запустить редактор с повышенными привилегиями или предоставить разрешения для пользователя в папку с php.ini, а затем отредактировать его.

 Смежные вопросы

  • Нет связанных вопросов^_^