Rumah >pangkalan data >tutorial mysql >Mengapakah `set_time_limit` dan `ini_set(\'max_execution_time\')` tidak berkesan pada pelayan jauh saya dengan mod selamat didayakan?
Fungsi Had Masa PHP Tidak Berkesan pada Pelayan Jauh
Apabila menetapkan had masa menggunakan set_time_limit(50) atau ini_set('max_execution_time', 50) setempat, mendapatkan max_execution_time menghasilkan nilai yang diingini. Walau bagaimanapun, pada pelayan yang berbeza, ia kembali kepada nilai lalai (30 saat), menjadikan fungsi ini tidak berkesan.
Penjelasan
Isu timbul disebabkan oleh tetapan mod selamat pada pelayan jauh. Dalam mod selamat PHP, adalah tidak mungkin untuk mengubah suai tetapan max_execution_time menggunakan ini_set(). Sekatan ini juga digunakan untuk set_time_limit().
Penyelesaian
Untuk menyelesaikan isu ini, terdapat dua pilihan:
Sebab Sekatan Mod Selamat
Mod selamat diperkenalkan dalam PHP untuk meningkatkan keselamatan dengan mengehadkan tindakan tertentu yang boleh dilakukan oleh skrip. Mencegah skrip daripada berjalan selama-lamanya ialah salah satu daripada langkah keselamatan ini.
Nota: Manual PHP menyatakan dengan jelas bahawa set_time_limit() dan ini_set('max_execution_time', 50) tidak mempunyai kesan apabila selamat mod didayakan. Satu-satunya penyelesaian adalah untuk melumpuhkan mod selamat atau melaraskan had masa dalam fail php.ini.
Atas ialah kandungan terperinci Mengapakah `set_time_limit` dan `ini_set('max_execution_time')` tidak berkesan pada pelayan jauh saya dengan mod selamat didayakan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!