I have a MySQL table which contains 6.5 million records. When I try to access that table from phpMyAdmin I get:
Fatal error: Maximum execution time of 30 seconds exceeded in C:\xampp-new\phpMyAdmin\libraries\display_tbl.lib.php on line 1457.
I am just trying to view the records and I am not doing any query which might cause the error.
This problem is only in my server. And my local machine does not contain as many records as the server.
In my php.ini I have already set the maximum execution time to maximum.
How do I fix this error?
Add this line
$cfg['ExecTimeLimit'] = 6000;
to phpmyadmin/config.inc.php
And Change php.ini and my.ini
post_max_size = 750M
upload_max_filesize = 750M
max_execution_time = 5000
max_input_time = 5000
memory_limit = 1000M
max_allowed_packet = 200M (in my.ini)
if you are using xammp on the xammp control panel at the apache line click on config and then click to open PHP(php.ini) find and increase max_execution_time=30 to max_execution_time=600.
+1 for making me lookup lakhs. That looks like a PHP timeout to me as the default timeout is 30 seconds. Increase the setting in your php.ini and restart apache and see if the timeout persists.
http://www.php.net/manual/en/info.configuration.php#ini.max-execution-time
you need to set max_execution_time in php.ini
max_execution_time=6000
HAPPY CODING
This solution has resolved the issue
Place the following lines at the top of the script page and before the query that initiates the memory:
ini_set('max_execution_time', 0);
set_time_limit(1800);
ini_set('memory_limit', '-1');
Go to:
xampp\phpMyAdmin\libraries\config.default.php
Look for : $cfg['ExecTimeLimit'] = 600;
change '600' to '6000'.
Open the xampp folder at your computer where it is installed. For example, it is at C: drive into my PC, and then open the phpMyAdmin and then libraries folder.
"C:\xampp\phpMyAdmin\libraries”
you will find a file there named, "config.default.php". Open the file into any editor or in notepad and find the line "$cfg['ExecTimeLimit'] = 300;", change the value to 0. i.e. $cfg['ExecTimeLimit'] = 0; and save the file. After saving the file restart your xampp control panel.
Hurrah! Your problem has been solved.
Related
How to increase transaction timeout? I want to upload videos, but large size of videos not uploaded?
It throws error The process *** exceeded the timeout of 60 seconds.
You need to change some settings in your php.ini:
upload_max_filesize = 2M
;or whatever size you want
max_execution_time = 60
; also, higher if you must - sets the maximum time in seconds
Where your PHP.ini is located depends on your system environment. For more information: http://php.net/manual/en/ini.list.php
You should be able to do during runtime too using
set_time_limit(100);
http://php.net/manual/en/function.set-time-limit.php
or in your vhost-config
php_admin_value max_execution_time 10000
Having a global execution time limit that is LOW is mostly a good idea for performance-reasons on not-so-reliable applications. So you might want to only allow those scripts to run longer that absolutely have to.
p.s.: Dont forget about post_max_size and upload_max_filesize (like the first answer told allready)
To complete the answer of Hannes.
You need to change some setting in your php.ini:
upload_max_filesize = 2M
;or whatever size you want
max_execution_time = 60
; also, higher if you must
If someone want put in unlimited (I don't know why but if you want), you can set the time to 0:
You need to change some setting in your php.ini:
upload_max_filesize = 0
max_execution_time = 0
And if you don't know where is your php.ini. You can do a file "name.php" in your server and put:
<?php phpinfo(); ?>
And on your website, you can see the config of your php.ini and it's marked where is it.
Edit on 9 January 2015:
If you can't access your php.ini, you have two more options.
You can set this line directly in your "name.php" file but I don't find for upload_max_filesize for this option:
set_time_limit(0);
Or in ".htaccess"
php_value upload_max_filesize 0
php_value max_execution_time 0
if what you need to do is specific only for 1 or 2 pages i suggest to use set_time_limit so it did not affect the whole application.
set_time_limit(some_values);
but ofcourse these 2 values (post_max_size & upload_max_filesize) are subject to investigate.
you either can set it via ini_set function
ini_set('post_max_size','20M');
ini_set('upload_max_filesize','2M');
or directly in php.ini file like response above by Hannes, or even set it iin .htaccess like below
php_value upload_max_filesize 2M
php_value post_max_size 20M
If you happen to be using Microsoft IIS server, in addition to the php.ini settings mentioned by others, you may need to increase the execution timeout settings for the PHP FastCGI application in the IIS Server Manager:
Step 1) Open the IIS Server Manager (usually under Server Manager in the Start Menu, then Tools / Internet Information Services (IIS) Manager).
Step 2) Click on the main connection (not specific to any particular domain).
Step 3) Under the IIS section, find FastCGI Settings (shown below).
Step 4) Therein, right-click the PHP application and select Edit....
Step 5) Check the timeouts (shown below).
In my case, the default timeouts here were 70 and 90 seconds; the former of which was causing a 500 Internal Server Error on PHP scripts that took longer than 70 seconds.
As an addition to above answers, you may use set_time_limit() function:
http://php.net/manual/en/function.set-time-limit.php
passing 0 as an argument will make your script run with no time limit.
If you cannot edit php.ini (on your server for example) you can attempt to change the php.ini parameters from within your php code. Try:
ini_set('max_execution_time', 'NUMBER OF SECONDS TO ALLOW BEFORE TIMEOUT');
If that doesn't work, try also setting 'set_time_limit' in the same way, beyond that I'd say your only option is to contact your host. These settings cannot be modified while in safe mode.
You had a typo: ini_set('max_input_time','200M') - value set needs to be an int, like ini_set('max_input_time','200')
I know you are specifically asking about the PHP timeout, but what no one else seems to have mentioned is that there can also be a timeout on the webserver and it can look very similar to the PHP timeout.
So if you have tried:
Increasing the timeout in php.ini by adding a line: max_execution_time = {number of seconds i.e. 60 for one minute}
Increasing the timeout in your script itself by adding: ini_set('max_execution_time','{number of seconds i.e. 60 for one minute}');
And you have checked with the phpinfo() function that max_execution_time has indeed be increased, then you might want to try adding this to .htaccess which will make sure Apache itself does not time out:
RewriteRule .* - [E=noabort:1]
RewriteRule .* - [E=noconntimeout:1]
More info here:
https://www.antropy.co.uk/blog/php-script-keeps-timing-out-despite-ini-set/
First check the php.ini file path by phpinfo(); and then changed PHP.INI params:
upload_max_filesize = 1000M
memory_limit = 1500M
post_max_size = 1500M
max_execution_time = 30
restarted Apache
set_time_limit(0); // safe_mode is off
ini_set('max_execution_time', 500); //500 seconds
Note: you can also use command to find php.ini in Linux
locate `php.ini`
Test if you are is safe mode - if not - set the time limit (Local Value) to what you want:
if(!ini_get('safe_mode')){
echo "safe mode off";
set_time_limit(180);// seconds
phpinfo();// see 'max_execution_time'
}
*You cannot set time limit this way if safe mode 'on'.
optional : if you set config about php.ini but still can't upload
-this is php function to check error code
$error_type = [];
$error_type[0] = "There is no error";
$error_type[1] = "The uploaded file exceeds the upload_max_filesize directive in php.ini.";
$error_type[2] = "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form.";
$error_type[3] = "The uploaded file was only partially uploaded.";
$error_type[4] = "No file was uploaded.";
//$error_type["5"] = "";
$error_type[6] = "Missing a temporary folder. Introduced in PHP 5.0.3.";
$error_type[7] = "Failed to write file to disk. Introduced in PHP 5.1.0.";
$error_type[8] = "A PHP extension stopped the file upload. PHP does not provide a way to ascertain which extension caused the file upload to stop; examining the list of loaded extensions with phpinfo() may help. Introduced in PHP 5.2.0.";
//------------------------------
//--> show msg error.
$status_code = $_FILES["uploadfile"]["error"];
if($status_code != 0){
echo $error_type[$status_code];
exit;
}
You can also set a max execution time in your .htaccess file:
php_value max_execution_time 180
To really increase the time limit i prefer to first get the current value. set_time_limit is not always increasing the time limit. If the current value (e.g. from php.ini or formerly set) is higher than the value used in current call of set_time_limit, it will decrease the time limit!
So what's with a small helper like this?
/**
* #param int $seconds Time in seconds
* #return bool
*/
function increase_time_limit(int $seconds): bool
{
return set_time_limit(max(
ini_get('max_execution_time'), $seconds
));
}
// somewhere else in your code
increase_time_limit(180);
See also: Get max_execution_time in PHP script
I keep getting this PHP error:
Fatal error: Maximum execution time of 300 seconds exceeded
I have tried setting my max_execution_time and my max_input_time settings in php.ini (both apache and cli) to 0, -1 and 4000 seconds each.
And i still get the error saying:
Fatal error: Maximum execution time of 300 seconds exceeded
As well my script runs over 300 seconds before i get this message
I am running the script through command line.
I also checked my phpinfo() so see which php.ini I am using.
Even more interesting I have tried setting max_execution_time and max_input_time settings to 5 second and my script will run way beyond 5 seconds before I get the:
Fatal error: Maximum execution time of 300 seconds exceeded
If you are using WAMP Go to :
Increase the max_execution_time in php.ini then go to
C:\wamp\apps\phpmyadmin3.4.10.1\libraries (change path according to your installation)
open config.default.php and change value for $cfg['ExecTimeLimit'] to 0:
$cfg['ExecTimeLimit'] = 0;
This will resolve the issue for PhpMyAdmin imports.
Xampp Users
Go to xampp\phpMyAdmin\
Open config.inc.php
Search for $cfg['ExecTimeLimit'] = 300;
Set a larger value or change to 0 for unlimited
If not found add $cfg['ExecTimeLimit'] = 900; (or 0 for unlimited)
Save the file and restart the server
Important: setting the execution time limit to unlimited is not recommended.
At the beginning of your script you can add.
ini_set('MAX_EXECUTION_TIME', '-1');
I encountered a similar situation, and it turns out that Codeigniter (the PHP framework I was using) actually sets its own time limit:
In system/core/Codeigniter.php, line 106 in version 2.1.3 the following appears:
if (function_exists("set_time_limit") == TRUE AND #ini_get("safe_mode") == 0)
{
#set_time_limit(300);
}
As there was no other way to avoid changing the core file, I removed it so as to allow configuration through php.ini, as well as give the infinite maximum execution time for a CLI request.
I recommend recording this change somewhere in the case of future CI version upgrades however.
For Xampp Users
1. Go to C:\xampp\phpMyAdmin\libraries
2. Open config.default.php
3. Search for $cfg['ExecTimeLimit'] = 300;
4. Change to the Value 300 to 0 or set a larger value
5. Save the file and restart the server
6. OR Set the ini_set('MAX_EXECUTION_TIME', '-1'); at the beginning of your script you can add.
Try something like the following in your script:
set_time_limit(1200);
go to the xampp/phpmyadmin/libraries/config.default.php
and make the following changes
from $cfg['ExecTimeLimit'] = ’300′;
to $cfg['ExecTimeLimit'] = ’0′;
This is the the right answer:
go to
c:\wamp\apps\phpmyadmin3.4.10.1\libraries\config.default.php
find and set
$cfg['ExecTimeLimit'] = 0;
restart all services
and done.
For Local AppServ
Go to C:\AppServ\www\phpMyAdmin\libraries\config.default.php
Find $cfg['ExecTimeLimit'] and set value to 0.
So it'll look like
$cfg['ExecTimeLimit'] = 0;
If xampp in localserver
Goto C:\xampp\phpMyAdmin\libraries\config.default.php
//find $cfg['ExecTimeLimit']= 300;
//increase this value
$cfg['ExecTimeLimit'] = 3000;
So, after spending hours, this works for me (2023)
adding $cfg['ExecTimeLimit'] = 6000; into xampp/phpMyAdmin/config.inc.php
also I change $cfg['ExecTimeLimit'] = 6000; in xampp/phpMyAdmin/libraries/configdefault.php
PHP's CLI's default execution time is infinite.
This sets the maximum time in seconds a script is allowed to run
before it is terminated by the parser. This helps prevent poorly
written scripts from tying up the server. The default setting is 30.
When running PHP from the command line the default setting is 0.
http://gr.php.net/manual/en/info.configuration.php#ini.max-execution-time
Check if you're running PHP in safe mode, because it ignores all time exec settings when on that.
On Xampp, in php.ini you must check mysql.connect_timeout either. So, for example, change it to:
mysql.connect_timeout = 3600
That time will be always counted in seconds (so 1 hour in my example)
MAMP USERS
editing php.ini solves this - there is a line:
max_execution_time = 30 ; Maximum execution time of each script, in seconds
setting this to a higher value worked.
the file is in php/php5.6.25/conf/php.ini (obviousl you need to wet the file for the php version you are using - you can find this out from the MAMP preferences.
If you are on xampp and using phpMyadmin to import large sql files and you have increased max_execution time, max file upload limit and everything needed And If none of the above answers work for you come here
Go to your xampp folder, in my case here is the relative path to the file that I need to modify: C:\xampp\phpMyAdmin\libraries\config.default.php
/**
* maximum execution time in seconds (0 for no limit)
*
* #global integer $cfg['ExecTimeLimit']
* by defautlt 300 is the value
* change it to 0 for unlimited
* time is seconds
* Line 709 for me
*/
$cfg['ExecTimeLimit'] = 0;
WAMP USERS:
1) Go to C:\wamp\apps\phpmyadmin
2) Open config.inc
3) Add $cfg['ExecTimeLimit'] = ’3600′; to the file.
4) Save the file and restart the server.
This file overwrites the php.ini and will work for you!
In my case, when I faced that error in Phpmyadmin, I tried MySQL-Front and import my DB successfully.
Note: You can still use the provided solutions under this question to solve your problem in Phpmyadmin.
If above answers will not work, try to check your code,,In my experience,having an infinite loop will also cause that problem.Check your else if statement.
In Codeignitor version 3.0.x the system/core/Codeigniter.php do not contain the time constraint as well as inserting
ini_set('MAX_EXECUTION_TIME', -1);
will not work since codeignitor will override that with its own function set_time_limit() .
So either you have to delete that function from codeignitor or simply you can insert
set_time_limit('1000');
in the beginning of the php file if you wanna change that to 1000 seconds.
Set the time to 0 (zero) if you want to run it as long as it want.
On wamp in my configuration where I have multiple phpmyadmins, the values in config files were overwritten in wamp/alias/phpmyadmin.conf. I set up two lines there:
1. php_admin_value max_execution_time 3600
2. php_admin_value max_input_time 3600
... it finally worked!
For OpenServer
modules\system\html\openserver\phpmyadmin\libraries\config.default.php
change
$cfg[‘ExecTimeLimit’] = 600
You can set time limit:
ini_set('max_execution_time', 1000000000000000);
I'm trying to upload this sql file that's 225MB to phpmyadmin with MAMP.
However, I keep getting this error
Script timeout passed, if you want to finish import, please resubmit the same file and import will resume.
I've changed the php.ini file in MAMP like so:
max_execution_time = 6000
max_input_time = 6000
memory_limit = 1000M
post_max_size = 750M
upload_max_filesize = 750M
I've also changed the setting in \phpmyadmin\libraries\config.default.php, like this:
$cfg['ExecTimeLimit'] = 0;
Is there any other solution that works for this issue?
Thank you.
I think You need to change the execution time limit in config.default.php as following:
$cfg['ExecTimeLimit'] = 3600; // whatever time you want to put as execution time
As the script is running out of time so you should have to increase its execution time in MAMP and restart.
I just ran into this problem myself and here is my fix.
I am using Mamp Pro, so I searched for phpmyadmin on my mac using Finder search bar.
It found a file called config.inc.php. The file was living under /Library/Application Support/appsolute/MAMP PRO/phpMyAdmin
I then found the line for $cfg['ExecTimeLimit'] and changed the value to 3600.
Save the file. Restart Mamp Pro. Database imported successfully.
I am getting script timeout issue while importing a database from a zip. The error shows as-
Script timeout passed, if you want to finish import, please resubmit
same file and import will resume.
I tried setting $cfg['ExecTimeLimit'] = 0; inside phpmyadmin4.1.14/libraries/config.default.php.
Also inside my php.ini I set both max_input_time and max_execution_time to 0.
The zip size is around 33 MB and I'm using WAMP server.
What could be the other cases for which I'm getting this error?
Since you get script time out, shouldn't you increase the max_execution_time in php.ini instead of reducing it?
Try with the following values:
post_max_size = 500M
upload_max_filesize = 500M
max_execution_time = 300
max_input_time = 540
memory_limit = 1000M
EDIT: just noticed that max_execution_time is hardcoded to 0, still you can try the above settings.
Please be aware that apache also has an execution time.
Apache Wait Time for Input/Output
Edit file C:\WampDeveloper\Config\Apache\extra\httpd-default.conf
Timeout = 300
This issue commonly arise when we working on heavy load php application. This error comes when you are getting bulk of data from database. Then this type of issue come. You should check the following things in you code.
Check you database queries properly.
With Select statement you should use the Limit offset.
Check each table should have the primary key.
This issue also come when we are upload images or some thing like wise. Some time we did get solution for the heavy load image's then we try to change the logic and try to solve the issue. One more thing that you should check you php.ini configuration setting Increase these values in MB.As follows.
post_max_size = 500M
upload_max_filesize = 500M
max_execution_time = 300
max_input_time = 540
memory_limit = 1000M
I have a VPS that runs XAMPP and gives service to an iPhone App that I made.
I used ASIHTTPRequest to upload files to the server.
The App sends files to the server, and the server accept only those who are lighter then 2MB.
I also checked with Wireshark and found this warning:
PHP Fatal error: Maximum execution time of 60 seconds exceeded in c:/xxx/index.php in line 2
in line 2 I wrote: session_start();
in my theory they are 2 things that block big files from entering my server:
Some kind of file size limit
Some kind of time limit per action
I really need help on this one. Thanks!
Check the settings in your php.ini file which, when running XAMPP, can be found in the *root*/php/ directory.
#Make sure file uploads are turned on
file_uploads = On
#Change the max upload size to 100Mb
upload_max_filesize = 100M
#Change the max post size to 100Mb
post_max_size = 100M
#Change the max upload time to 900seconds
max_input_time = 900
#This is where you are seeing your problem as the script execution is timing out.
#Change the max execution time of the script to 900 seconds
max_execution_time = 900
Check the following lines in your php.ini file:
upload_max_filesize = 2M
max_execution_time = 300
You might have to restart your server afterwards.
The error says: Maximum execution time of 60 seconds exceeded
This makes me think that your internet-connection is slow, thus the upload is taking more than the max_execution_time
To see what the max_execution_time currently is:
$maxtime = ini_get(max_execution_time);
echo $maxtime;
To make the max_execution_time bigger for the current page, enter this line on top of your PHP-file:
ini_set("max_execution_time", 600);?>
Put at the topo of your index.php:
<?php
ini_set('max_execution_time', 180); //Put the number of seconds that you want
The upload_max_filesize can't be change in runtime, so you need to increase this value in your php.ini