我刚刚将新部署推向了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?
看起来Xdebug在Heroku上不支持。Heroku的文档提供了六个扩展名列表:
- PHP 5.5和5.6的三个列表:
- 自动启用的内置扩展
- 可以通过
composer.json
启用的内置扩展名 - 可以通过
composer.json
启用的第三方扩展
- php 7的三个相应列表
他们都没有列出xdebug。