Knowledgebase — PAMIR WEB HOSTING LLC.

26 Articles Basics of cPanel (Videos)

Video tutorials on how to manage your website using cPanel. For example, Generate Backup, change Style, etc., using cPanel.

6 Articles Billing 11 Articles cPanel Database Tutorials (Videos)

Video tutorials on database management in cPanel. For example, Creation, renaming, deletion etc., of database in cPanel.

10 Articles cPanel Domain Management (Videos)

Video tutorials on Domain Management using cPanel. Creation, redirection etc., of domains and subdomains.

4 Articles cPanel Email (Videos)

Video tutorials on how to manage your Email account in cPanel.

4 Articles cPanel FTP (Videos)

Video tutorials on the creation and management of FTP account using cPanel.

32 Articles cPanel/WHM 2 Articles DirectAdmin 48 Articles DirectAdmin

A series of video tutorials on the DirectAdmin control panel that helps you manage your websites.

8 Articles eMail/Webmail 5 Articles Features 5 Articles FileZilla Client Tutorials (Videos)

Video Tutorials on installation and management of FileZilla FTP client.

4 Articles FTP Issues 14 Articles Hosting Issue. 3 Articles Joomla!/WordPress 6 Articles Mozila Thunderbird Tutorials (Videos)

Video Tutorials on setting up and management of email account(s) in Mozila Thunderbird Email client.

6 Articles Outlook 2019 Tutorials (Videos)

Video Tutorials on setting up and management of email account(s) in Outlook 2019 Email client.

46 Articles Plesk (Videos)

Video Tutorials for users of the Plesk control panel.

2 Articles Plesk/Onyx 12 Articles Pre-Sale Questions 3 Articles Resource Limits 17 Articles Security Issue 7 Articles Server Issues 5 Articles Server Modules 18 Articles SolusVM Tutorials (Videos)

Video Tutorials on the management of VPS using SolusVM control panel. Video tutorials on OS installation.

10 Articles SQL/Databases 10 Articles Tech Support 3 Articles Tips and Tricks 19 Articles Virtualizor (Videos)

Video tutorials on the management of Virtual Private Servers using Virtualizor.

10 Articles VPS/Dedicated

Most Popular Articles

How can I login into cPanel / WHM / Webmail? You can login to cPanel by : http://cpanel.yourdomain.com http://yourdomain.com:2082… HowTo: Use Nginx As Reverse Proxy Server Nginx is an open source Web server and a reverse proxy server. You can use nginx for a load… Server error 554 Service unavailable Client host blocked using zen.spamhaus.org Problem Description You receive an error like: «Server error: ‘554 5.7.1 Service unavailable;… Cpanel update failure in upcp upcp errors on your cpanel update Most of time cpanel update won’t get any errors. If you…

Install Git cd /usr/src/wget http://git-core. googlecode.com/files/git-1.7.9.4.tar.gztar xvf…


Loading…

Copyright © 2023 PAMIR WEB HOSTING LLC.. All Rights Reserved.

We Accept:

Choose language

العربية

Azerbaijani

Català

中文

Hrvatski

Čeština

Dansk

Nederlands

English

Estonian

Persian

Français

Deutsch

עברית

Magyar

Italiano

Macedonian

Norwegian

Português

Português

Română

Русский

Español

Svenska

Türkçe

Українська

Choose Currency

$ USD

AFN AFN

PHP memory_limit — понимание и увеличение этого параметра

6 февраля 2023 г. by Hayden James , in Blog Linux

PHP memory_limit устанавливается для каждого скрипта точно так же, как ограничение скорости на шоссе устанавливается для каждого транспортного средства. Например, хотя ограничение памяти PHP может быть установлено на уровне 1 ГБ, это не означает, что скрипты будут накапливаться, чтобы использовать этот 1 ГБ. Давайте быстро взглянем на , разобравшись с настройкой PHP memory_limit

.

 

PHP memory_limit является настройкой для каждого скрипта

Документация PHP.net говорит об этом так:

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

Источник: http://php.net/manual/en/ini.core.php#ini.memory-limit

