Перейти к основному содержимому

Ограничения размера загружаемого файла

Ограничения размера загружаемого файла

Вероятно, самый часто задаваемый вопрос на moodle.org — «Как увеличить ограничение на размер загружаемого файла?» Изменения, которые необходимо внести, одинаковы во всех версиях Moodle, просто в разных операционных системах они вносятся в разных местах. Размер загружаемого файла ограничен несколькими способами, и каждый из них в этом списке ограничивает следующие:

  1. Уровень сервера.
  2. Уровень сайта Moodle.
  3. Уровень курса.
  4. Уровень активности.

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

Физический доступ к серверу

Эти инструкции предполагают, что у вас есть полный физический и административный доступ к вашему серверу. Если вы используете размещённый сервер, вам, вероятно, придётся искать другие способы увеличения размера загружаемого файла.

У обоих методов ниже есть свои плюсы и минусы. Если вы измените файл php.ini, изменения затронут все PHP-приложения на вашем сервере. Начиная с PHP5, на вашем сервере может быть только один файл php.ini. Метод php.ini будет работать со всеми веб-серверами. Метод .htaccess повлияет только на папку и все вложенные папки, в которых он размещён, но у вас должны быть включены определённые настройки в Apache.

Ограничение размера файла — как это работает

Хост может установить ограничение на максимальный размер загружаемого файла в среде сервера, которое вы можете изменить, если хост вам это позволяет. В PHP есть настройка, которая используется для ограничения размера файла, обрабатываемого при загрузке. Хост устанавливает это значение в php.ini в зависимости от своих особенностей и потребностей клиентов. Этот размер отображается в Moodle в выпадающем списке «Администрирование > Безопасность > Настройки безопасности сайта > Максимальный размер загружаемого файла». Вы можете изменить это в любое время в соответствии с потребностями вашего сайта. На странице настроек курса также можно установить дополнительное ограничение. Ни в коем случае настройки курса не могут отменить настройки сайта, а настройки сайта не могут отменить настройки php.ini, которые не могут отменить настройки сервера. Единственное исключение из этого правила заключается в том, что вы можете изменить настройки сервера и PHP, и как это сделать, описано ниже.

Изменение файла php.ini

Эти инструкции показывают, как изменить размер загружаемого файла, отредактировав файл php.ini.

По большей части эти инструкции сводятся к следующему. В файле /etc/php5/apache2/php.ini вам нужно изменить «post_max_size», «upload_max_filesize» и «max_execution_time» на значения, соответствующие вашим потребностям, используя любой редактор, к которому вы привыкли.

Ниже приведены пошаговые инструкции для различных установок Moodle.

Инструкции для Ubuntu Linux

Эти инструкции предполагают, что вы установили стандартный пакет Moodle, PHP 5 и Apache 2 через apt-get и оставили всё как при стандартной установке. Если вы компилировали сами, я предполагаю, что вы знаете, где находятся ваши файлы php.ini! Обратите внимание, что в последней версии PHP теперь 7.2+ вам может потребоваться найти файл. Если вы запустите phpinfo(), это должно дать вам правильный путь, который будет выглядеть примерно так: /etc/php/7.3/apache2/php.ini

Вам нужно изменить следующие три параметра в файле php.ini, расположенном по адресу: /etc/php5/apache2/ Вот набор инструкций для выполнения построчно.

  • Введите «sudo nano /etc/php5/apache2/php.ini».
  • Нажмите Ctrl и W и введите «post_max_size».
  • Измените значение на количество Мб, которое вы хотите, чтобы ваш сайт принимал при загрузке.
  • Нажмите Ctrl и W и введите «upload_max_filesize».
  • Измените значение на количество Мб, которое вы хотите, чтобы ваш сайт принимал при загрузке.
  • Нажмите Ctrl и W и введите «max_execution_time».
  • Измените значение на 600.
  • Нажмите Ctrl и O.
  • Нажмите Ctrl и X.
  • Введите sudo apachectl restart.

Системные администраторы NGINX также должны добавить «client_max_body_size XXXm;» в раздел «http» основного файла конфигурации nginx. (см. больше информации) если у вас есть SSL, это потребует от вас установки вышеуказанного для SSL-сервера и местоположения.

