Laravel:致命错误:内存字节用尽远程数据库
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Laravel:致命错误:内存字节用尽远程数据库相关的知识,希望对你有一定的参考价值。
我有一个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
几点说明:
- 在本地使用相同的数据库时,应用程序加载没有问题
- 我可以使用Sequel Pro连接到远程数据库
- 我也可以从Laravel服务器的命令行连接到远程数据库(以root身份)
- 我已将PHP memory_limit设置为-1
这是我的配置文件(.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]
);
以上是关于Laravel:致命错误:内存字节用尽远程数据库的主要内容,如果未能解决你的问题,请参考以下文章
致命错误:允许的内存大小为 1610612736 字节用尽 laravel 护照
第二个laravel项目(v5.4)PHP致命错误:允许的内存大小为134217728字节已用尽(试图分配262144字节)
php - 致命错误:允许的内存大小为 134217728 字节已用尽 [重复]
PHP致命错误:允许的内存大小为134217728字节已用尽