https://help.superhosting.bg/memory-limit.html
  • bg

Хостинг, Домейни, Виртуални сървъри (VPS), Managed VPS, SSL сертификати

Как да увелича паметта за php скриптове (memory_limit)?

PHP
php, php директива, памет, memory_limit, php.ini, .htaccess

Понякога за изпълнението на php скриптовете е необходима повече памет от стандартно зададената стойност. Съобщението, което може да се появи, при недостиг на памет, е следното:

Fatal error: Allowed memory size of 33554432 bytes exhausted (tried to allocate 64 bytes) in /home/<cpanel_name>/public_html/your-script.php on line XX.

Увеличаването на паметта за PHP може да се извърши автоматично през cPanel -> PHP Manager by SuperHosting или ръчно с php.ini файл.

PHP Manager by SuperHosting

Промяна на PHP директивиПри всички хостинг планове промяната на директивата memory_limit може да се извърши през "PHP Manager by Superhosting".

След като влезете в контролния панел cPanel, изберете "PHP Manager by SuperHosting". В секцията "Промяна на PHP директиви" ще се зареди следния прозорец:

Срещу всяка от директивите има падащо меню, чрез което можете да изберете желаната стойност. След кликване на бутона "Запази" стойността ще бъде променена за целия хостинг акаунт и всички сайтове, разположени в него.

php.ini

PHP директивите може да се променят със собствен (не-системен) php.ini файл.

Първо е необходимо да проверите какъв е протоколът за обработка на PHP заявките (CGI или FastCGI) във вашия хостинг акаунт. За улеснение сме подготвили скрипт, който дава информация за това и инструкции за промяна на директиви. Името на скрипта е php.php и можете да го свалите от тук. Необходимо е да го разположите в хостинг акаунта в директорията на сайта, за който желаете промени. След като го качите в хостинг акаунта, можете да го стартирате по следния начин:

http://mysupersite.com/php.php

заменете mysupersite.com с името на вашия домейн

След това следвайте инструкциите за промяна, които ще видите на заредилата се страница.

FastCGI

В home директорията на акаунта ще намерите системен php-fcgi.ini файл. Можете да го редактирате през файловия мениджър или чрез текстов редактор. Необходимо е да промените стойността на директивата memory_limit по следния начин:

memory_limit = 128M

В случая е зададена примерна стойност от 128 MB, но може да бъде зададена и по-висока.

Препоръчително е да увеличавате memory_limit с толкова, колкото е необходимо. Не е добра практика да се задава твърде голяма стойност.

За да може php-fcgi.ini файлът да важи за хостинг акаунта, е необходимо да бъде указано във файл php.fcgi. Проверете дали в home директорията на акаунта има съществуващ файл с това име. В случай че не е наличен, то можете да го създадете.

Важно: Правата на файл php.fcgi трябва да бъдат 755.

Проверете дали във файла има следните редове и ако ги няма, то е необходимо да ги добавите:

#!/bin/bash
DEFAULTPHPINI=/home/cpaneluser/php-fcgi.ini
exec /usr/bin/php -c ${DEFAULTPHPINI}
заменете cpaneluser с потребителското име за контролния панел cPanel

За да влязат в сила промените за целия хостинг акаунт, е необходимо да проверите дали в .htaccess файл в home директорията има добавени следните редове. Ако ги няма, то е необходимо да ги добавите:

<IfModule mod_fcgid.c>
AddHandler fcgid-script .php
FcgidWrapper /home/cpaneluser/php.fcgi .php
</IfModule>
заменете cpaneluser с потребителското име за контролния панел cPanel

След като сте извършили посочените действия, можете да проверите стойността за директивата memory_limit, като използвате функцията phpinfo().

CGI

В home директорията на акаунта ще намерите системен php.ini файл. Можете да го редактирате през файловия мениджър или чрез текстов редактор. Необходимо е да промените стойността на директивата memory_limit по следния начин:

memory_limit = 128M

В случая е зададена примерна стойност от 128 MB, но може да бъде зададена и по-висока.

Препоръчително е да увеличавате memory_limit с толкова, колкото е необходимо. Не е добра практика да се задава твърде голяма стойност.

Стандартно php.ini файлът има действие само в директорията, в която се намира. За да оказва влияние за всички поддиректории, трябва да добавите в .htaccess файл следните редове:

<IfModule mod_suphp.c>
suPHP_ConfigPath /home/cpaneluser/dir/php.ini
</IfModule>
заменете cpaneluser с потребителското име за контролния панел cPanel

След като сте извършили посочените действия, можете да проверите стойността за директивата memory_limit, като използвате функцията phpinfo().

500px270px
SuperHosting.BG

Коментари

avatar
  Абониране  
Уведоми ме при
Всички права запазени © 2005-2018 , www.superhosting.bg