В отличие, скажем, от параметров key_buffer_size или innodb_buffer_pool в MySQL, параметр memory_limit в PHP имеет значение , а не . Это пространство для хранения, в котором несколько сценариев PHP объединяются или расширяются. Скорее это лимит на скрипт . PHP memory_limit – это максимальный объем памяти сервера, который может потреблять

одиночный PHP-скрипт. При блокировке результирующий вывод ошибки выглядит примерно так:

 Неустранимая ошибка: разрешенный размер памяти x байтов исчерпан (попытка выделить x байтов) в /path/to/php/script 

или вот так:

 Неустранимая ошибка PHP: недостаточно памяти (выделено x) (попытка выделить x байтов) в /path/to/php/script 

Так, например, если одновременно запрашиваются два или более скрипта, каждый из них полностью независим от другого. Они не используют параметр memory_limit. Помните, PHP не предназначен и не поддерживает многопоточность. Таким образом, если пять (5) PHP-скриптов одновременно используют по 100 МБ каждый, это составит 500 МБ использования памяти PHP, а ограничение памяти PHP в 128 МБ не будет достигнуто.

Тем не менее, для сценариев, которые запрашивают другие встроенные сценарии PHP с помощью require, include или include_once, это ограничение затем наследуется и используется всеми включенными сценариями, которые зависят от родительского сценария.

«Инструкция включения берет весь текст/код/разметку, которые существуют в указанном файле, и копирует их в файл, в котором используется инструкция включения. Функция require() идентична include(), за исключением того, что она по-другому обрабатывает ошибки. При возникновении ошибки функция include() выдает предупреждение, но скрипт продолжает выполнение. Функция require() выдает фатальную ошибку, и скрипт останавливается». – Школы W3.

«Операция require_once() идентична require(), за исключением того, что PHP проверит, был ли файл уже включен, и если да, то не будет включать (требовать) его снова». – php.net


PHP memory_limit устанавливается для каждого скрипта точно так же, как ограничение скорости на шоссе определяется для каждого транспортного средства.

Теперь об исходном примере, упомянутом в начале. Меньшее значение 128M всегда лучше, потому что, если PHP-скрипты пытаются использовать больше 128M, эти скрипты теперь будут возвращать ошибки превышения лимита памяти. В приведенной выше проблеме это было не так, поэтому независимо от настройки memory_limit 128M или 1G она вступает в игру только при наличии неэффективных сценариев.

К счастью, настройка PHP memory_limit блокирует неэффективный код, предупреждая вас о необходимости его оптимизации. Пока не исправлено, вы можете временно увеличить PHP memory_limit, чтобы ваше веб-приложение не стало непригодным для использования из-за ошибок PHP нехватки памяти.

Если на вашем сервере нет доступной памяти, вам иногда придется решать, увеличить ли PHP memory_limit для соответствия требованиям скриптов или оптимизировать свой код. Было бы лучше, если бы вы всегда оптимизировали как предпочтительный вариант, когда это возможно. Кроме того, вы можете увеличить лимит памяти PHP для определенных веб-сайтов. Один из способов — разместить файл php.ini в корневом каталоге сайта. Вы даже можете установить ограничение для конкретного scriptname.php. Например, используя ini_set(‘memory_limit’,’256MB’).

 

Как увеличить PHP

memory_limit

Чтобы увеличить ограничение памяти PHP, отредактируйте файл PHP.ini. Увеличьте значение по умолчанию (пример: Максимальный объем памяти, который может потреблять скрипт = 128 МБ) строки PHP

memory limit в php.ini.

 memory_limit = 1024M 

Кроме того, вы можете отредактировать файл .htaccess (не рекомендуется. См. Производительность Apache: отключить . htaccess)

 php_value memory_limit 1024M 

Если у вас нет доступа к этим файлам или у вас нет опыта для внесения этого изменения, вы можете связаться со своим веб-хостингом и попросить его увеличить лимит памяти PHP.

 

Первоначально опубликовано: 18 сентября 2017 г.
Последнее обновление: 6 февраля 2023 г.

 

Метки: память, производительность, php

Challenge: ограничение памяти PHP — ℹ️ Support

Mara95 1

После установки на странице «Администрирование > Обзор» появляется предупреждение «Ограничение памяти PHP ниже рекомендуемого значения 512 МБ».

