【发布时间】:2014-09-11 13:57:29
【问题描述】:
我正在尝试设置我的第一个 AWS EC2 实例来部署我现有的 CakePHP 应用程序。该应用程序在本地运行完美,但我似乎无法让 EC2 实例上的应用程序连接到数据源。在尝试加载应用程序时,我在页面顶部收到以下一组错误:
Warning (2): mysql_connect(): php_network_getaddresses: getaddrinfo failed: Name or service not known [CORE/cake/libs/model/datasources/dbo/dbo_mysql.php, line 561]
Warning (2): mysql_query() expects parameter 2 to be resource, boolean given [CORE/cake/libs/model/datasources/dbo/dbo_mysql.php, line 613]
Warning (2): Cannot modify header information - headers already sent by (output started at /var/app/current/cake/libs/debugger.php:686) [CORE/cake/libs/controller/controller.php, line 742]
Warning (2): mysql_errno() expects parameter 1 to be resource, boolean given [CORE/cake/libs/model/datasources/dbo/dbo_mysql.php, line 695]
Warning (2): Invalid argument supplied for foreach() [CORE/cake/libs/model/datasources/dbo/dbo_mysql.php, line 127]
Warning (2): array_keys() expects parameter 1 to be array, boolean given [CORE/cake/libs/model/datasources/dbo_source.php, line 1967]
Notice (8): Trying to get property of non-object [CORE/cake/libs/model/datasources/dbo_source.php, line 811]
Warning (2): mysql_real_escape_string() expects parameter 2 to be resource, boolean given [CORE/cake/libs/model/datasources/dbo/dbo_mysql.php, line 684]
应用程序实时 URL: http://orderaslice-demo.elasticbeanstalk.com/
我一直在关注有关如何将 Cake 应用程序部署到实例的 AWS 教程,但一切似乎都是正确的: http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/create_deploy_PHP_cakePHP.html
我的数据库配置文件在这里。它的设置方式与教程相同:
if (!defined('RDS_HOSTNAME')) {
define('RDS_HOSTNAME', $_SERVER['RDS_HOSTNAME']);
define('RDS_USERNAME', $_SERVER['RDS_USERNAME']);
define('RDS_PASSWORD', $_SERVER['RDS_PASSWORD']);
define('RDS_DB_NAME', $_SERVER['RDS_DB_NAME']);
}
class DATABASE_CONFIG {
//live server (Amazon ECS)
var $default = array(
'driver' => 'mysql',
'persistent' => false,
'host' => 'RDS_HOSTNAME',
'login' => 'RDS_USERNAME',
'password' => 'RDS_PASSWORD',
'database' => 'RDS_DB_NAME',
'prefix' => '',
);
}
提前感谢大家!
【问题讨论】:
-
我想通了。愚蠢的错误。我将 RDS 常量变量放在引号中,使其成为字符串。删除了引号,定义的 RDS 常量正常工作。我还不能发布答案,因为 StackExchange 要求我在发布后等待 8 小时,但会在几个小时后提交。
标签: php cakephp amazon-web-services amazon-ec2 cakephp-1.3