я использую PHP
в моей хост-системе Windows для composer
, После неудачной попытки добавить parse/php-sdk
в проект (поскольку SDK требует включения модуля PHP cURL), я обновил настройки PHP. Но это не решило проблему. Тогда я проверил, является ли php.ini
настройки верны:
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 на самом деле загружает свои настройки) и как заставить его загрузить желаемые настройки из определенного файла?
Проблема вызвана тем, что php.ini редактируется редактором, который не запускался с повышенными привилегиями. Если папка PHP находится внутри «Program Files», вы должны получить доступ к файлам в ней с правами администратора.
Я обнаружил невероятный факт, что изменения не сохраняются в php.ini, несмотря на то, что редактор показывает их правильно, даже если они закрыты / открыты!
Это можно просто проверить, проверив содержимое php.ini — запустите more "C:\Program Files\... ...\php.ini"
из командной строки.
Решение очевидно — вы должны запустить редактор с повышенными привилегиями или предоставить пользователю права доступа к папке с помощью php.ini, а затем отредактировать ее.
Других решений пока нет …