#amazon-web-services #lumen #amazon-elastic-beanstalk
#amazon-веб-сервисы #lumen #amazon-elastic-beanstalk
Вопрос:
У меня есть приложение Lumen 5.7 на Elastic Beanstalk с PHP 7.2, есть несколько конечных точек, которые работают правильно, получают и вставляют данные в RDS. Но команда Lumen (которую я создал) пытается подключиться к localhost, игнорируя конфигурацию среды. Я выполняю эту команду через ssh.
Я получил эту ошибку:
[2019-03-29 18:37:01] production.ERROR: PDOException: SQLSTATE[HY000] [2002] Connection refused in /var/app/current/vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/PDOConnection.php:27
Stack trace:
#0 /var/app/current/vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/PDOConnection.php(27): PDO->__construct('mysql:host=127....', 'forge', '', Array)
#1 /var/app/current/vendor/illuminate/database/Connectors/Connector.php(67): DoctrineDBALDriverPDOConnection->__construct('mysql:host=127....', 'forge', '', Array)
#2 /var/app/current/vendor/illuminate/database/Connectors/Connector.php(46): IlluminateDatabaseConnectorsConnector->createPdoConnection('mysql:host=127....', 'forge', '', Array)
#3 /var/app/current/vendor/illuminate/database/Connectors/MySqlConnector.php(24): IlluminateDatabaseConnectorsConnector->createConnection('mysql:host=127....', Array, Array)
Она пытается подключиться к 127.0.0.1 с помощью пользовательского forge.
На сервере нет файла .env.
Локально команда работает правильно.
Кто-нибудь может мне помочь, пожалуйста?
Редактировать: я добавил config/database.php файл со следующим кодом
return [
'default' => 'mysql',
'connections' => [
'mysql' => [
'driver' => 'mysql',
'host' => env('DB_HOST'),
'database' => env('DB_DATABASE'),
'username' => env('DB_USERNAME'),
'password' => env('DB_PASSWORD'),
'charset' => 'utf8',
'collation' => 'utf8_unicode_ci',
]
],
'migrations' => 'migrations',
];
И теперь я получаю эту ошибку:
production.ERROR: InvalidArgumentException: Database hosts array is empty. in /var/app/current/vendor/illuminate/database/Connectors/ConnectionFactory.php:203
Правка 2
Я снова развернул и теперь получил эту ошибку:
[2019-03-30 01:12:53] local.ERROR: PDOException: SQLSTATE[HY000] [1045] Access denied for user 'user'@'xx.xx.xx.xx' (using password: YES) in /var/app/current/vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/PDOConnection.php:27
Stack trace:
#0 /var/app/current/vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/PDOConnection.php(27): PDO->__construct('mysql:host=dev-...', 'user', 'mypass...', Array)
#1 /var/app/current/vendor/illuminate/database/Connectors/Connector.php(67): DoctrineDBALDriverPDOConnection->__construct('mysql:host=dev-...', 'user', 'mypass...', Array)
#2 /var/app/current/vendor/illuminate/database/Connectors/Connector.php(46): IlluminateDatabaseConnectorsConnector->createPdoConnection('mysql:host=dev-...', 'user', 'mypass...', Array)
#3 /var/app/current/vendor/illuminate/database/Connectors/MySqlConnector.php(24): IlluminateDatabaseConnectorsConnector->createConnection('mysql:host=dev-...', Array, Array)
#4 /var/app/current/vendor/illuminate/database/Connectors/ConnectionFactory.php(182): IlluminateDatabaseConnectorsMySqlConnector->connect(Array)
Данные подключения верны, но пользователь отображается с IP-адресом сервера user@ip.of.the.server
, и я не знаю, правильно ли это.
Ответ №1:
Пароль содержал символ ‘$’. По какой-то причине Lumen сократил пароль до этого символа. Она была удалена, и все снова работает.