【问题标题】:Deploying a CakePHP Application to an AWS ElasticBeanstalk EC2 Instance将 CakePHP 应用程序部署到 AWS ElasticBeanstalk EC2 实例
【发布时间】: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


【解决方案1】:

您在数据库配置中使用字符串,而不是您定义的常量。

【讨论】:

    猜你喜欢
    • 2016-09-06
    • 2021-10-11
    • 2020-08-19
    • 2018-10-22
    • 2015-10-08
    • 2019-05-17
    • 2023-03-18
    • 2015-06-09
    • 2016-09-29
    相关资源
    最近更新 更多