How to configure php.ini file - php

I am having a bit of trouble understanding how to set up the php.ini file on my website. I have included the line session.cookie_lifetime = 1800 as well as some others, but nothing has changed. When I go to my phpinfo.php pgae, none of the settings I have configured in the .ini file are not taken into effect. Can anyone help me with this? Thanks.

When you make changes in the php.ini file you have to restart the webserver or reloading the configuration files in most cases.
Because I have not enough reputation yet to write comments I assume you are using a LAMP environment. You can restart the webserver by typing in console:
service apache2 restart
or
/etc/init.d/apache2 restart
reload or force-reload instead of restart should also work for just reloading the configuration files, but with restart you're one the safe side.
Also make sure you're editing the correct php.ini file. You can find the right file by looking at the 'Loaded Configuration File' directive of phpinfo() output.

Add below lines in .htaccess file, it will increase the timeout to 30 minutes.
php_value session.cookie_lifetime 1800
php_value session.gc_maxlifetime 1800

Related

phpinfo shows allow_url_fopen is Off. It is On in php.ini

I'm trying to run a php website with nginx using php8.1 and php8.1-fpm, in a Ubuntu 20.04 vps.
phpinfo reports that the config file in use is: /etc/php/8.1/fpm/php.ini
It also reports that allow_url_fopen is Off (both Local Value and Master Value).
Examining /etc/php/8.1/fpm/php.ini shows:
allow_url_fopen = On
I suppose that's the default setting. But I need this value to reflect in phpinfo and I can't get that to work.
I've tried changing the value, restarting nginx and fpm, changing it back and restarting again, but nothing works. Feels like phpinfo is getting its values elsewhere. I've checked all files in /etc/php/8.1/fpm/conf.d (the config folder reported by phpinfo) and there is no allow_url_fopen in any of those.
How do I get allow_url_fopen to be On?
Type “php --ini” command to find the location of the PHP configuration file.
On the above server, you can see that the PHP configuration file is in location “/usr/local/lib/php.ini”
Edit the php.ini file to enable allow_url_fopen.
root#server [~]# vi /usr/local/lib/php.ini
allow_url_fopen = On
Change the line “allow_url_fopen = Off” to “allow_url_fopen = On”
Save the php.ini file after changing allow_url_fopen to On.
Restart the apache service after enabling allow_url_fopen.
Now, allow_url_fopen is enabled globally for all domains on your Server. allow_url_include = On
On some systems there's a file /etc/php.d/security.ini or /etc/php/8.1/fpm/conf.d/99-security.conf in which allow_url_fopen is turned of. If present it overrides the settings in php.ini system wide.
Unfortunately this file isn't listed by php_ini_scanned_files().

Can't change max_input_vars limit in php.ini

