在将 Apache/PHP/MySQL 上的一些网站从 Windows Server 主机迁移到 Linux 主机的过程中,我将它们还原到文件系统,配置了虚拟主机和所有管道,连接到 MySQL 数据库,然后登录其中一个。过了一会儿,它抛出了此错误消息:
Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 1228800 bytes)
我认为这应该是小菜一碟,于是我将其改为memory_limit
256M /etc/php.ini
,然后关闭 httpd 然后再启动。但没那么快!PHPInfo 仍然显示旧值:
memory_limit 128M 128M
应用程序仍然抛出与上述完全相同的错误。我仔细检查了 PHPInfo 是否也显示与我编辑的文件相同的文件:
Configuration File (php.ini) Path /etc
Loaded Configuration File /etc/php.ini
Scan this dir for additional .ini files /etc/php.d
搜索并在 3x 文件中找到了它:,和。我相信 Linux 现在默认运行,所以我/etc
将所有 3x 中的值更改为 256、257 和 258M,只是为了能够分辨,但停止并重新启动后 PHPInfo 仍然显示 128M。memory_limit
php.ini
php.ini.rpmnew
php-fpm.d/www.conf
php-fpm
httpd
我甚至进入了实际的网络应用程序并改变了它们的内存限制定义但无济于事。
内存限制隐藏在哪里?
可能有一个副本隐藏在 Web 应用程序的
/etc
文件夹中。但是,如果是的话php-fpm
,很可能它只是还没有重新访问初始化文件。您是否尝试过重新启动 Web 服务?