Как увеличить лимит памяти PHP выше 256 МБ для веб-сайтов, интенсивно использующих память — поддержка
s.doig #1Краткое описание проблемы
Я пытался установить ограничение памяти PHP на 1024 МБ через:
- wp-config.php
- .htaccess
- php.ini
, чтобы мой веб-сайт WP с интенсивным использованием памяти функционировал должным образом, но /local-phpinfo.php говорит, что ограничение памяти жестко запрограммировано @ 256 МБ.
Почему существует этот искусственный предел?
Мы не можем запускать веб-сайты WP, которым требуется более 256 МБ?
Вопросы по устранению неполадок
Сведения о системе
Какая версия Local используется? 6.4.3.
Какая операционная система (ОС) и версия ОС используются?
- Windows 11 Pro 64-разрядная версия.
Прикрепить локальный журнал. Инструкции о том, как это сделать, см. в этом справочном документе:
- local-logs.zip (33,1 КБ)
Привет @s.doig!
Эти значения можно редактировать в файле php.ini.hbs
в папке conf/php/
сайта. Вы можете открыть этот файл в текстовом редакторе по вашему выбору и сохранить обновленные значения. После внесения любых изменений обязательно остановите сайт и перезапустите его, чтобы Local мог скомпилировать и использовать эти новые настройки.
Дополнительные сведения об устранении неполадок с локальной производительностью см. здесь!
местный — 23 сентября 21Устранение неполадок с производительностью в Local
Проблемы с производительностью трудно исправить! Лучше всего сосредоточиться на том, где происходит медлительность. Вот несколько советов, которые помогут вам добиться успеха и убедиться, что все работает так, как…
с.дойг #4 Ник-Б:файл
php.ini.hbs
в папкеconf/php/
сайта.
Привет, Ник,
Я внес коррективы в этот файл, перезапустил локальный сервер, и лимит памяти остается @ 256M.
Ник-Б #5Привет, @s.doig. Иногда на компьютерах с Windows мы видим, что приложения безопасности, антивирусы или брандмауэры блокируют локальные действия. Есть ли что-то с вашей стороны, что может помешать этому?
Для дальнейшего устранения неполадок вы можете взглянуть на этот справочный документ: Что такое режим маршрутизатора? — Местный
Если у вас все еще есть проблемы, вы можете поделиться здесь копией своего журнала? Получение локального файла журнала
s. doig #6Привет @Nick-B
Я не думаю, что что-то блокирует локальные действия.
Прикреплены локальные журналы.
local-logs.zip (79,7 КБ)
Ник-Б #7Привет, @s.doig. Я все еще вижу некоторые ошибки, подобные вашей другой теме здесь: Проблема с созданием сайта: «команда не выполнена… отсутствует параметр —admin_email»
Вы изменили свой адрес электронной почты и пароль, чтобы удалить все недопустимые символы?
с.дойг #8Привет @Nick-B
У меня нет проблем с электронной почтой или паролем моей учетной записи администратора.
Я не думаю, что что-то блокирует локальные действия.
Привет @s.doig Я знаю, что вы упомянули, что «я не думаю, что что-то блокирует локальные действия». но взглянув еще раз на журналы, я вижу, что что-то действительно может блокировать. Была предпринята попытка доступа к сокету способом, запрещенным его доступом.
Вы можете обратиться к этому руководству, чтобы попытаться изменить режим маршрутизатора или устранить любые конфликты портов, вызванные приложениями безопасности или другими инструментами разработки. Что такое режим маршрутизатора? — Местный
Привет @Nick-B
Дата этой ошибки 19. 10.2022, 8 дней назад.
С тех пор такого не было.
Ник-Б #11Привет @s.doig, если это так, и вы по-прежнему не можете сохранить изменения памяти, вам может потребоваться более агрессивный сброс.
Экспортируйте все сайты, которые у вас есть на локальном компьютере, и сохраните их в папке где-нибудь на вашем компьютере.
Полностью удалить Local с вашего компьютера.
Установите последнюю версию Local по этой ссылке.
После установки перезагрузите компьютер.
После перезагрузки и включения компьютера закройте все приложения, автоматически работающие в фоновом режиме (включая антивирус, брандмауэр и другие приложения для разработчиков).
Проверьте, сохраняется ли проблема.
Я только что воспроизвел шаги по изменению памяти в своем локальном приложении, и оно по-прежнему нормально работает в последней версии. Эти шаги снова:
- Стартовая площадка
- Открыть
файл php.ini.hbs
в текстовом редакторе - Отрегулируйте память до желаемого предела, сохраните файл
- Остановить сайт
- Запустить сайт снова
- Перепроверьте файл, изменения должны остаться
Прежде чем я это сделаю, @Nick-B, какой объем памяти вы можете установить? Он больше 256 МБ?
Ник-Б №13Привет, @s.doig. Да, вы можете установить все, что захотите. Вы ограничены не локальным приложением, а вашей собственной машиной. Я проверил это в своем собственном приложении и без проблем установил, например, 512 МБ.
Плохо… Я редактировал php.ini.hbs в папке версии php, а не в папке php. Редактировать последний правильный путь
1 Нравится
система Закрыто №15Эта тема была автоматически закрыта через 90 дней после последнего ответа. Новые ответы больше не допускаются.
Проблемы с конфигурацией PHP
Настройки PHP
Для обработки загрузки больших файлов вам необходимо адаптировать следующие настройки PHP. Значение должно быть размером самого большого файла, который вы хотите загрузить, например, если вы хотите загрузить файлы размером до 50 МБ, вам потребуются следующие настройки.
- upload_max_filesize: 50 МБ
- post_max_size: 51 МБ
- memory_limit: 55 МБ
- max_input_time: -1 (по умолчанию) или очень большое значение, например 600 (10 минут)
Вам нужно убедиться, что memory_limit
больше, чем post_max_size
, что должно быть немного больше, чем upload_max_filesize
.
Не все хосты позволяют изменять значения конфигурации PHP через файлы php.ini
или файлы .htaccess
. Иногда можно изменить только некоторые элементы, а другие нет.
Например, ваш лимит памяти PHP установлен на 8 МБ, но вы хотите удвоить это значение. В вашем файле .htaccess
у вас есть эта строка: php_value memory_limit 16M
Чтобы убедиться, что сделанное вами изменение действительно имеет какое-либо значение, вы можете использовать информацию о системе Joomla (Справка > Информация о системе > Информация о PHP).
Теперь найдите memory_limit
на этой странице. В столбце «Основное значение» справа вы видите исходное значение 8M. В левом столбце «Локальное значение» вы видите фактическое значение. Если это не ваше новое значение 16M, то ваш хост не поддерживает переопределение этого значения. Вам придется попросить своего хоста изменить его.
Некоторые ресурсы о том, как настроить PHP для загрузки больших файлов:
- http://www.developershome.com/wap/wapUpload/wap_upload.asp?page=php2
- http://www.radinks.com /upload/config.php
Настройки Joomla
Убедитесь, что время жизни сеанса Joomla достаточно велико, чтобы можно было выполнять большие (или медленные) загрузки.
- Глобальная конфигурация
- Вкладка «Система»
- Установить «Время жизни сеанса»
Хорошее значение — не менее 30 минут, если вы имеете дело с большими загрузками.
Временная папка
PHP загружает файлы во временную директорию, как указано параметром upload_tmp_dir. Каталог должен быть доступен для записи любому пользователю, от имени которого работает PHP. Если не указано, PHP будет использовать системное значение по умолчанию.
В Unix каталог /tmp часто представляет собой отдельный раздел диска, часто размер раздела составляет 16 МБ. Когда вы пытаетесь загрузить большие файлы, убедитесь, что этот раздел достаточно большой, или измените настройки upload_tmp_dir
, чтобы они указывали на другой каталог.
Имейте в виду, что если каталог, указанный в upload_tmp_dir
, недоступен для записи, PHP возвращается к системному временному каталогу по умолчанию. Если open_basedir включен, то для успешной загрузки должен быть разрешен системный каталог по умолчанию.
Веб-сервер
В зависимости от того, какой веб-сервер вы используете, вам также может потребоваться изменить конфигурацию, чтобы разрешить загрузку больших файлов. Если вы не уверены, какой тип сервера вы используете или как изменить его конфигурацию, попросите своего веб-хостинга изменить его.
Apache
Веб-сервер Apache имеет директиву конфигурации LimitRequestBody
, которая ограничивает размер всех данных POST независимо от используемого языка веб-скриптов. Вам нужно будет изменить это значение на большее или полностью удалить запись.
В зависимости от того, как Apache общается с PHP, могут потребоваться дополнительные изменения:
- Apache с mod_fcgid: установите для
FcgidMaxRequestLen
достаточно высокое значение.
Nginx
Вам необходимо увеличить директиву client_max_body_size
в конфигурации Nginx.
Существует несколько способов увеличить лимит памяти PHP на вашем сервере, однако вам нужно использовать только один из этих методов в зависимости от конфигурации вашего сервера.
Типичный предел памяти для запуска сайта Joomla на вашем сервере может составлять 128 МБ, но для сайтов, которые используют множество расширений или страниц с большим объемом памяти, вы можете обнаружить, что 256 МБ является более подходящим верхним пределом.
Взаимосвязь между масштабируемостью и ограничением памяти PHP
Увеличение объема памяти, который может использовать каждый процесс PHP, приведет к уменьшению максимального числа одновременных процессов, которые может выполнять сервер. Максимальное количество запросов страниц, которые сервер может обработать одновременно, связано с количеством одновременно запущенных процессов: чем больше запущено процессов, тем меньше запросов страниц может быть обслужено.
Следующий пример относится к серверу с 4 ГБ доступной памяти для процессов PHP (после учета других процессов сервера, таких как операционная система, Apache и т. д.) 256 МБ
Как изменить ограничения памяти PHP
PHP.ini вашего веб-сервера
Если у вас есть доступ к файлу PHP ini сервера, рекомендуется использовать этот подход для изменения лимита памяти PHP. Этот метод может быть недоступен для некоторых сред общего хостинга, хотя хостинг-провайдер может внести коррективы за вас. Во всех случаях этот метод повлияет на все веб-сайты, работающие на сервере.
- Найдите файл php. ini сервера
- Найдите лимит памяти PHP
memory_limit = 55M; Максимальный объем памяти, который может потреблять скрипт (55 МБ)
Примечание всегда используйте «M» для указания количества мегабайт, а не «MB». Если в вашем файле PHP.ini еще нет строкиmemory limit
, добавьте ее в конец файла. - Перезапустите Apache
Если PHP работает как CGI/FastCGI
Если PHP работает на вашем сервере как CGI/FastCGI, вы можете добавить файл php.ini в корневую папку Joomla. Добавьте в этот файл php.ini следующую строку: memory_limit = 55M
PHP 5.3 и выше
PHP 5.3+ позволяет изменить лимит памяти, поместив файл .user.ini в папку public_html веб-сайта, некоторые хосты cPanel разрешают только этот метод. Добавьте следующую строку в этот файл .user.ini: memory_limit = 55M
.htaccess
Этот метод работает, только если PHP работает как модуль Apache на вашем сервере.
Отредактируйте файл .htaccess в корневой папке Joomla и добавьте в конец файла следующую строку: php_value memory_limit 55M
Среды общего хостинга
Доступ к настройке ограничения памяти PHP ограничен в некоторых средах общего хостинга. Если вы не можете внести изменения в файл php.ini самостоятельно, попросите вашего хостинг-провайдера сделать это за вас.
Изменение php.ini в XAMPP/WAMP или MAMP
Если вы используете XAMPP или WAMP в качестве локального хост-сервера, может быть два файла php.ini, один в каталоге PHP
, а другой в каталоге Каталог Apache/bin
. Чтобы изменить лимит памяти, отредактируйте файл php.ini, который находится в каталоге Apache/bin
.
Если вы используете MAMP или MAMP Pro в качестве локального хоста, ограничение памяти php будет установлено на значение по умолчанию PHP, равное 8 МБ. Чтобы настроить лимит памяти, откройте файл php.ini и измените лимит в следующей строке: memory_limit = 8M ; Максимальный объем памяти, который может потреблять сценарий (8 МБ)
Файл php. ini находится в папке /Applications/MAMP/conf/php5/
и/или в каталоге /Applications/MAMP/conf/php7/
.
В MAMP Pro вы не редактируете файл php.ini напрямую, так как он перезаписывается каждый раз при запуске сервера. Чтобы изменить лимит памяти php для MAMP Pro, отредактируйте вместо этого соответствующий шаблон (Файл > Редактировать шаблон > …)
Проверьте, что ваши изменения сработали
Всякий раз, когда вы вносите изменения в файл php.ini, вы можете проверить, что изменения сработали, посетив административную область вашего сайта Joomla и выбрав Вкладка «Информация о PHP» из «Система» > «Информация о системе» в верхнем меню. На вкладке «Информация о PHP» найдите строку, содержащую информацию memory_limit
.
Максимальный размер загружаемого файла одного вложения: post_max_size
или upload_max_filesize
, в зависимости от того, что меньше. Значения PHP по умолчанию составляют 8 МБ для post_max_size
и 2 МБ для upload_max_filesize