Ошибка "Невозможно убить процесс" с помощью "php composer.phar install" на Azure

Я пытаюсь развернуть мое приложение Symfony 2 в облаке веб-сайта Microsoft Azure. Для этого я следую шагам из этого руководства http://symfony.com/doc/current/cookbook/deployment/azure-website.html#configure-the-symfony-application

Теперь, когда я перехожу к шагу "Настроить приложение Symfony", я запускаю команду php composer.phar install. Я опускаю переключатель -d extension=php_intl.dll, поскольку расширение уже загружено. Я действительно пробовал оба, это не имеет никакого значения.

Теперь, при запуске команд после установки, я получаю следующую ошибку:

[Symfony\Component\Process\Exception\RuntimeException]
Unable to kill the process                              

Я попытался увеличить max_execution_time (но он все равно был равен 0), а также попытался установить параметр SCM_COMMAND_IDLE_TIMEOUT в app_settings на значение, подобное 3600. Все еще не работает.

Любые идеи? Вот полный вывод:

D:\home\site\wwwroot>php composer.phar install
 Loading composer repositories with package information

Installing dependencies (including require-dev) from lock file

Warning: The lock file is not up to date with the latest changes in composer.json. You may be getting outdated dependencies. Run update to update them.

Nothing to install or update

Generating autoload files

> Incenteev\ParameterHandler\ScriptHandler::buildParameters

Updating the "app/config/parameters.yml" file

> Sensio\Bundle\DistributionBundle\Composer\ScriptHandler::buildBootstrap

> Sensio\Bundle\DistributionBundle\Composer\ScriptHandler::clearCache

Script Sensio\Bundle\DistributionBundle\Composer\ScriptHandler::clearCache handling the post-install-cmd event terminated with an exception







  [Symfony\Component\Process\Exception\RuntimeException]  

  Unable to kill the process                              







install [--prefer-source] [--prefer-dist] [--dry-run] [--dev] [--no-dev] [--no-plugins] [--no-custom-installers] [--no-autoloader] [--no-scripts] [--no-    progress] [-v|vv|vvv|--verbose] [-o|--optimize-autoloader] [--ignore-platform-reqs] [packages1] ... [packagesN]






Fatal error: Uncaught exception 'Symfony\Component\Process\Exception\RuntimeException' with message 'Unable to kill the process' in phar://D:/home/site/wwwroot    /composer.phar/vendor/symfony/process/Symfony/Component/Process/Process.php:801
Stack trace:
#0 phar://D:/home/site/wwwroot/composer.phar/vendor/symfony/process/Symfony/Component/Process/Process.php(177): Symfony\Component\Process\Process->stop()
#1 [internal function]: Symfony\Component\Process\Process->__destruct()
#2 {main}
  thrown in phar://D:/home/site/wwwroot/composer.phar/vendor/symfony/process/Symfony/Component/Process/Process.php on line 801

Ответ 1

Я попытался воспроизвести вашу проблему, как бы неудачно, композитор хорошо работал в моем проекте на Azure. Попробуйте выполнить следующие действия:

1, создайте веб-приложение на Azure с базой данных MySQL и настройте развертывание из git.

2, Создайте новый проект symfony 2.7 в локальном командлете:

php -r "readfile('http://symfony.com/installer');" > symfony

symfony new my_project

затем разверните проект в веб-приложении.

3, вернитесь к онлайн-консоли приложения Kudu, выполните следующую команду:

"cd site\wwwroot"

"curl -sS https://getcomposer.org/installer | php"

"php composer.phar install"

4, ответьте на запрошенные вопросы во время процесса установки композитора.

Он отлично работает для меня.

Кстати, кажется, что что-то не так в timeout RuntimeException, когда композитор очищал кеш в вашем проекте env. Есть два способа справиться с этим:

1, мы можем очистить кеш вручную до развертывания на Azure.

2, мы можем установить опцию отключения выключения команды в composer.json. В файле composer.Json есть код:

"config": {
   "bin-dir": "bin",
   "process-timeout":0 
}, 

мы добавляем "process-timeout: 0", чтобы удалить ограничение времени excute команды.

Ответ 2

Я получил ту же ошибку, пытаясь ее воспроизвести. Таймаут был вызван установкой этих двух элементов:

"Sensio\Bundle\DistributionBundle\композитор\ScriptHandler:: ClearCache", "Sensio\Bundle\DistributionBundle\композитор\ScriptHandler:: installAssets",

Пробовал работу:

  • Удалить ClearCache и InstallAsset из composer.json, установка успешна

  • Добавьте эти 2 компонента обратно, установите снова, он сработал.

  • Появилось предупреждение о символической ссылке, поскольку Windows не поддерживает символическую ссылку. Это должно быть другой проблемой.

Ответ 3

FYI

Я тестировал еще раз, похоже, что composer.lock вызвал некоторую проблему. Я удалил composer.lock, а затем выполнил установку, он успешно прошел.