Azure上的“php composer.phar install”错误“无法终止进程”错误

时间:2015-07-28 09:13:49

标签: php symfony 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)并尝试将app_settings中的SCM_COMMAND_IDLE_TIMEOUT参数设置为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

4 个答案:

答案 0 :(得分:3)

我试图重现你的问题,但是失败了,作曲家在我的Azure项目中运行良好。请尝试以下步骤:

1,在Azure上使用MySQL数据库创建Web应用程序,并从git设置部署。

2,在cmdlet本地创建一个新的symfony 2.7项目:

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

symfony new my_project

然后在Web应用程序上部署项目。

3,切换回Kudu应用程序的在线控制台,执行以下命令:

"cd site\wwwroot"

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

"php composer.phar install"

4,在作曲家安装过程中回答提示问题。

对我来说很好。

顺便说一句,当作曲家在你的项目环境中清理缓存时,似乎有一些关于超时RuntimeException的错误。有两种方法可以处理它:

1,我们可以在Azure上部署之前手动清理缓存。

2,我们可以在composer.json中设置命令执行超时选项。在composer.Json文件中,有代码:

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

我们添加"进程超时:0"删除命令执行时间的限制。

答案 1 :(得分:3)

我在尝试重复它时遇到了同样的错误。超时是由安装这两项引起的:

“Sensio公司\捆绑\ DistributionBundle \作曲\ ScriptHandler :: clearCache”, “Sensio公司\捆绑\ DistributionBundle \作曲\ ScriptHandler :: installAssets”,

尝试了解决方法:

  1. 从composer.json中删除ClearCache和InstallAsset,安装成功

  2. 重新添加这两个组件,再次安装,它有效。

  3. 有关于符号链接的警告,因为Windows不支持符号链接。这应该是不同的问题。

答案 2 :(得分:3)

FYI

我再测试一次,看起来像composer.lock引起了一些问题。我删除了composer.lock,然后运行install,它成功通过了。

答案 3 :(得分:3)

FYI

以下是Symfony官方下载网站https://symfony.com/doc/current/book/installation.html#installing-the-symfony-installer

要在Azure上安装,请按照Windows的下载说明进行操作。希望它可以提供帮助。