ແກ້ໄຂຂໍ້ຜິດພາດທີ່ php ກະຕຸ້ນເວລາປະຕິບັດສູງສຸດ 30 ວິນາທີເກີນ

ຢ່າງຫຼາຍຂອງການເປັນເວັບໄຊທ໌ທີ່ກ່ຽວຂ້ອງການ​ຮຽນ​ຮູ້​ໃຫມ່​ເວັບໄຊທ໌ WordPress, ຫນ້າ PHP ແມ່ນຫວ່າງເປົ່າເປັນເວລາດົນນານ.

ຫຼັງຈາກນັ້ນ, ຂໍ້ຄວາມສະແດງຂໍ້ຜິດພາດຕໍ່ໄປນີ້ຈະປາກົດ:

Fatal error: Maximum execution time of 30 seconds exceeded in ......

ຂ້ອນຂ້າງງ່າຍດາຍ, ມັນຫມາຍຄວາມວ່າເວລາປະຕິບັດ PHP ເກີນຂອບເຂດຈໍາກັດ 30 ວິນາທີ.

Chen Weiliangຂໍ້ຜິດພາດນີ້ຍັງເຄີຍພົບມາກ່ອນ, ແລະບົດຄວາມນີ້ສະຫຼຸບວິທີການຈັດການຄວາມຜິດພາດ.

ວິ​ທີ​ການ​ແກ້​ໄຂ​ຄວາມ​ຜິດ​ພາດ​?

ໂດຍພື້ນຖານແລ້ວ, ມີ 3 ວິທີທີ່ຈະຈັດການກັບຄວາມຜິດພາດນີ້:

  1. ແກ້ໄຂໄຟລ໌ການຕັ້ງຄ່າ php ໄຟລ໌ php.ini
  2. ການໃຊ້ຟັງຊັນ ini_set().
  3. ໃຊ້ຟັງຊັນ set_time_limit()

1) ແກ້ໄຂໄຟລ໌ການຕັ້ງຄ່າ php ໄຟລ໌ php.ini

ຊອກຫາໄຟລ໌ php.ini ແລະຊອກຫາມັນຢູ່ໃນໄຟລ໌ນີ້:

max_execution_time = 30 ;

ໃນເສັ້ນນີ້, ກໍານົດຕົວເລກ 30 ກັບຄ່າທີ່ຕ້ອງການ (ໃນວິນາທີ).

ມັນຍັງສາມາດຖືກແກ້ໄຂໂດຍກົງກັບ:

max_execution_time = 0; //无限制

ໃຫ້ສັງເກດວ່າການປິດເປີດໃຫມ່ແມ່ນຕ້ອງການຫຼັງຈາກການດັດແກ້Linuxເຊີບເວີ.

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 ວິນາທີ, ຖ້າຄ່ານີ້ມີຢູ່, ມັນແມ່ນຄ່າທີ່ກໍານົດໄວ້ໃນ max_execution_time ໃນ php.ini.
  • ເມື່ອຟັງຊັນນີ້ຖືກເອີ້ນ, set_time_limit() ຈະເລີ່ມການນັບເວລາໝົດເວລາຄືນໃໝ່ຈາກສູນ.

ໃນຄໍາສັບຕ່າງໆອື່ນໆ, ຖ້າເວລາຫມົດເວລາເລີ່ມຕົ້ນເປັນ 30 ວິນາທີ, ແລະເມື່ອ script ແລ່ນສໍາລັບ 25 ວິນາທີ, ໂທຫາ.set_time_limit(20), ສະຄຣິບສາມາດແລ່ນໄດ້ທັງໝົດ 45 ວິນາທີກ່ອນທີ່ຈະໝົດເວລາ.

ອັນນີ້ໃຊ້ບໍ່ໄດ້ເມື່ອ php ເຮັດວຽກຢູ່ໃນໂຫມດປອດໄພ.

ໂໝດປອດໄພສາມາດປິດໄດ້:

  • php.iniຕັ້ງ safe_mode ເປັນ off ໃນ .
  • ຫຼືປ່ຽນphp.iniກໍາ​ນົດ​ເວ​ລາ​ໃນ .

set_time_limit ຕົວຢ່າງ

ຖ້າ Safe Mode ບໍ່ເປີດ, ຕົວຕິດຕັ້ງຈະເຮັດວຽກເປັນເວລາ 25 ວິນາທີ.

ຕົວຢ່າງ:

<?php
if(!ini_get('safe_mode')){
set_time_limit(25);
}

ຫວັງ Chen Weiliang Blog ( https://www.chenweiliang.com/ ) shared "ການແກ້ໄຂຂໍ້ຜິດພາດຂອງເວລາປະຕິບັດສູງສຸດຂອງ 30 ວິນາທີເກີນໃນ PHP", ເຊິ່ງເປັນປະໂຫຍດສໍາລັບທ່ານ.

ຍິນດີຕ້ອນຮັບແບ່ງປັນການເຊື່ອມຕໍ່ຂອງບົດຄວາມນີ້:https://www.chenweiliang.com/cwl-1481.html

ເພື່ອປົດລັອກເຄັດລັບທີ່ເຊື່ອງໄວ້ເພີ່ມເຕີມ🔑, ຍິນດີຕ້ອນຮັບເຂົ້າສູ່ຊ່ອງ Telegram ຂອງພວກເຮົາ!

Share and like ຖ້າທ່ານມັກມັນ! ການແບ່ງປັນ ແລະຖືກໃຈຂອງເຈົ້າເປັນແຮງຈູງໃຈຢ່າງຕໍ່ເນື່ອງຂອງພວກເຮົາ!

 

评论评论

ທີ່ຢູ່ອີເມວຂອງເຈົ້າຈະບໍ່ຖືກເຜີຍແຜ່. ທົ່ງນາທີ່ກໍານົດໄວ້ແມ່ນຖືກນໍາໃຊ້ * ປ້າຍ ກຳ ກັບ

ເລື່ອນໄປທາງເທີງ