Теперь ваш новый лимит размера файла должен появиться в разделе «Управление > Безопасность > Политики сайта > Максимальный размер загружаемого файла».

Инструкции для XAMPP на Mac

Это инструкции о том, как сделать это для Moodle на Mac с помощью примера пакета загрузки XAMPP. (Это не для производственного сервера OS X.)

  • Закройте Apache и MySQL, если они работают через приложение XAMPP Control, и закройте приложение XAMPP Control.
  • Откройте Finder и перейдите в Applications.
  • Перейдите вниз и откройте папку XAMPP / xamppfiles / etc.
  • Откройте файл php.ini с помощью TextEdit (или другого текстового редактора).
  • Найдите параметр post_max_size и увеличьте его с 128 Мб (по умолчанию) до большего значения; максимальное значение — 500 Мб.
  • Сделайте то же самое для upload_max_filesize (сделайте числа одинаковыми).
  • Найдите параметр max_execution_time и увеличьте его до 300 (или больше, если у вас возникают тайм-ауты при загрузке).
  • Сохраните файл php.ini.
  • Перезапустите Apache и MySQL как обычно.

Примечание: при сохранении файла php.ini может появиться ошибка «отказ в доступе», если вы не вошли в систему с правами администратора Mac. Чтобы обойти это, вы можете временно сделать каталог /etc, в котором находится файл php.ini, доступным для записи. Как это сделать, смотрите здесь или здесь.

Инструкции для Windows XP и Server 2003

Эти инструкции предполагают, что вы скачали последний ZIP-пакет PHP 5.3.x для Windows и распаковали его в C:\PHP. Если вы установили PHP в другое место, то замените все ссылки на «C:\PHP» на место, где вы установили PHP.

lightbulb.png

Скачайте и установите любой текстовый редактор, который может сохранять файл в формате UTF-8, Crimson Editor — один из таких, NotePad++ — другой, используйте его вместо Wordpad или Notepad! Проблема в том, что WordPad или Notepad включают скрытые символы, которые могут быть несовместимы с требованиями PHP.

  • Откройте C:\PHP.
  • Щёлкните правой кнопкой мыши файл php.ini в этой папке и выберите «Открыть с...» выбрав редактор по вашему выбору.
  • Нажмите Ctrl + F и введите «post_max_size» (нажмите «Найти...», где необходимо).
  • Измените значение на количество Мб, которое вы хотите, чтобы ваш сайт принимал при загрузке.
  • Нажмите Ctrl + F и введите «upload_max_filesize» (нажмите «Найти...», где необходимо).
  • Измените значение на количество Мб, которое вы хотите, чтобы ваш сайт принимал при загрузке.
  • Нажмите Ctrl + F и введите «max_execution_time» (нажмите «Найти...», где необходимо).
  • Измените значение на 600.
  • Нажмите Ctrl и S или кнопку сохранения.
  • Выйдите из редактора.
  • Перезапустите веб-сервер, чтобы перезагрузить PHP с изменёнными настройками.
    • Для IIS
    • Откройте меню «Пуск» на сервере и выберите «Выполнить».
    • Введите «iisreset /RESTART».
    • Для Apache 2 и Windows XP
    • Перейдите в «Пуск» > «Все программы» > Apache > «Перезапуск».
    • Для Apache 2 и Windows Server
    • Следующая команда будет работать, пока вы установили Apache 2 как службу на вашем Windows Server.
    • Откройте меню «Пуск» на сервере и выберите «Выполнить».
    • Введите «httpd -k restart».

Теперь ваш новый лимит размера файла должен появиться в разделе «Управление > Безопасность > Политики сайта > Максимальный размер загружаемого файла».

Примечание: Эти инструкции также охватывают установщик Xampp для Windows. Просто замените C:\PHP на C:\Moodle\server\php и перезапустите Moodle обычным способом остановки и запуска.

Изменение файла конфигурации Apache

Инструкции для Ubuntu Linux

Вам также может потребоваться отредактировать файл config.php в каталоге Moodle:

  • Введите «gksudo nautilus», чтобы получить права суперпользователя.
  • Перейдите в /etc/moodle.
  • Откройте apache.conf.
  • Перейдите в раздел «<IfModule mod_php5.c>».
  • Измените «php_value upload_max_filesize = 2M» на более высокое значение.
  • Измените «