When running a PHP script from command line interface (CLI), a higher memory limit may be required in order for the script to be successfully executed. This can be achieved using the “-d” or “–define” option in the command. According to the manual:
This option allows you to set a custom value for any of the configuration directives allowed in php.ini.
An example of running a PHP script in CLI with custom memory limit:
1 |
php -d memory_limit=128M my_script.php |
Of course the “-d” or “–define” option is not limited to the memory limit directive; it can be use to alter other php.ini directives as well.
Life Saver!!!!
I wish more people had a knack for writing things in a few short and sweet sentences.
Thanks, was getting a headache already 🙂
or you can use -d memory_limit=-1 to unlimit the restriction.
Thank you! It already woks for me!
Thanks.
You forgot a ‘_’ in memory_limit in your post
Safed my day. Thx.
Like a boss (y)
thanks it was a life saver today!
Amazing! Worked like a charm!
If you wanted to set multiple directives, what would it look like?
Thanks
In this case you should create a custom php.ini file and pass it as option for the command. For example, create myphp.ini file and add your custom directives each on a line:
#myphp.ini
memory_limit = 128M
max_input_vars = 10
Then run the command like:
php -c myphp.ini my_script.php
Are these permanent changes to the php.ini or just temporary?
The changes are temporary and are applied only to the executed script.
If you want to make permanent changes you need to edit the configuration file from the server (php.ini).