Как отключить настройку detect_unicode из php.ini? (пытаюсь установить Composer)

Я безуспешно пытался установить Composer на свою машину (OS X 10.6).

Согласно документам Composer, я выполнил это в терминале:

curl -s http://getcomposer.org/installer | php#!/usr/bin/env php

И это вывод:

Параметр detect_unicode должен быть отключен. Добавьте следующее в конец вашего php.ini: detect_unicode = Off

Конечно, это в моем php.ini:detect_unicode=Off, расположенный в /etc/php.ini.default

php -info сообщает мне, что файл php.ini загружается из /etc/ (вывод: Путь к файлу конфигурации (php.ini) => /etc)

Но также выводит: detect_unicode => On => On

Почему php.ini.default не загружает мои настройки и как я могу эффективно отключить detect_unicode?


person Nacho    schedule 02.07.2012    source источник
comment
Вам нужно перезапустить php, чтобы изменения вступили в силу.   -  person Cole Johnson    schedule 03.07.2012
comment
Я перезапустил один или два раза... есть ли способ перезапустить php?   -  person Nacho    schedule 03.07.2012
comment
Перезагрузка убивает все процессы. Может, спать пойдет. Попробуйте отключить его.   -  person Cole Johnson    schedule 03.07.2012
comment
Отключив его, когда он включен (не рекомендуется, так как слишком много может сломать комп), снова подключив его, затем включив и проверив php.ini.   -  person Cole Johnson    schedule 03.07.2012
comment
Тогда это звучит как ошибка с composer. Похоже, он просто сканирует файл чернил на предмет того, прокомментирован он или нет. :/   -  person Cole Johnson    schedule 03.07.2012


Ответы (5)


Скорее всего, никакой ini-файл вообще не загружается, я не знаю, виден ли /etc/php.ini.default или нет php. То же, что я сказал в разделе Невозможно установить/найти дляDetect_Unicode значение Off - вы должны запустить php -i | grep ini и проверить, какой файл на самом деле загружен, а затем отредактировать его. Если ничего не загружено, убедитесь, что вы поместили файл php.ini в значение Configuration File Path, в вашем случае кажется /etc/php.ini.

person Seldaek    schedule 03.07.2012
comment
Не могли бы вы объяснить, что вы подразумеваете под помещением файла php.ini в значение пути к файлу конфигурации, пожалуйста? У меня та же проблема, что и выше. Я пытался отредактировать файл php.ini, но безуспешно. Должно быть, он загружается, потому что я изменил другие его аспекты, которые вступили в силу. - person musoNic80; 03.07.2012
comment
@Seldaek В итоге я сделал: curl -s getcomposer.org/installer | php -ddetect_unicode=Выкл., чтобы переопределить проверку detect_unicode. Но все равно спасибо. - person Nacho; 03.07.2012
comment
Я рад помочь! Удачного кодирования! - person Nacho; 04.07.2012
comment
@ musoNic80 - Я имел в виду, что если по этому пути нет файла, вы можете его создать. Что касается обходного пути, вы также можете сделать curl ... | php -- --force, чтобы обойти все проверки - person Seldaek; 05.07.2012
comment
Спасибо @Seldaek. Я не знал, что cl использует другой php.ini, чем мой локальный веб-сервер! - person musoNic80; 05.07.2012

Просто добавьте «-ddetect_unicode=Off» после команды

curl -s https://getcomposer.org/installer | php -d detect_unicode=Off
person Ahmed Abu Eldahab    schedule 24.12.2012
comment
Сработало идеально! Спасибо. - person Labanino; 18.05.2014
comment
Этот ответ должен быть наверху! - person ShaTin; 30.04.2015

Под OSX перейдите к /etc.

Откройте Терминал.

>cd /etc
>nano php.ini.default

Отредактируйте php.ini.default (вставьте detect_unicode = Off).

Сохраните файл.

Теперь переименуйте его в php.ini.

>mv /etc/php.ini.default /etc/php.ini

Перезапустите Терминал, после чего он должен работать правильно.

person Michael Wabner    schedule 28.09.2012
comment
Скопируйте значение по умолчанию cp /etc/php.ini.default /etc/php.ini, затем отредактируйте копию. Таким образом, если вы сделаете плохую правку, будет легко вернуть оригинал. - person cbednarski; 16.04.2013

Если вы не можете изменить свой файл /usr/local/bin/php/php.ini, не забудьте использовать '-ddetect_unicode=Off' для всех ваших вызовов php следующим образом:

curl -s https://getcomposer.org/installer | php -d detect_unicode=Off

php -d detect_unicode=Off composer.phar install 
person ShaTin    schedule 30.04.2015

В Интернете есть несколько решений, но самое простое, что я нашел, было на Stack Overflow. Проблема в том, что PHP CLI по умолчанию не загружает один и тот же php.ini, и, в отличие от большинства установок Linux, здесь нет отдельного php-cli.ini, и, по-видимому, /etc/php.ini.default не загружается. так много. Однако вы можете передать его как параметр времени выполнения:

curl -s getcomposer.org/installer | php -d detect_unicode=Off

источник -> http://www.andrew-kirkpatrick.com/2012/10/install-composer-for-php-on-zend-server-mac-os-x/

person a9un9hari    schedule 13.10.2013