我正在尝试将memory_limit设置为512M,但它的位置为256M。
ini_set('memory_limit','512M');
ini_get('memory_limit'); //> Returns: 256M
我可以完全控制我的服务器。 (这是专门的)
请注意,512M以下的所有内容都可以使用。
ini_set('memory_limit','16M');
ini_get('memory_limit'); //> Returns: 16M
我发现了原因。在php.ini中我有memory_limit = 256M
。也许这被认为是一个上限
答案 0 :(得分:7)
我能想到的3种可能/找到:
在PHP 5.2.1之前,为了使用这个指令,它必须是 在编译时通过使用--enable-memory-limit启用 配置线。
OR
此处详述的问题:ini_set("memory_limit") in PHP 5.3.3 is not working at all
OR
ini_set已停用
答案 1 :(得分:2)
您也可以尝试使用php.ini或.htaccess文件更改memory_limit
的php.ini
memory_limit = 512M;
.htaccess
php_value memory_limit 512M
答案 2 :(得分:1)
我注意到在我的Mac(OS X El Capitan)和新的PHP 7.0.0上,我无法通过php.ini更改memory_limit
但我可以通过添加最后一行的/etc/apache2/httpd.conf来改变它:
php_value memory_limit 1024M
并重新启动apache服务器:
sudo apachectl restart
这是正确的php.ini,我可以通过它更改其他设置。
答案 3 :(得分:1)
当天晚些时候但编辑php.ini文件对于使用Mac OS 10.11.6的php 7.1无效。我仍然继续得到'PHP致命错误:允许的内存大小....'从其值显示启动apache后内存设置没有更新。
所以不要编辑文件。
JsonNode jsonNode = null;
try {
//patchJson is json string (above)
jsonNode = new ObjectMapper().readTree(patchJson);
for (JsonNode node : jsonNode) {
String path = node.path("path").asText();
if(path.equalsIgnoreCase("/photos"))
{
//How to remove this node from root node(jsonNode)
}
}
} catch (IOException e) {
e.printStackTrace();
}
Patch patch = new JsonPatchMaker().fromJsonNode(jsonNode);
我发现更改以下文件解决了这个问题。
/usr/local/php5/lib/php.ini
这个文件实际上是替换了初始php.ini文件中设置的值。再次对该行进行以下更改......
/usr/local/php5/php.d/99-liip-developer.ini
到
memory_limit = 256M
重新启动apache。
memory_limit = 1024M
答案 4 :(得分:0)
您可以在名为“disable_functions”的指令中检入您的php.ini配置文件。检查ini_set是否被禁用。
如果启用了safe_mode,则可能不会覆盖此选项。
答案 5 :(得分:0)
我发现了原因。在php.ini中我有memory_limit = 256M
。也许这被认为是一个上限。
我提出了我的需要。