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

前端 未结 3 1574
旧巷少年郎
旧巷少年郎 2021-01-05 22:39

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

相关标签:
3条回答
  • 2021-01-05 23:02

    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
    

    To better understand shebangs scripting, doing the above is similar as running the same file from the interpreter:

    php -d memory_limit=512M myphpProg
    
    0 讨论(0)
  • 2021-01-05 23:14

    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.

    0 讨论(0)
  • 2021-01-05 23:17

    The default php.ini file for the CLI in xampp is located in %xamppRoot%\php\php.ini not under %xamppRoot%\apache\bin\php.ini

    0 讨论(0)
提交回复
热议问题