php 7 php.ini upload_max_filesize не работает

Я прочитал много решений в Интернете, но все еще не могу изменить значение upload_max_filesize (upload_max_filesize всегда = 2M)

вот мой загруженный php.ini в phpinfo() :

Configuration File (php.ini) Path         /etc/php/7.0/apache2
Loaded Configuration File                    /etc/php/7.0/apache2/php.ini
Scan this dir for additional .ini files      /etc/php/7.0/apache2/conf.d 
upload_max_filesize 2M  2M
post_max_size   8M  8M

вот мой отредактированный php.ini в /etc/php/7.0/apache2/php.ini

; http://php.net/post-max-size
post_max_size = 86M
; http://php.net/upload-max-filesize
upload_max_filesize = 40M

я использую ubuntu 14.04, apache2, php7.0 (я много раз сбрасывал apache2 после каждого изменения в php.ini)


person CuongDC    schedule 23.05.2016    source источник
comment
Вам нужно проверить путь к php.ini, кажется, вы вносите изменения где-то еще. Вы можете увидеть путь ini в самом phpinfo, просто проверьте строку «Путь к файлу конфигурации (php.ini)»   -  person Afshan Shujat    schedule 23.05.2016
comment
я изменил каждый найденный файл php.ini, но все еще не могу изменить upload_max_filesize :(   -  person CuongDC    schedule 23.05.2016
comment
Перезапустите сервер и проверьте изменения.   -  person Afshan Shujat    schedule 23.05.2016
comment
я много раз перезапускал apache2, но все равно...   -  person CuongDC    schedule 23.05.2016
comment
php -i | grep -i "upload\_max\_filesize\|post\_max\_size\|max\_file\_uploads" — полезная команда, которая может помочь вам понять, что, возможно, какой-либо ini-файл, который вы обновили, либо не был перезагружен, либо вообще не является правильным файлом.   -  person Ryan    schedule 02.03.2019
comment
См. stackoverflow.com/questions/48601191/   -  person Ryan    schedule 02.03.2019
comment
Я не смог получить файл для загрузки через сайт WordPress, хотя я проверил все файлы php.ini и сделал все, что мог придумать на стороне сервера. Оказалось, что это была настройка многосайтовой сети wordpress. /wp-admin/сеть/settings.php   -  person ceotoolsuite    schedule 17.03.2020


Ответы (11)


У меня было исправление для PHP-FPM 7.1

Отредактируйте свой php.ini в

/etc/php/7.1/fpm/php.ini

Внесите изменения в любую опцию, которую вы хотите, post_max_size, upload_max_filesize, max_execution_time и так далее...

сохранить и закрыть файл.

бежать

Перезапуск службы sudo php7.1-fpm

Это будет работать!

person Sandy    schedule 03.02.2018
comment
Для меня это было так просто - и это логично. Мы изменили переменные PHP, а не Apache2. Так что перезапуск PHP — это все, что было нужно! - person Brian Milnes; 12.03.2018
comment
Конечно! Вы должны перезапустить FPM! Большое спасибо! Просто нужно было вспомнить, что - person Srivats Shankar; 22.05.2019
comment
Благодарить! Я так привык работать как MPM, где все, что вам нужно, это перезапустить apache, но после перехода на FPM (для поддержки http/2) я не понимал, что вам нужно перезапустить FPM напрямую. - person adrian; 15.11.2019
comment
В моем случае мне просто нужно было отредактировать /etc/php.ini, перезапустить httpd. Я проверил процесс php (ps ax | grep -i php) и перезапустил его: systemctl restart php-fpm Это на CentOS Stream. - person imclean; 11.06.2021

У меня было другое решение для этого. ОС: Ubuntu 16.04 Версия PHP: 7.0

Я создал файл phpinfo.php, содержащий:

<?php phpinfo() ?>

поместите файл phpinfo.php в корень вашего сайта www.mywebsite.com/phpinfo.php

Перейдите к нему и найдите строку:

Загруженный файл конфигурации: /etc/php/7.0/cgi/php.ini

Теперь вы знаете, какой файл php.ini загружается.

ssh на сервер и используйте свой любимый инструмент редактирования (у меня это nano), чтобы настроить php.ini.

измените значения в соответствии с вашими предпочтениями.

post_max_size = 128M

upload_max_filesize = 64M

Сохраните и закройте файл.

Перезапустите апач

sudo service apache2 restart

__

проверьте phpinfo.ini, если новые значения установлены.

и если они это сделают, вы готовы идти.

person Info Loopgraaf    schedule 09.11.2016
comment
/etc/php/7.0/cgi/php.ini должно быть /etc/php/7.0/cli/php.ini. В установке php по умолчанию нет каталога cgi - person dimitry_n; 02.02.2017

я разобрался!

в моей загруженной конфигурации php.ini мои значения error_reporting равны E_ALL & ~E_NOTICE & ~E_STRICT & ~E_DEPRECATED-> это неправильно!, поэтому я изменил его на

error_reporting: E_ALL, а затем перезапустите сервер apache2, теперь все работает нормально!


поэтому обратите внимание: если php.ini имеет какую-либо ошибку, будет использоваться значение по умолчанию (что означает, что upload_max_filesize всегда 2M)

person CuongDC    schedule 25.05.2016
comment
Это было причиной. Исправил мой случай. - person tggm; 16.11.2017
comment
это сработало, спасибо. Я думаю, что это очень неинтуитивно, мне очень повезло найти ваше решение. - person merodeador; 31.03.2018
comment
@CuongDC спасибо, но мне все еще нужно увидеть свои ошибки, как я могу это сделать? Я все еще получаю 2M, хотя я изменил свое значение - person Abeer Sul; 15.06.2021
comment
@AbeerSul ты перезапустил веб-сервер? - person CuongDC; 16.06.2021
comment
@CuongDC да, но это не исправило, спасибо, я наконец смог исправить здесь stackoverflow.com/questions/67967282/ - person Abeer Sul; 16.06.2021
comment
@AbeerSul нужно знать ^^ - person CuongDC; 17.06.2021

Для php7.2-fpm

Ubuntu php-fpm находится по адресу /etc/php/7.2/fpm, так что

  1. cd /etc/php/7.2/fpm
  2. sudo nano php.ini
  3. Найдите post_max_size = 512M и добавьте свой любимый размер, который вам действительно нужен.
  4. Найдите upload_max_filesize = 512M и добавьте свой любимый размер, который вам действительно нужен.
  5. Сохранить файл
  6. И последнее НЕ ЗАБУДЬТЕ ПЕРЕЗАПУСТИТЬ PHP7.2-FPM для перезапуска sudo service php7.2-fpm restart

Это все!

person Joel Jerushan    schedule 16.09.2019

Я также обнаружил, что перезапуск службы httpd не приводит к изменениям в загруженном файле конфигурации (/etc/php.ini в Fedora 29). Стоит перечислить все модули systemd и выполнить grep для строки «php»:

# systemctl list-unit-files | grep php
php-fpm.service

Перезапуск php-fpm помог мне:

# systemctl restart php-fpm
person rkhff    schedule 22.01.2019

Я использую Nginx, и мое решение состояло в том, чтобы перезапустить php-fpm.

Перезапуск Nginx ничего не дал.

sudo service php7.2-fpm restart
person Ali    schedule 13.05.2019
comment
Это сработало для меня! Благодарю вас! Я использую apache и недавно перешел на php-fpm — я понятия не имел, что это отдельный сервис! - person david_nash; 07.07.2020

у меня тоже была эта проблема!

если вы используете службу php-fpm, вам нужно найти php-fpm.conf и добавить строку

php_admin_value[upload_max_filesize] = 100M

для изменения другого типа значений

#just for example
php_flag[display_errors] = off
php_admin_value[error_log] = /var/log/fpm-php.www.log
php_admin_flag[log_errors] = on
person Ali Ghalambaz    schedule 07.09.2019
comment
Это следует выбрать как лучший ответ для тех, кто когда-либо запускал с использованием носка FPM. - person Joseph Miller; 30.07.2021

Большинство людей забывают перезапустить свой php через терминал, поэтому он не работает, если вы думаете, что все сделали правильно, обязательно перезапустите php и сервер.

person Serhat Soruklu    schedule 15.04.2018

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

перезагрузки службы sudo apache2 недостаточно

сначала добавьте конфигурации в /etc/php/7.1/fpm/php.ini и в /etc/php/7.1/cli/php.ini
#/php/ - тогда ваша версия php здесь вместо "7.1" На самом деле один из этих файлов конфигурации является активным (если вы хотите увидеть, что использовать команду <?php phpinfo() ?> в indextest.php файл и проверьте его в браузере) Затем измените эти параметры в каждом файле на то, что вы хотите:

post_max_size = 512M
upload_max_filesize = 512M

А затем используйте следующую команду для перезапуска сервера php:

sudo service php7.0-fpm restart #php<then your php version here> instead "7.0"

or

sudo /etc/init.d/php7.1-fpm restart  #php<then your php version here> instead "7.1"

Теперь вы сможете увидеть изменения размера загрузки. Ваше здоровье !

как показано в здесь вы можете узнать больше об элементах управления сервером php:

$ sudo service php7.0-fpmstart # <- restart it
$ sudo service php7.0-fpm stop # <- restart it
$ sudo service php7.0-fpm restart # <- restart it
$ sudo service php7.0-fpm reload # <- reload it
person Rakshitha Muranga Rodrigo    schedule 19.11.2018
comment
sudo /etc/init.d/php7.1-fpm restart исправил мою проблему - person db306; 11.04.2019

Потратив несколько часов на чтение форума, я решил следующим образом:

cd /etc/php
find . -name "*.ini" | xargs grep -il upload_max_filesize
./7.1/apache2/php.ini
./7.1/mods-available/better.ini
./7.1/cgi/php.ini
./7.1/cli/php.ini
./7.1/phpdbg/php.ini
./7.1/fpm/conf.d/20-better.ini
./7.1/fpm/php.ini
./7.1/embed/php.ini

измените upload_max_filesize в ./7.1/fpm/conf.d/20-better.ini, затем

/etc/init.d/php7.1-fpm restart

теперь phpinfo сообщает: upload_max_filesize 10G 10G

Надеюсь это поможет.

person dcima    schedule 18.06.2019

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

Проверьте php.ini на наличие значения open_basedir. Если установлено значение (которое должно быть из соображений безопасности), убедитесь, что там есть /tmp. Или выберите пользовательское значение в upload_tmp_dir и установите open_basedir соответственно.

Затем перезагрузите службу FPM.

person Artur Cichosz    schedule 01.10.2019