Ошибка «Невозможно убить процесс» с помощью «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 (но он все равно был SCM_COMMAND_IDLE_TIMEOUT 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 

Я попытался воспроизвести вашу проблему, как бы неудачно, композитор хорошо побежал в моем проекте на 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, Мы можем установить опцию timeout outout в composer.json . В файле composer.Json есть код:

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

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

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

«Sensio \ Bundle \ DistributionBundle \ Composer \ ScriptHandler :: clearCache», «Sensio \ Bundle \ DistributionBundle \ Composer \ ScriptHandler :: installAssets»,

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

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

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

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

FYI

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

FYI

Вот официальный сайт загрузки Symfony, https://symfony.com/doc/current/book/installation.html#installing-the-symfony-installer

Чтобы установить на Azure, следуйте инструкциям загрузки для окон. Надеюсь, это поможет.