【问题标题】:Allowed memory size exhausted after switching PHP from 7.1 to 7.2将 PHP 从 7.1 切换到 7.2 后允许的内存大小耗尽
【发布时间】:2020-04-09 15:14:58
【问题描述】:

以前,我的网站在 Ubuntu 14.04 LTS 上运行 PHP 7.1 并升级到 Ubuntu 16.04。升级后,我仍然可以访问我的网站。

然后我安装并切换到 PHP 7.2(我没有删除 PHP 7.1,只是禁用它)。访问时,显示 laravel error 关于数据库连接错误。然后我在/etc/php/7.2/cli/php.ini 中启用mysqlpdo_mysql。之后,我的网站只返回 500 内部服务器错误。

我检查了/var/log/apache2/error.log,它说

[Tue Dec 17 11:12:36.773684 2019] [php7:error] [pid 27730] [client xxx.xxx.xxx.xxx:y] PHP Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 20480 bytes) in /var/www/project/vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/PDOConnection.php on line 31

/etc/php/7.2/cli/php.ini 中的memory_limit 从一开始就已经是-1

【问题讨论】:

标签: mysql laravel pdo php-7.2


【解决方案1】:

您可能有多个配置文件用于不同的 PHP 接口。 您已编辑 cli 配置。

要检查您在 apache2 sapi 中使用的配置,您可以在文档根目录中创建一个 test.php,如下所示

test.php

<?php
phpinfo();

然后在您的网络浏览器中打开 test.php。 有一行标记为“加载的配置文件”

编辑配置,我不建议将网站的内存限制设置为-1(不受php限制)。选择适合您要求的值。它应该是 128MB 的倍数。 更改值后重新启动 Apache。 完成后删除 test.php。

关于 Ubuntu 和 Apache 的另外两件事:

像这样选择系统默认的php版本

update-alternatives --set php /usr/bin/php7.2

像这样选择Apache php版本

a2enmod php7.2
systemctl restart apache2

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-06-25
    • 2018-08-04
    • 1970-01-01
    • 2017-12-13
    • 2019-04-25
    • 2010-10-20
    • 2013-10-21
    相关资源
    最近更新 更多