我有一个Laravel(5.5)Web应用程序,我正在尝试连接远程数据库。我正在使用Apache,PHP 7.0和MySQL。 Laravel使用PDO,当使用远程数据库信息调用类时,我得到500服务器错误:
PHP Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 20480 bytes) in /var/www/html/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php on line 67
几点说明:
这是我的配置文件(.env中的相同信息):
'mysql' => [
'driver' => 'mysql',
'host' => env('DB_HOST', 'xxx.xxx.xxx.xxx'),
'port' => env('DB_PORT', '3306'),
'database' => env('DB_DATABASE', 'xxxxxx'),
'username' => env('DB_USERNAME', 'xxxxxx'),
'password' => env('DB_PASSWORD', 'xxxxxx'),
'charset' => 'utf8mb4',
'collation' => 'utf8mb4_unicode_ci',
'strict' => false,
'engine' => null,
'sslmode' => env('DB_SSLMODE', 'prefer'),
'options' => array(
PDO::MYSQL_ATTR_SSL_KEY => '/var/lib/mysql/client-key.pem',
PDO::MYSQL_ATTR_SSL_CERT => '/var/lib/mysql/client-cert.pem',
PDO::MYSQL_ATTR_SSL_CA => '/var/lib/mysql/ca.pem',
),
],
如果有人有任何想法或建议,那将是惊人的。
谢谢,
麦克风
我在larachat的人们的恩典中想出来了。问题在于异常处理程序。 context()
函数尝试获取用于错误报告的用户数据。然后,处理程序将尝试查询数据库,然后报告错误,然后尝试获取用户信息,从而导致无限循环。
临时解决方法是修改/Foundation/Exception/Handler.php
中的report()函数:
$logger->error(
$e->getMessage(),
['exception' => $e]
);