Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How do I set the memory_limit for PHP CLI when using xampp

I have tried setting the limit in php.ini but I always get the same error:

Allowed memory size of 262144 bytes exhausted (tried to allocate 341351 bytes) in Unknown on line 0

I can work around this by calling php -d memory_limit=2048M script.php

But can't figure out what to do with composer.

like image 388
Jon Diamond Avatar asked Apr 21 '17 17:04

Jon Diamond


People also ask

What is the Memory_limit default value in PHP INI?

The default memory limit in php before 5.2 was 8MB, it was increased to a default of 16MB in php 5.2. 0. It is currently a default of 128MB. To reproduce behavior of the pre 5.2 versions, explicitly set the memory limit to 8MB.

What should PHP memory limit be set to?

A typical appropriate memory limit for PHP running Drupal is 128MB per process; for sites with a lot of contributed modules or with high-memory pages, 256MB or even 512MB may be more appropriate.

How do I set the htaccess memory limit?

In case you have a . htaccess file, you can simply add the command: php_value memory_limit XM in it, to increase the memory limit to X MB.

How do I increase my memory limit?

To increase the PHP memory limit setting, edit your PHP. ini file. Increase the default value (example: Maximum amount of memory a script may consume = 128MB) of the PHP memory limit line in php. ini.


2 Answers

As PHP-CLI has a different ini file, this often leads to misconfiguration.

What we can do, for a «unix shebang» PHP shell script, is to set ini keys on the fly directly on the shebang line, like so:

#!/usr/bin/php -d memory_limit=512M
<?php
phpinfo();
exit;

Then to see if php had understood, using phpinfo():

./myphpProg | grep memory

Correct shell output should contain:

memory_limit => 512M => 512M

man php

-d foo[=bar] Define INI entry foo with value bar


Without using the Unix shebang mechanism, we can similarly pass one (or many) -d arguments in the command line, or a dedicated start-up script:

php -d memory_limit=512M myphpProg
like image 82
NVRM Avatar answered Oct 21 '22 19:10

NVRM


Add this at the very top your code of PHP ini_set("memory_limit", "2048M"); in your PHP script. Make sure to increase memory_limit according to your need.

If you keep on getting this kind of error message of exhausted memory. you can use ini_set("memory_limit", "-1");. This will set your memory limit to no limit.

Note: This will set your memory limit to no limit. Memory limit is the thing which is dependent on your OS and RAM not on PHP.

Note: Also please make sure if you are doing something on your production environment in your PHP script, whose job is to keep on adding data to there script, either in your static variables(Example: gathering multiple CSV's data) or some arrays, then it can lead to either failure of that VM or PHP process in case of complete memory exhaust.

like image 25
Sahil Gulati Avatar answered Oct 21 '22 19:10

Sahil Gulati