Композитор-хорошая новость для php, но иногда он доставляет нам небольшие проблемы, такие как следующий отчет об ошибке:
Вы запускаете composer с включенным xdebug. Это оказывает существенное влияние на производительность во время выполнения. Видишь https://getcomposer.org/xdebug
Это очень распространенный конфликт , и влияние этого конфликта на работу композитора значительно. Когда мы включим функцию Xdebug, это замедлит работу нашего композитора в 3-4 раза. Другими словами: Xdebug очень важен для отладки нашей программы, но он увеличивает использование памяти и время обработки для composer.
Официальный сайт композитора предлагает решение
Далее я расскажу о своей идее устранения неполадок.
Способ 1. Отключите Xdebug глобально через файл конфигурации PHP.
Прежде всего, это должен быть конфликт, вызванный включенным Xdebug. Нам нужно выяснить, где включен Xdebug.
Напишите страницу включения phpinfo()
Функции, открытую в браузере.
/usr/локальный/etc/php/5.6 | Путь к файлу конфигурации (php.ini) |
/usr/локальный/etc/php/5.6/php.ini | Загруженный Файл Конфигурации |
/usr/локальный/etc/php/5.6/conf.d | Проверьте этот каталог на наличие дополнительных файлов .ini |
/usr/local/etc/php/5.6/conf.d/ext-igbinary.ini, /usr/local/etc/php/5.6/conf.d/ext-mcrypt.ini, /usr/local/etc/php/5.6/conf.d/ext-redis.ini, /usr/local/etc/php/5.6/conf.d/ext-xdebug.ini | Проанализированы дополнительные файлы .ini |
Видимые вызовы PHP php.ini
Файлы конфигурации и conf.d
Все в каталоге ini
Конфигурационный файл.
Отключите модуль “xdebug” в php.ini
Закомментируйте оператор вызова точкой с запятой:
;zend_extension = "/path/to/my/xdebug.so"
Удалите файлы конфигурации, связанные с Xdebug
Если вызовы Xdebug отсутствуют в основном файле конфигурации php.ini, то можно расширить папку конфигурации, например, в моей среде, как показано на диаграмме выше: Мы можем сделать возможным conf.d/ext-xdebug.ini
Переименовать в ext-xdebug.bak
Или удалить ее. Таким образом, перезагрузка службы PHP не будет вызвана. Лицом к лицу мы также можем обратиться к описанным выше шагам. conf.d/ext-xdebug.ini
Соответствующие инструкции Xdebug закомментированы, и эффект тот же.
Способ 2. Предотвращение вызовов Xdebug с помощью псевдонима composer
Чтобы установить псевдонимы, вам нужно знать, в какой среде оболочки вы находитесь. Мой компьютер использует zsh, поэтому отредактируйте файл. zshrc.
➜ ~ cd ➜ ~ vi .zshrc
Затем выберите один из способов установки вашего псевдонима или установите его в соответствии со следующими двумя ситуациями Два псевдонима 。
Вызывайте файлы конфигурации, которые не содержат модулей Xdebug
Для вызовов Xdebug в php.ini мы можем создать следующие псевдонимы, скопировав файл конфигурации (xdebug-отключен-php.ini), который не содержит Xdebug:
alias comp='php -c /path/to/xdebug-disabled-php.ini /path/to/composer.phar'
Не вызывайте никакие файлы конфигурации PHP
Этот подход решает проблему, связанную с тем, что я также скомпилировал некоторые расширенные пути конфигурации в PHP. :
# Without php.ini alias comp='php -n /path/to/composer.phar'
/путь/к для вашего фактического пути к файлу или команде
Хорошо, теперь давайте выполним его. композитор -В
Попробуйте посмотреть, есть ли какие-либо ошибки.
Хорошее, идеальное решение.