Инструменты пользователя

Инструменты сайта


Боковая панель

Связь

php.ini

php.ini

php.ini - конфигурационный файл PHP.

  • Расположение файла php.ini в разных ОС. Ini файлов может быть много, чтобы узнать какой php.ini загружен, нужно узнать чему равен параметр "Loaded Configuration File", например через функцию phpinfo()
    Debian GNU/Linux:/etc/php5/apache2/php.ini 
    Ubuntu GNU/Linux:/etc/php5/apache2/php.ini 
    FreeBSD:/usr/local/etc/php.ini
  • Получить значение параметра из php.ini
    echo ini_get('post_max_size');

Директивы PHP

  • register_long_arrays Off - сообщает PHP, следует ли регистрировать устаревшие длинные предопределенные переменные типа $HTTP_*_VARS. Если вы их не используете, рекомендуем отключить их из соображений производительности. Вместо них следует использовать суперглобальные массивы, например $_GET. Эта директива стала доступна начиная с версии PHP 5.0.0.
  • register_globals Off - запрещает регистрацию переменных, полученных методом POST или GET в глобальный массив $GLOBALS. Данная возможность была помечена УСТАРЕВШЕЙ начиная с версии PHP 5.3.0 и была УДАЛЕНА в версии PHP 5.4.0.

Как увеличить максимальный размер закачиваемого файла по HTTP с помощью PHP?

В php.ini настройте параметры:

  • upload_max_filesize 20M # максимальный размер закачиваемого файла - 20 Мб
  • post_max_size 28M # объем данных передаваемых методом POST. post_max_size должен превышать размер upload_max_filesize
  • php_value max_input_time 864000 # время приема данных
  • php_value max_execution_time 864000 # время выполнения скрипта
  • может быть установлен ModSecurity - нужно проверить параметр SecRequestBodyLimit

Персональный php.ini

Чтобы PHP увидел ваш php.ini файл, вам нужно добавить в htaccess одну строку. /home/pathtodir - полный путь к каталогу, в котором находится ваш php.ini файл.

SetEnv PHPRC /home/pathtodir

Изменить время выполнения скрипта

Ограничение по ресурсам:

  • max_execution_time = число

Устанавливется максимальное возможное время выполнения скрипта в секундах.

  • max_input_time = число

Максимально возможное время в секундах, которое скрипт может потратить на обработку загружаемых данных.

  • memory_limit = 8m

Максимальный объем памяти, выделяемый сценарию, составляет, например, 8 Мбайт.

Fatal error: Allowed memory size of

Источник: Что означает "Fatal error: Allowed memory size of 33554432 bytes exhausted (tried to allocate ....."

Fatal error: Allowed memory size of 54554432 bytes exhausted (tried to allocate ….."

Эта ошибка означает, что ваш скрипт для выполнения требует памяти больше, чем разрешено в настройках PHP на сервере. Т.е. запрашиваемое значение превышает максимальное количество оперативной памяти предоставляемого пользовательскому аккаунту виртуальным хостингом.

Решение:

  • Попробовать самостоятельно изменить это значение, добавив в самое начала index.php (расположенного в корне сайта) следующие строчки:
    <?php ini_set("memory_limit", "32M"); ?>

    это если хостер не отключил поддержку ini_set в настройках сервера.

  • Положить в корень сайта файл .htaccess следующего содержания:
    php_value memory_limit 32M

    лимит можно изменять самостоятельно, можно поставить и 64M но не наглеть :) Если же такой файл уже есть в корне сайта — просто добавьте в него приведенную выше строку. Если у хостера PHP работает ка PHP-CGI через suPHP, то это может вызвать ошибку 500, значить использовать директивы php_flag, php_value в файле .htaccess невозможно!

  • Некоторые хостеры поддерживают работу php.ini у клиента, т.е. вы можете самостоятельно делать свои настройки PHP для своей учетной записи. А значить создайте файл php.ini в корне сайта и добавьте следующий код:
    memory_limit = 32M
  • Если это не помогло — обратитесь к администратору хостинга и попросите увеличить количество доступной памяти для PHP.

php.ini.txt · Последние изменения: 2015/09/19 12:09 (внешнее изменение)