I need to change PHP max_input_vars variable but after change in php.ini and server restart phpinfo shows old value all the time. This is what i do:
in phpinfo() i've got
...
Loaded Configuration File /etc/php.ini
...
max_input_vars 1000
from server CL I've edit /etc/php.ini and uncomment line with max_input_vars it looks like this:
...
max_input_vars = 5000
...
after this changes and restarting web server
systemctl restart httpd
phpinfo still shows max_input_vars as 1000
It looks like php use some other php.ini or values are overwritten because with other settings like max_execution_time is the same.
If i'm doing it wrong way? Is this possible that phpinfo shows different configuration file than the one used?
phpinfo output:
As you're using PHP-FPM, you need to check it's configs for overrides, typically in /etc/php-fpm/*.conf.
php_admin_value[max_input_vars] = XXX
After validating there are no overrides that affect your settings, restart the php-fpm service and as a best-practice also Apache.
systemctl restart php-fpm httpd
Restarting the PHP-FPM service is required because Apache passes requests to the running PHP instance(s) loaded into memory from the PHP-FPM service. As PHP is already loaded into memory by PHP-FPM, the PHP-FPM service needs to be restarted for PHP configuration changes to be applied.
Apache prior to PHP-FPM typically relied on starting the PHP process using the Apache mod_php, thereby requiring the restarting of the Apache service for configuration changes to be applied immediately, or until mod_php reloaded the PHP instance.
Based on your configuration, you should add additional PHP config settings to /etc/php.d/zzz-custom.ini instead of /etc/php.ini. PHP will load the config files in alphabetical order, resulting in the zzz-custom.ini file being loaded last and be used as the final values of the PHP settings.
Using the /etc/php.d/zzz-custom.ini file will also prevent the loss of your custom php.ini settings and the need to make extensive changes to the default /etc/php.ini file when updating PHP versions.
However, /etc/php-fpm/*.conf settings will take precedent over any /etc/php.d/*.ini configs.
first: Method is edit the PHP. ini file
Locate your PHP. ini file. ...
If you find your existing PHP. ini, open the file and locate the following line of code (xx represents a number): max_input_vars = xx ; And set it to your desired limit. ...
If you created your own PHP. ...
Save your changes, and reboot your localhost or your server.

Max filesize not taking effect from php.ini

I know this is a massive repost but I couldn't figure this out. The server is Ubuntu using nginx.
Doing phpinfo() I see the configuration file I am using is /etc/php/7.0/fpm/php.ini.
These are the properties I set:
upload_max_filesize = 256M
post_max_size = 256M
I restarted nginx, as well as the php7.0-fpm process and the max upload size is still not changing.
I am using wordpress so as a last resort I even tried using a plugin that increases the max upload size and even that didn't work.
I also tried setting it in my .htaccess as well and still nothing:
php_value post_max_size 256M
php_value uploads_max_filesize 256M
By default NGINX has a limit of 1MB on file uploads. To change this you will need to set the client_max_body_size variable. You can do this in the http block in your nginx.conf
http {
#...
client_max_body_size 100m;
client_body_timeout 120s; # Default is 60, May need to be increased for very large uploads
#...
}
If you are expecting upload very large files where upload times will exceed 60 seconds you will also need to add the client_body_timeout variable with a large value
After updating you NGINX configuration don’t forget to restart NGINX.
you need to restart nginx and php to reload the configs. This can be done using the following commands;
sudo service nginx restart
sudo service php7.0-fpm restart
Note:if you don't have to host multiple
Websites just add it to the server block
server {
client_max_body_size 8M;
}
The answer I found here:
Have you tried to put your php.ini under /etc/php5/fpm/php.ini? This is normally the default location that php reads from, if I understand php5-fpm correctly.
A couple of things.
When you mention that your server uses nginx it is unnecesary to use an .htaccess file since those are for Apache servers.
That being said, I would try a couple of things.
Do you know what's the ini file of your php instance?
You mention the one for php 7 but you could also have php 5 installed.
If you go to your console and type "php --ini" what's the loaded configuration file?
Once you know that, using vi / vim or your editor of choice you can set:
upload_max_filesize = 100M
post_max_size = 100M
Now, have into account that you have to restart your services, both php and nginx:
for php 5:
service php5-fpm reload
for php 7:
service php7-fpm reload
for nginx:
service nginx reload
try printing the current values as well:
$uploadMaxFilesize = ini_get('upload_max_filesize');
$postMaxSize = ini_get('post_max_size');
Also, since this is for WordPress, did you try setting it up in the WordPress admin settings?
Admin Dashboard > Settings > Upload Settings
There's a couple things I had to change to get it working for me.
Firstly from user NID here, add this to your /etc/nginx/nginx.conf file (inside the http block):
http {
#...
client_max_body_size 100m;
client_body_timeout 120s; # Default is 60, May need to be increased for very large uploads
#...
}
Then I also had to follow something similar to user Just Rudy here.
Edit your php.ini file - contrary to many guides, for me it was not located in my wordpress root folder, but instead, /etc/php/7.2/fpm/php.ini.
There should be some predefined values for upload_max_filesize and post_max_size. Change these to what you want.
Restart nginx and php-fpm:
sudo systemctl reload nginx
sudo systemctl restart php7.2-fpm

PHP The uploaded file exceeds the upload_max_filesize directive in php.ini

Before you mark this as duplicate, hear me out. I've tried all the suggestions I can find online. None works. I've restarted countless times. Detailed list of what I've tried below.
Here's my setup:
Nginx 1.10
PHP 7.0
WordPress 4.7
I'm on a VPS. I have access and control over EVERY single file!
Here's what I want to do:
Increase the upload file size for my WordPress.
Why?
Anytime I upload a file size bigger than 2 megabytes, I get this error: The uploaded file exceeds the upload_max_filesize directive in php.ini. That's all it tells me.
Here's what I have done:
a. So out of common sense, I go into /etc/php/7.0/cli/php.ini because php.ini -i tells me the loaded configuration is from that file. In the php.ini file, I change the upload_max_filesize = 2M to upload_max_filesize = 10M
b. I go ahead to restart, both Nginx (sudo service nginx restart), and PHP (sudo service php7.0-fpm restart)
Above Doesn't work as 2 other approaches below: I still get:
The uploaded file exceeds the upload_max_filesize directive in php.ini.
I create my own user.ini under /etc/php/7.0/cli/conf.d/ folder with contents, upload_max_filesize = 10M
I go ahead to do 1. b. Still same error
They say something is called error_reporting. I go ahead to locate the error reporting in my php.ini file. I change from the first line below to the second:
;error_reporting = E_ALL & ~E_DEPRECATED & ~E_STRICT
error_reporting = E_ALL
I do 1. b., Still doesn't work.
So what the #&)#(* is wrong with my setup and what again do I have to change somewhere else?
Is it even changeable? I've read and tried almost every single suggestion online, and it never works.
It has never been an issue for me, the 2 max upload, but I'm importing a wordpress xml file, which is just 3 Mb, and I've spent a couple of hours already trying to get this thing to work.
By default, can't the upload size be a bit higher. 2 Megabyte is even ridiculous for a site in recent years. At least 5 is much better.
Any help is appreciated!
You're looking at the php.ini file for the CLI, you need to look at the PHP ini file for the web server you're running. Within the WP directory, create a temporary php file, and have it contain <?php phpinfo(); navigate to that file in the browser and find the php.ini file you actually need to change, then make the change as required.
NOTE: Remove this file once you're done with your checks, having this information visible to the public is a security risk
Case 1 : Add php.ini in wp-admin folder
Navigate to wp-admin folder. Scroll down to see if you have a php.ini file in there.If you didn’t add one at some point.
upload_max_filesize = 64M
post_max_size = 64M
max_execution_time = 300
Case 2 : Add code to .htaccess
Open or create the .htaccess file in the root folder and add the following code:
php_value upload_max_filesize 64M
php_value post_max_size 64M
php_value max_execution_time 300
php_value max_input_time 300
Initially, I tried JezEmery 's answer, but for me the solution came when typed on terminal
locate php.ini
and I took among else as printout
/usr/lib/php/7.0/php.ini-development
/usr/lib/php/7.0/php.ini-production
/usr/lib/php/7.0/php.ini-production.cli
/usr/lib/php/7.1/php.ini-development
/usr/lib/php/7.1/php.ini-production
/usr/lib/php/7.1/php.ini-production.cli
then change the php7.1 files, as my apache used version 7.1 of php, and last, I restarted apache via
systemctl restart apache2
Simply Add these lines of codes in
C:/xampp/php.ini
upload_max_filesize = 64M
post_max_size = 64M
max_execution_time = 300
After restart the xampp control and check the panel it'll increase the file size
If you're using php-fpm but not Apache, sometimes after doing all the above, you need to restart the php7.4-fpm service. It may be named differently depending on your PHP version.
sudo systemctl restart php7.4-fpm
Add below code into theme's function.php file
#ini_set( 'upload_max_size' , '64M' );
#ini_set( 'post_max_size', '64M');
#ini_set( 'max_execution_time', '300' );
OR
Create php.ini into root folder with below lines:
upload_max_filesize = 64M
post_max_size = 64M
max_execution_time = 300
Add code into .htaccess file:
php_value upload_max_filesize 64M
php_value post_max_size 64M
php_value max_execution_time 300
php_value max_input_time 300
What does php -i | grep 'upload_max_filesize' give you? The 10M you set or a different value. If it's giving you the latter then you're editing the wrong php.ini file. You can use php --ini to figure which config file is loaded
In cwp (control web panel) if you use php-fpm, you have to modify php.ini in this directory: /opt/alt. Or you can do it from control panel: Dashboard>PHP Settings>PHP-FPM Selector> PHP-FPM x.x >Edit php.ini an after change upload_max_filesize , reload PHP using related (yellow) button in the left.
source

Import file size limit in PHPMyAdmin

I have changed all the php.ini parameters I know:
upload_max_filesize, post_max_size.
Why am I still seeing 2MB?
Im using Zend Server CE, on a Ubuntu VirtualBox over a Windows 7 host.
Find the file called: php.ini on your server and follow below steps
With apache2 and php5 installed you need to make three changes in the php.ini file. First open the file for editing, e.g.:
sudo gedit /etc/php5/apache2/php.ini
OR
sudo gedit /etc/php/7.0/apache2/php.ini
Next, search for the post_max_size entry, and enter a larger number than the size of your database (15M in this case), for example:
post_max_size = 25M
Next edit the entry for memory_limit and give it a larger value than the one given to post_max_size.
Then ensure the value of upload_max_filesize is smaller than post_max_size.
The order from biggest to smallest should be:
memory_limit
post_max_size
upload_max_filesize
After saving the file, restart apache (e.g. sudo /etc/init.d/apache2 restart) and you are set.
Don't forget to Restart Apache Services for changes to be applied.
You probably didn't restart your server ;)
Or you modified the wrong php.ini.
Or you actually managed to do both ^^
Just change your php.ini(xampp/php/php.ini) file, it worked for me!
max_execution_time = 5000
max_input_time = 5000
memory_limit = 1000M
post_max_size = 750M
upload_max_filesize = 750M
And, don't forget to restart Apache Module from XAMPP Control Panel.
Increase phpMyAdmin upload / import size
By default you get a 2mb limit of upload / import size in phpmyadmin. That makes it odd and highly impossible to import larger files. You can increase the allowed upload size of phpmyadmin by editing your server’s php.ini configuration file. Usually in servers like CentOs it is located at /etc/php.ini.
Step 1: Go to php.ini and find the following and change their values to something more higher than your database size. (In this example i have used 20mb).
upload_max_filesize = 20M
post_max_size = 20M
Step2 : Restart your apache service for this new change to take effect. Usually the command to restart apache would be
service httpd restart (CentOs) / service apache2 restart (ubuntu)
You can also restart directly from their path like
/etc/init.d/apache2 restart or /etc/init.d/httpd restart
If you are in a shared hosting and do not have root access or access to your php.ini configuration file, then the other way is to create a .htaccess file in your application root and add the following line
php_value upload_max_filesize 10M
php_value post_max_size 10M
If you were still not able to increase it, please send me an email for more detailed assistance.
For uploading large files through PHPMyAdmin, follow these steps:
Step 1: Open your php.ini file.
Step 2: Upgrading Memory Limit:
memory_limit = 750M
Step 3: Upgrading Maximum size to post:
post_max_size = 750M
Step 4: Upgrading Maximum file-size to upload:
upload_max_filesize = 1000M
Step 5: Upgrading Maximum Execution Time:
max_execution_time = 5000
Step 6: Upgrading Maximum Input Time:
max_input_time = 3000
Step 7: Restart your xampp control panel.
Check your all 3:
upload_max_filesize
memory_limit
post_max_size
in the php.ini configuration file
* for those, who are using wamp #windows, you can follow these steps: *
Also it can be adapted to any phpmyadmin installation.
Find your config.inc.php file for PhpMyAdmin configuration (for wamp it's here: C:\wamp\apps\phpmyadminVERSION\config.inc.php
add this line at the end of the file BEFORE "?>":
$cfg['UploadDir'] = 'C:\wamp\sql';
save
create folder at
C:\wamp\sql
copy your huge sql file there.
Restart server.
Go to your phpmyadmin import tab and you'll see a list of files uploaded to c:\wamp\sql folder.
With WAMP, on Windows10, open
c:\wamp64\alias\phpmyadmin.conf
and change 128 by 256 at the end of these lines
php_admin_value upload_max_filesize 128M
php_admin_value post_max_size 128M
Restart WAMP
Open this file
edit these parameters:
memory_limit =128M
post_max_size = 64M
upload_max_filesize = 64M
This is how i did it:
Locate in the /etc/php5/apache2/php.ini
post_max_size = 8M
upload_max_filesize = 2M
Edit it as
post_max_size = 48M
upload_max_filesize = 42M
(Which is more then enough)
Restarted the apache:
sudo /etc/init.d/apache2 restart
None of the current answers will work for WHM / cPanel servers.
To increase the limit in WHM:
Navigate to Server Configuration > Tweak Settings
Choose the PHP tab
Update "cPanel PHP max POST size" & "cPanel PHP max upload size" (POST size should be bigger)
Ubuntu 20.04, 20.10, 22.04 and 22.10.
Well, with other distros as base Ubuntu as Xubuntu.
Edit : sudo nano /etc/php/7.4/apache2/php.ini
Search and modify : post_max_size = 120M and upload_max_filesize = 120M
Replace 120 with the value you need, e.g. 22M, etc.
Important, you have to change to the version of PHP that you have by default at that moment. Example with PHP 8.1: sudo nano /etc/php/8.1/apache2/php.ini
To check what version of PHP you have, just run php -v in your terminal.
I had the same problem.
My Solution:
go to /etc/phpmyadmin and edit apache.conf
in the <Directory>[...]</Directory> section you can add
php_value upload_max_filesize 10M
php_value post_max_size 10M
Solved the problem for me!
I found the problem and am post hete if anyone followed some blog post out there to create the sort of enviromment I have (win 7 host with ubuntu and zend server ce on virtual box).
The thing is that MySQL is running on Lighttpd, not under Apache. So I had to change the php.ini file under that webserver as well which is in the path:
/usr/local/zend/gui/lighttpd/etc/php-fcgi.ini
In the end, you were right about the files, of course, but I was wrong on what file I had to change :)
C:\xampp\php\php.ini in my case
or it could be C:\php\php.ini if the Apache / PHP / MySQL are stand alone
upload_max_filesize = 2M by default
so it can be changed as desired. And in my case
upload_max_filesize = 20M
post_max_size = 8M by default
it should be changed to post_max_size = 20M as well
memory_limit=128M is by default and it is not necessary to change to increase the max
2056kb or 2mb .sql file upload limit. But it only means that a script can consume up to 128 memory when you run apache and sql server , and if you change memory_limit=128M to higher and run any malfunctioned script then it may cause you trouble. So its up to you.
I had a problem with changing the upload size on my phpmyadmin and OS X 10.9.4 Mavericks.
At first I didn't know where the php.ini is so used locate
locate php.ini
which came back with
/private/etc/php.ini.default
/usr/local/etc/php/5.4/php.ini
I've tried editing /usr/local/etc/php/5.4/php.ini and then restart in the server put this didn't work.
I remembered that there is a better way to find out this file I'm looking for or and least where php is looking for php.ini.
<?php phpinfo() ?>
came back saying that it expects /etc/php.ini but I didn't have one there. The below is from the phpinfo():
Configuration File (php.ini) Path: /etc
It turns out that the first result in the locate command above is what I'm looking for.
At least in OS X 10.9.4 Mavericks (OS X is something new to me) /etc is actually a link, etc -> private/etc, and by the looks of it PHP assumes default values unless php.ini is actually present.
I copied /private/etc/php.ini.default
cp /private/etc/php.ini.default /private/etc/php.ini
Then checked the variables in the new /etc/php.ini as per Aditya Bhatt advice above and it worked.
In my case the values were:
memory_limit =128M
post_max_size = 64M
upload_max_filesize = 64M
Obviously, the apache service has to be restarted to see the changes.
php_value upload_max_filesize 100M
php_value post_max_size 100M
increse that size in php.ini then run command
sudo service apache2 restart
sudo service mysql restart
in xammp
restart all service
How to import huge amount of Data in Xampp
It’s the best solution to open new, clean database, and import the file in phpMyAdmin. Choose file from local folder and leave all settings as is. That should be it.
But if your file exceeded file size of 2MB (that is default value in xampp installation) than you need to tweak some out. Basically we will just increase the maximum upload file size.
Open your xampp install folder and go to php folder. With some text editor file (notepad++) open the file called php.ini (by type windows describe it as configuration settings) and edit the line (cca. 770, or press ctrl+f in notepad++ to find it):
post_max_size = 2M
instead 2M, put wanted maximum file size (16MB for example but not higher than 128M),
after that go to this line:
max_execution_time = 30
instead 30, increase execution time that’s in seconds (90 for example), also you need to change this line:
max_input_time = 60
instead 60, increase input time in seconds (120 for example)
and top of all you have to change this line:
upload_max_filesize = 2M
instead of 2M, increase to 16M for example.
Save the file, restart apache and mysql in xampp and try to upload again, if you follow correctly you should be able to import files through 16MB (example)
You could just use MySQL administrator app or MySQL workbench.
Lightweight apps and you can export or import your entire server however the size.
Am late to the party here but I hope it helps someone.
I had the same problem, My upload limit was 2 MB, I edited my php.ini, and I set it to 5 MB but still it was showing 2 MB even after restarting server. Than I compressed my .sql file to zip by keeping its name as xyz.sql.zip so it became 451 kb from 3.5 mb. Then I uploaded it again. It worked for me.
I found that increasing the upload and post limit in php.ini did not affect the limit in phpmyadmin. This is because my server has a separate setting for cpanel upload limit. If you have access to WHM, you probably have this.
To adjust:
login to your WHM panel: this is usually located at {your server ip}/whm and you will need your root login details here. If you don't have those, request them from your host.
once logged in, in the top left search bar, search for "tweak settings"
On the tweak setting pages, search for "cPanel PHP max upload size"
Adjust the number and save
No need to restart apache or anything, changes are instant. This process increased the value of max upload file size in phpmyadmin. You can check this by going to phpmyadmin and selecting your database, then clicking "import" at the top. Beside the file selector you will see the upload limit. My server default was 100.
In my case, I also had to add the line "FcgidMaxRequestLen 1073741824" (without the quotes) in /etc/apache2/mods-available/fcgid.conf. It's documented here http://forum.ispsystem.com/en/showthread.php?p=6611 . Since mod_fcgid 2.3.6, they changed the default for FcgidMaxRequestLen from 1GB to 128K (see https://svn.apache.org/repos/asf/httpd/mod_fcgid/trunk/CHANGES-FCGID )
do the following things
increase upload_max_file_size in php.ini
gzip your sql file
and then import the file
I was facing the same problem where increasing max size in php.ini has no effect on wordpress and tried many solutions like -:
Increase max size via functions.php
Increase max size via .htaccess file.
The one that worked for me is adding max size in .htaccess file.
It wasn't working with neither with php.ini file nor with functions.php file.
I just did add this code in .htaccess file and its done
php_value upload_max_filesize 64M
php_value post_max_size 64M
php_value max_execution_time 300
php_value max_input_time 300
NOTE: I did add above code in <IfModule> tag.
If php.ini file is not doing anything in changing size then try other 2 files for it and one of them will surely work for you.
READ THIS ARTICLE TO KNOW ABOUT ALL FILES IN WHICH YOU CAN INCREASE MAX SIZE
I think if your php version is above 5.5, let say it is 5.6, then your php.ini file is in following folder
/etc/php/5.6/apache2
so you have to apply your changes like post_max_size, upload_max_filesize and memory_limit there.
Hope it will help you.
I've tried all of the above and nothing worked for me: my phpmyadmin (on wamp) was still showing 128MiB (while I've needed to import DB which size was 212Mb)
so if U stucked as me you can import it with the help of commandline:
run bash (cmd, powershell or whatever terminal) from folder where your .sql file is located (or cd that path in terminal)
run mysql -u username -p database_name < file.sql where
username - is username for mysql server
database_name - is name of db you want import to
file.sql - is name of your sql file
👍😉
for me just worked like a charm after 2hours of trying to manipulate this through php.ini and other configurational files 🙈👌
Search for php.ini file
For xampp, you can get it # C:\xampp\php
Find the following 3 properties and set there value according to your need
memory_limit
post_max_size
upload_max_filesize
Restart Apache!
I am using Bitnami WAMP Stack 7.1.8-0 on my localhost. For me, the PHPMyAdmin maximum upload size limit was set to 80MiB as in the screenshot https://nimb.ws/fFxv7O. I managed to increase this size limit as explained below:
Go to the folder where you have installed the Bitname WAMP Stack, for me, it is "E:\Bitnami WAMP Stack”
Further inside, go to the path “apps\phpmyadmin\conf"
Open the file httpd-app.conf in your favorite text editor
Find the following two lines:
php_value upload_max_filesize 80M
php_value post_max_size 80M
(The 80M value at the end of these lines may be different for you)
Go ahead and change these values at the end of these two lines (80M in this case) according to your needs.
Restart WAMP server.
Now go to PHPMyAdmin and see, your upload size limit should be updated to whatever you set it to. That is it.
Note: (added July 2020)
I'm surprised nobody else has mentioned this ... changing php.ini should probably be your last resort when increasing file upload sizes to something as big as 64MB.
It may not matter greatly on development machines, but editing php.ini to globally increase max upload size could be a really bad idea on a server where you have several websites operating. MySQL imports to PHPMyAdmin are often large, but you don't want every Tom, Dick and Mary uploading 64MB files to another site on your server because you need to do it every now and again for your MySQL database.
I'd suggest a better solution is therefore (assuming you are using the standard Apache PHP module) to edit the specific virtual host configuration for PHPMyAdmin.
On Ubuntu Linux, this is found in /etc/apache2/conf-enabled/
phpmyadmin.conf. On WAMP/Windows/Whatever you'll need to look at the setup for your Apache configuration, but it will probably be in conf-enabled, conf.d, sites-enabled, or something like that. These are actually often just symlinks to the actual file which is located somewhere like /etc/phpmyadmin/apache.conf (again using Ubuntu as the example here).
Your apache.conf file will include lines something like this:
Alias /phpmyadmin /usr/share/phpmyadmin
<Directory /usr/share/phpmyadmin>
Options SymLinksIfOwnerMatch
DirectoryIndex index.php
# limit libapache2-mod-php to files and directories necessary by pma
<IfModule mod_php7.c>
php_admin_value upload_tmp_dir /var/lib/phpmyadmin/tmp
php_admin_value open_basedir /usr/share/phpmyadmin/:/etc/phpmyadmin/:/var/lib/phpmyadmin/:/usr/share/php/php-gettext/:/usr/share/php/php-php-gettext/:/usr/share/javascript/:/usr/share/php/tcpdf/:/usr/share/doc/phpmyadmin/:/usr/share/php/phpseclib/:/usr/share/php/PhpMyAdmin/:/usr/share/php/Symfony/:/usr/share/php/Twig/:/usr/share/php/Twig-Extensions/:/usr/share/php/ReCaptcha/:/usr/share/php/Psr/Container/:/usr/share/php/Psr/Cache/:/usr/share/php/Psr/Log/:/usr/share/php/Psr/SimpleCache/
</IfModule>
</Directory>
Immediately after <IfModule mod_php7.c> add these lines:
php_value post_max_size 64M
php_value upload_max_filesize 64M
Depending on your server config, you can probably achieve the same thing in an .htaccess file if you prefer. In which case you could just add the two lines by themselves (assuming you know for certain that PHP is enabled).
If you use fpm or fastcgi or something with or without Apache, the same more localized approach to controlling upload sizes can be achieved by using .user.ini files.
Ubuntu 20.04:
Changing php.ini files and restarting apache was not enough, I had to also do this:
sudo service php7.4-fpm restart
The first things to check (or ask your host provider to check) are the values of max_execution_time, upload_max_filesize, memory_limit and post_max_size in the php.ini configuration file. All of these three settings limit the maximum size of data that can be submitted and handled by PHP.
Please note that post_max_size needs to be larger than upload_max_filesize.

Categories