ആർട്ടിക്കിൾ ഡയറക്ടറി
വേർഡ്പ്രസ്സ് ഉപയോഗിച്ച് വെബ്സൈറ്റുകൾ നിർമ്മിക്കാൻ പഠിക്കുമ്പോൾ , ഓൺലൈൻ മാർക്കറ്റിംഗിലെ പല തുടക്കക്കാർക്കും വളരെക്കാലം ശൂന്യമായ PHP പേജുകൾ നേരിടേണ്ടിവരുന്നു .
തുടർന്ന് ഇനിപ്പറയുന്ന പിശക് സന്ദേശം ദൃശ്യമാകുന്നു:
Fatal error: Maximum execution time of 30 seconds exceeded in ......വളരെ ലളിതമായി പറഞ്ഞാൽ, PHP എക്സിക്യൂഷൻ സമയം 30 സെക്കൻഡ് പരിധി കവിയുന്നു എന്നാണ്.
ചെൻ വെയ്ലിയാങ്ങിന് ഈ പിശക് മുമ്പ് നേരിട്ടിരുന്നു, അത് എങ്ങനെ കൈകാര്യം ചെയ്യണമെന്ന് ഈ ലേഖനം സംഗ്രഹിക്കുന്നു.
പിശക് എങ്ങനെ പരിഹരിക്കാം?
അടിസ്ഥാനപരമായി, ഈ പിശക് കൈകാര്യം ചെയ്യാൻ 3 വഴികളുണ്ട്:
- php കോൺഫിഗറേഷൻ ഫയൽ php.ini ഫയൽ പരിഷ്ക്കരിക്കുക
- ini_set() ഫംഗ്ഷൻ ഉപയോഗിക്കുന്നു
- set_time_limit() ഫംഗ്ഷൻ ഉപയോഗിക്കുന്നു
1) php കോൺഫിഗറേഷൻ ഫയൽ php.ini ഫയൽ പരിഷ്ക്കരിക്കുക
php.ini ഫയൽ കണ്ടെത്തി ഈ ഫയലിൽ കണ്ടെത്തുക:
max_execution_time = 30 ;
ഈ വരിയിൽ, ആവശ്യമുള്ള മൂല്യത്തിലേക്ക് (സെക്കൻഡിൽ) നമ്പർ 30 സജ്ജമാക്കുക.
ഇത് നേരിട്ട് പരിഷ്കരിക്കാനും കഴിയും:
max_execution_time = 0; //无限制
മാറ്റങ്ങൾ വരുത്തിയ ശേഷം നിങ്ങൾ ലിനക്സ് സെർവർ പുനരാരംഭിക്കേണ്ടതുണ്ടെന്ന് ദയവായി ശ്രദ്ധിക്കുക .
2) ini_set() ഫംഗ്ഷൻ ഉപയോഗിക്കുക
php.ini പരിഷ്കരിക്കാൻ കഴിയാത്ത പുതിയ മീഡിയ പ്രൊഫഷണലുകൾക്ക് , പരമാവധി എക്സിക്യൂഷൻ സമയ പരിധി മാറ്റാൻ ini_set() ഫംഗ്ഷൻ ഉപയോഗിക്കാം.
പ്രോഗ്രാമിന്റെ മുകളിൽ ഇനിപ്പറയുന്ന കോഡ് ചേർക്കുക:
ini_set('max_execution_time','100');- മുകളിലുള്ള ക്രമീകരണം 100 സെക്കൻഡ് ആണ്, നിങ്ങൾക്ക് ഇത് 0 ആയി സജ്ജീകരിക്കാനും കഴിയും, അതായത് നിർവ്വഹണ സമയത്തിൽ മാത്രം പരിമിതപ്പെടുത്തരുത്.
3) set_time_limit() ഫംഗ്ഷൻ ഉപയോഗിക്കുക
പ്രോഗ്രാമിന്റെ മുകളിൽ ചേർക്കുക:
set_time_limit(100);
- ഇതിനർത്ഥം പരമാവധി എക്സിക്യൂഷൻ സമയം 100 സെക്കൻഡായി സജ്ജീകരിച്ചിരിക്കുന്നു എന്നാണ്.
- തീർച്ചയായും, പരാമീറ്റർ 0 ആയി സജ്ജമാക്കാം, അതായത്പരിധിയില്ലാത്ത∞. ∞. δικαν
set_time_limit ഫംഗ്ഷന്റെ വിവരണം:
void set_time_limit ( int $seconds )
സ്ക്രിപ്റ്റ് പ്രവർത്തിപ്പിക്കാൻ അനുവദിക്കുന്ന സമയം (സെക്കൻഡിൽ) സജ്ജീകരിക്കുക എന്നതാണ് ഈ ഫംഗ്ഷൻ ചെയ്യുന്നത്.
- ഈ ക്രമീകരണം കവിഞ്ഞാൽ, സ്ക്രിപ്റ്റ് ഒരു മാരകമായ പിശക് നൽകും.
- സ്ഥിരസ്ഥിതി 30 സെക്കൻഡ് ആണ്, ഈ മൂല്യം നിലവിലുണ്ടെങ്കിൽ, ഇത് php.ini-ലെ max_execution_time എന്നതിൽ നിർവചിച്ചിരിക്കുന്ന മൂല്യമാണ്.
- ഈ ഫംഗ്ഷൻ വിളിക്കുമ്പോൾ, set_time_limit() പൂജ്യത്തിൽ നിന്ന് ടൈംഔട്ട് കൗണ്ടർ പുനരാരംഭിക്കും.
മറ്റൊരു വിധത്തിൽ പറഞ്ഞാൽ, ടൈംഔട്ട് ഡിഫോൾട്ട് 30 സെക്കൻഡ് ആണെങ്കിൽ, സ്ക്രിപ്റ്റ് 25 സെക്കൻഡ് പ്രവർത്തിക്കുമ്പോൾ, വിളിക്കുകset_time_limit(20), സ്ക്രിപ്റ്റിന് സമയം തീരുന്നതിന് മുമ്പ് മൊത്തം 45 സെക്കൻഡ് പ്രവർത്തിക്കാൻ കഴിയും.
php സുരക്ഷിത മോഡിൽ പ്രവർത്തിക്കുമ്പോൾ ഇത് പ്രവർത്തിക്കില്ല.
സുരക്ഷിത മോഡ് ഓഫാക്കാനാകും:
- ൽ
php.iniസുരക്ഷിത_മോഡ് ഓഫ് ആയി സജ്ജമാക്കുക. - അല്ലെങ്കിൽ മാറ്റം
php.iniലെ സമയ പരിധി.
സമയ_പരിധി സജ്ജമാക്കുക ഉദാഹരണം
സുരക്ഷിത മോഡ് ഓണാക്കിയില്ലെങ്കിൽ, ഇൻസ്റ്റാളർ 25 സെക്കൻഡ് പ്രവർത്തിക്കും.
ഉദാ:
<?php
if(!ini_get('safe_mode')){
set_time_limit(25);
}ചെൻ വെയ്ലിയാങ്ങിന്റെ ബ്ലോഗിൽ ( https://www.chenweiliang.com/ ) പങ്കിട്ട "PHP പിശക് പരിഹരിക്കൽ 'പരമാവധി എക്സിക്യൂഷൻ സമയം 30 സെക്കൻഡ് കവിഞ്ഞു'" എന്ന ലേഖനം നിങ്ങൾക്ക് സഹായകരമാകുമെന്ന് പ്രതീക്ഷിക്കുന്നു.
ഈ ലേഖനത്തിന്റെ ലിങ്ക് പങ്കിടാൻ മടിക്കേണ്ടതില്ല: https://www.chenweiliang.com/cwl-1481.html