Однако я уже скорректировал значение на 1 ГБ в php.ini

И уже проверил этой командой, какая версия используется:

 php -i |grep php. ini
 

→ Файл конфигурации ( php.ini ) Путь => /etc/php/8.0/cli

Загруженный файл конфигурации => /etc/php/8.0/cli/ php.ini

Он был установлен под Ubuntu со стеком LAMP в облаке Hetzner.

У кого-нибудь есть идеи, что еще это может быть?

Системный хранитель 2

Эй,
Запуск php из командной строки имеет другой php.ini, чем тот, который используется веб-сервером, обратите внимание на часть «cli» в пути. Взгляните на /etc/php/8.0/fpm/ 9Например, 0125, если вы используете fpm.

2 лайка

Мара95 3

SysKeeper:

/etc/php/8. 0/

Спасибо за быстрый ответ!

root@…:~# cd /etc/php/8.0/
root@…:/etc/php/8.0# ls

apache2 cli доступные моды

Не похоже, что я использую fpm. Что это такое?

Системный хранитель 4

Существуют разные способы обработки PHP на вашем сервере, один из них — запустить его как модуль apache 2 (mod_php), другой (обычно более быстрый) — запустить его как отдельный процесс (php- футов в минуту). В зависимости от того, что вы используете, у вас есть разные местоположения для текущего используемого php.ini.

При этом похоже, что вы используете mod_php, поэтому я думаю, что правильный php.ini должен находиться в /etc/php/8.0/apache2/php.ini.

2 лайка

Mara95 5

Верно! Я использую mod_php и более того я уже проверил /etc/php/8.0/apache2/php.ini и там тоже установлено limit_memory = 1G.

Я думаю, что это должно сработать, но я все еще получаю это сообщение об ошибке, и я впадаю в отчаяние.

системный хранитель 6

Вы перезагрузили/перезапустили apache, чтобы действительно применить новое значение конфигурации?

Мара95 7

Да, я сделал это.

Системный хранитель 8

Можете ли вы проверить, действительно ли используется PHP 8?
https:///settings/admin/serverinfo

