30

I have read many solutions on internet , but still cannot change upload_max_filesize value (upload_max_filesize always = 2M )

here is my loaded php.ini in 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

here is my edited php.ini in /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

im using ubuntu 14.04,apache2,php7.0 (I have reset apache2 many time after each change in php.ini )

Carrie Kendall
  • 11,124
  • 5
  • 61
  • 81
CuongDC
  • 634
  • 1
  • 7
  • 16
  • You need to check the path of php.ini, it seems you are making changes somewhere else. You can see the ini path in phpinfo itself just check for the row 'Configuration File (php.ini) Path' – Afshan Shujat May 23 '16 at 02:25
  • i changed every php.ini file i found , but still cannot change upload_max_filesize :( – CuongDC May 23 '16 at 05:58
  • 1
    Restart the server and check for the changes. – Afshan Shujat May 23 '16 at 07:21
  • i have restart apache2 many times,but it still the same ... – CuongDC May 23 '16 at 12:49
  • 1
    `php -i | grep -i "upload\_max\_filesize\|post\_max\_size\|max\_file\_uploads"` is a helpful command that can help you catch that maybe whatever "ini" file you updated either hasn't been reloaded or might not be the correct file in use at all. – Ryan Mar 01 '19 at 22:59
  • See https://stackoverflow.com/questions/48601191/illuminate-http-exceptions-posttoolargeexception#comment96669884_48601191 – Ryan Mar 01 '19 at 23:25
  • I couldn't get a file to upload through a wordpress site even though I checked all php.ini files & did everything I could think of serverside. Turned out it was a wordpress multi-site network setting. /wp-admin/network/settings.php – ceotoolsuite Mar 16 '20 at 21:13

16 Answers16

50

I had a fix for PHP-FPM 7.1

Edit your php.ini in

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

Make changes to whatever option you want like, post_max_size, upload_max_filesize, max_execution_time & so...

save & close file.

run

sudo service php7.1-fpm restart

It will work!

Saravanan C
  • 645
  • 1
  • 6
  • 11
  • 2
    For me, it was this simple - and it's logical. We have changed PHP variables, not Apache2. So restarting PHP is all that was needed! – Brian Milnes Mar 12 '18 at 13:41
  • 2
    Of course! You have to restart FPM! Thank you so much! Just needed to recall that – Srivats Shankar May 22 '19 at 13:12
  • 2
    Thank! I am so used to running as MPM where all you need is to restart apache, but since switching to FPM (for http/2 support), I didn't realize that you needed to restart FPM directly. – adrian Nov 15 '19 at 16:25
  • In my case, I just needed to edit /etc/php.ini, restart httpd. I checked for the php process (ps ax | grep -i php) and restarted that: systemctl restart php-fpm This is on CentOS Stream. – imclean Jun 11 '21 at 03:58
24

I had an other fix for it. os: ubuntu 16.04 phpversion: 7.0

I created a phpinfo.php file containing:

<?php phpinfo() ?>

place the phpinfo.php file in the root of your website www.mywebsite.com/phpinfo.php

Navigating to it and lookup the line:

Loaded Configuration File : /etc/php/7.0/cgi/php.ini

Now you know what php.ini file is loaded.

ssh into the server and use your favorite editing tool (mine is nano) to adjust the php.ini

change the values to meet your preferences.

post_max_size = 128M

upload_max_filesize = 64M

Save and close the file.

Restart apache

sudo service apache2 restart

__

check the phpinfo.ini if the new values are as set.

and if they do you are set to go.

Info Loopgraaf
  • 241
  • 2
  • 2
  • 3
    `/etc/php/7.0/cgi/php.ini` should be `/etc/php/7.0/cli/php.ini`. There is no `cgi` dir in default php installation – dimitry_n Feb 01 '17 at 21:21
21

i fingured out !

in my loaded php.ini config , my error_reporting values is E_ALL & ~E_NOTICE & ~E_STRICT & ~E_DEPRECATED-> this is wrong!, so i changed it to

error_reporting: E_ALL and then restart apache2 server, now everything working fine !


so please note : if php.ini have any error , it will use default value (which means upload_max_filesize always 2M )

CuongDC
  • 634
  • 1
  • 7
  • 16
10

For php7.2-fpm

Ubuntu php-fpm located at /etc/php/7.2/fpm so

  1. cd /etc/php/7.2/fpm
  2. sudo nano php.ini
  3. Search for post_max_size = 512M and add your fav size that you really needed
  4. Search for upload_max_filesize = 512M and add your fav size that you really needed
  5. Save File
  6. And Last DO NOT FORGET TO RESTART PHP7.2-FPM to restart sudo service php7.2-fpm restart

Thats all!

Joel Jerushan
  • 645
  • 11
  • 21
7

I am using Nginx and my solution was to restart php-fpm.

Restarting Nginx didn't do anything.

sudo service php7.2-fpm restart
Shark Lasers
  • 441
  • 6
  • 15
Ali
  • 81
  • 1
  • 4
  • 1
    This worked for me! Thank you! I'm using apache and recently moved to php-fpm - I had no idea it was a separate service! – david_nash Jul 07 '20 at 00:55
6

I also found that restarting the httpd service didn't pick up changes in the loaded configuration file (/etc/php.ini on Fedora 29). It's worth listing all systemd units and doing a grep for the string "php":

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

Restarting php-fpm did the trick for me:

# systemctl restart php-fpm
rkhff
  • 1,696
  • 2
  • 16
  • 16
4

After spending hours reading forum I've resolved this way:

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

change upload_max_filesize in ./7.1/fpm/conf.d/20-better.ini then

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

now phpinfo reports: upload_max_filesize 10G 10G

Hope this helps.

dcima
  • 41
  • 1
4

i also had this problem!

if you are using php-fpm service need to find php-fpm.conf and add line

php_admin_value[upload_max_filesize] = 100M

for changing other type of values

#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
Ali Ghalambaz
  • 420
  • 3
  • 7
1

Most people are forgetting to restart their php via the terminal that's why it isn't working, if you think you've done everything correctly be sure to restart your php & the server.

1

Yeah, Actually I forgot to restart correctly.

sudo service apache2 restart is not enough

first add the configurations to /etc/php/7.1/fpm/php.ini and to /etc/php/7.1/cli/php.ini
#/php/ - then your php version here instead "7.1" ACtually one of these configuration file is the active one (if you want to see what use <?php phpinfo() ?> command in indextest.php file and check it on browser) Then change these parameters on each file with what you want:

post_max_size = 512M
upload_max_filesize = 512M

And then use following command to restart the php server:

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"

Now you should be able to see the changes of upload size. Cheers !

as shown in here you can get to know more about the php server controlls :

$ 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
1

create two different files in the root of your project(if you are a Wordpress user,it is the root public_html folder).one is php.ini & the second one is .user.ini and then simply add these two lines of codes in both files.

upload_max_filesize = 20M
post_max_size = 20M

don't forget to restart the server. and also make sure the user.ini file must be starting with a dot (.)

systemctl restart apache2
1

In my case I was editing the wrong one. It turns out I should mondify this /etc/php/7.2/apache2/php.ini After doing so, it worked!

MSaudi
  • 4,442
  • 2
  • 40
  • 65
0

For those who have all the obvious settings mentioned in other answers and PHP file uploads are stil not working.

Check php.ini for open_basedir value. If a value is set (which it should be for security reasons), make sure that /tmp is included there. Or choose a custom value in upload_tmp_dir and set open_basedir accordingly.

Then reload the FPM service.

Artur Cichosz
  • 1,034
  • 7
  • 18
0

I installed multiple versions of PHP on MacOS Big Sur following the steps here

I used command:

sudo /usr/local/bin/httpd -k restart

to load changes made to the php.ini file.

Bubune
  • 11
  • 2
0

open your putty or bitvise ssh client login your server

sudo apt update

After that

cd /etc/php/7.4/apache2/

see the list to hit command below

ls -ltr

output

total 76
drwxr-xr-x 2 root root  4096 Sep  4 14:31 conf.d
-rw-r--r-- 1 root root 72540 Sep  7 09:28 php.ini

to open php.ini enter the below command

 sudo nano php.ini

Move down Arow till not find the Below code

upload_max_filesize = 20M

change 20MB to your desired upload size Press ctrl+s to save php.ini and exit to the editor to command prompt hot ctrl+x after that to reload apache2 hit the below command

sudo systemctl reload apache2

Happy coding

0

For macos, check if you have a php-memory-limits.ini file under /opt/homebrew/etc/php/8.1/conf.d folder,

You need to update upload_max_filesize value in there too!