如何在Heroku上运行Xdebug?

时间:2016-11-26 22:43:44

标签: php heroku composer-php xdebug

我刚刚将新部署推送到Heroku上的暂存实例,该实例失败了,现在我的网站出现了500错误。

composer.json

{
    "license": "proprietary",
    "require": {
        "php": ">=5.5.16",
        "aws/aws-sdk-php": "2.*",
        "ext-memcached": "*",
        "ext-apcu": "*",
        "ext-gd": "*",
        "ext-gettext": "*",
        "ext-mbstring": "*",
        "ext-soap": "*",
        "ext-mysql": "*",
        "ext-xdebug": ">=2.4.0"
    },
    "require-dev": {
      "heroku/heroku-buildpack-php": "*"
    }
}

新的PHP代码:

// STARTS DEBUG
xdebug_start_function_monitor(['session_start']);

register_shutdown_function(function() {
    var_dump(xdebug_get_monitored_functions(), ini_get('session.auto_start'));
});
// ENDS DEBUG

Heroku构建日志:

-----> PHP app detected
-----> Bootstrapping...
-----> Installing platform packages...
       - php (5.5.38)
       - ext-gd (bundled with php)
       - ext-gettext (bundled with php)
       - ext-mbstring (bundled with php)
       - ext-mysql (bundled with php)
       - ext-soap (bundled with php)
       - ext-apcu (4.0.11)
       - ext-memcached (2.2.0)
       - apache (2.4.20)
       - nginx (1.8.1)
 !     WARNING: Your 'composer.lock' is not up to date with the latest
       changes in 'composer.json'. To ensure you are not getting stale
       dependencies, run 'composer update' on your machine and commit
       any changes to Git before pushing again.
-----> Installing dependencies...
       Composer version 1.2.2 2016-11-03 17:43:15
       Loading composer repositories with package information
       Installing dependencies 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.
         - Installing symfony/event-dispatcher (v2.6.1)
           Loading from cache

         - Installing guzzle/guzzle (v3.9.2)
           Loading from cache

         - Installing aws/aws-sdk-php (2.7.12)
           Loading from cache

       Generating optimized autoload files
-----> Preparing runtime environment...
-----> Checking for additional extensions to install...
       - New Relic detected, installed ext-newrelic
-----> Discovering process types
       Procfile declares types -> web
-----> Compressing...
       Done: 112.1M
-----> Launching...
       Released v792
       https://XXX.herokuapp.com/ deployed to Heroku

据我所知,从构建日志中可以看出它失败的原因是因为Xdebug没有安装,即使我已经在composer.json中指定了它。

如何在Heroku上安装Xdebug?

1 个答案:

答案 0 :(得分:3)

看起来Heroku不支持Xdebug。 Heroku的文档提供了six lists of extensions

  • PHP 5.5和5.6的三个列表:
    • 自动启用的内置扩展程序
    • 可以通过composer.json
    • 启用的内置扩展程序
    • 可以通过composer.json
    • 启用的第三方扩展程序
  • PHP 7的三个相应列表

他们都没有列出Xdebug。