Nextcloud был установлен вручную или вы использовали оснастку или что-то в этом роде?
Есть ли еще одна запись memory_limit где-то в этом или другом файле, которая перезаписывает вашу запись?
Любая опечатка в php.ini?
Запустите grep -R "memory_limit" /etc/php/8.0/* , чтобы узнать, определены ли другие ограничения memory_limit.

Кроме этого, у меня сейчас нет идеи.

Мара95 9

SysKeeper:

https:///settings/admin/serverinfo

 root@...:/etc/php/8.0/apache2# grep -R "memory_limit" /etc/php/8.0/*
/etc/php/8. 0/apache2/php.ini:**memory_limit** = 1G
/etc/php/8.0/cli/php.ini:**memory_limit** = 1G
корень@...:/etc/php/8.0/apache2#
 

Я установил Ubuntu с помощью 1click, а затем установил стек ламп через терминал MacOS. Это полезно?

РЕДАКТИРОВАТЬ: я проверил это по вашему URL-адресу и его версии: 8.0.19
Что очень странно, так это то, что максимальный размер для загрузки составляет 2 МБ, хотя я уже изменил это.

Системный хранитель 10

Извините, URL-адрес был неверным в моем первоначальном сообщении: https:///settings/admin/serverinfo . Просто зайдите в настройки администратора и в систему. Посмотрите, действительно ли он показывает PHP 8.0 (а не PHP 7.4 или что-то в этом роде).

Только что заметил, что вы уже открыли ветку по этому поводу: Fehler: Die PHP-Speichergrenze Liegt unterhalb des empfohlenen Wertes von 512MB
Пожалуйста, держите это в одной ветке, это только усложняет работу для всех.

Мара95 11

Я проверил это по вашему URL и его версии: 8.0.19
Что очень странно, так это то, что максимальный размер для загрузки составляет 2 МБ, хотя я уже изменил это.

Да, сначала я попробовал это на своем родном языке, но не получил много отзывов и заметил, что в подфоруме мало что происходит.

Системный хранитель 12

Возможно ли изменить эти значения в своей учетной записи hetzner?
https://docs.hetzner.com/de/konsoleh/account-management/configuration/php-configuration/#php-einstellungen

Mara95 13

В аккаунте Hetzner есть консоль, которую можно использовать как альтернативу собственному терминалу, но я не думаю, что это что-то меняет?

системный хранитель 14

Не уверен, я не знаком с Hetzner.
Другой способ — установить значения в файле .htaccess.

Мара95 15

Отличный момент, я уже читал об этом. Но я не могу найти файл - вы можете мне помочь?

системный хранитель 16

Скорее всего, он уже есть в каталоге nextcloud (он скрыт, например, используйте ls -ahl ).

Но тем не менее, если файлы php.ini правильные, значение где-то переопределяется. Поэтому, возможно, проверьте, что установлено в учетной записи hetzner, просто чтобы сравнить, совпадают ли текущие используемые значения.

Мара95 17

SysKeeper:

лс-ахл

 root@...:/var/www/files# ls -ahl
всего 176K
drwxr-xr-x 14 www-данные www-данные 4.0K 7 июн 20:22 .
drwxr-xr-x 5 root root 4.0K 6 июн 15:38 ..
drwxr-xr-x 43 www-data www-data 4.0K 19 мая 12:09 Стороннее
drwxr-xr-x 56 www-data www-data 4.0K 7 июн 13:05 приложения
-rwxr-xr-x 1 www-данные www-данные 19К 19 мая 12:04 АВТОРЫ
drwxr-xr-x 2 www-data www-data 4. 0K 7 июн 20:23 конфигурация
-rwxr-xr-x 1 www-данные www-данные 3,9K 19 мая 12:04 console.php
-rwxr-xr-x 1 www-data www-data 34K 19 мая 12:04 КОПИРОВАНИЕ
drwxr-xr-x 22 www-data www-data 4.0K 19 мая 12:09 ядро
-rwxr-xr-x 1 www-данные www-данные 6.2K 19 мая 12:04 cron.php
drwxr-xr-x 2 www-data www-data 12K 19 мая 12:04 расстояние
-rwxr-xr-x 1 www-данные www-данные 3,3K 6 июн 13:22 .htaccess
-rwxr-xr-x 1 www-data www-data 156 19 мая 12:04 index.html
-rwxr-xr-x 1 www-данные www-данные 3.4K 19 мая12:04 index.php
drwxr-xr-x 6 www-data www-data 4.0K 19 мая 12:04 lib
-rwxr-xr-x 1 www-данные www-данные 283 19 мая 12:04 occ
drwxr-xr-x 2 www-data www-data 4.0K 19 мая 12:04 ocm-provider
drwxr-xr-x 2 www-data www-data 4.0K 19 мая 12:04 ocs
drwxr-xr-x 2 www-data www-data 4.0K 19 мая 12:04 ocs-provider
-rwxr-xr-x 1 www-данные www-данные 3.1K 19 мая 12:04 public.php
-rwxr-xr-x 1 www-данные www-данные 5.3K 19 мая 12:04 remote.php
drwxr-xr-x 4 www-data www-data 4.0K 19 мая 12:04 ресурсы
-rwxr-xr-x 1 www-данные www-данные 26 19 мая12:04 robots. txt
-rwxr-xr-x 1 www-данные www-данные 2.4K 19 мая 12:04 status.php
drwxr-xr-x 3 www-data www-data 4.0K 19 мая 12:04 темы
drwxr-xr-x 2 www-data www-data 4.0K 19 мая 12:06 программа обновления
-rwxr-xr-x 1 www-data www-data 101 19 мая 12:04 .user.ini
-rwxr-xr-x 1 www-data www-data 382 19 мая 12:09 version.php
root@...:/var/www/files#
 

Спасибо! Я этого еще не знал, а теперь нашел и кое-чему научился. Что мне теперь делать?

Но терминал в Hetzner — это всего лишь альтернатива терминалу MacOS (или тому, которым вы обычно пользуетесь). Это не терминал. Кроме того, в php нет возможности что-либо изменить.

системный хранитель 18

Вам нужно добавить что-то вроде php_value memory_limit 1G в файл .htaccess

2 лайка

Мара95