"Fungsi set_time_limit () dan direktif konfigurasi max_execution_time hanya memengaruhi waktu eksekusi skrip itu sendiri. Setiap waktu yang dihabiskan untuk aktivitas yang terjadi di luar pelaksanaan skrip seperti panggilan sistem menggunakan sistem (), operasi aliran, permintaan basis data, dll. tidak disertakan ketika menentukan waktu maksimum skrip telah berjalan. Ini tidak benar pada Windows "Dari Dokumentasi PHP
Jacob Sánchez
Jawaban:
722
Lingkaran Anda mungkin tidak ada habisnya. Jika tidak, Anda dapat memperpanjang waktu eksekusi maksimum seperti ini:
set_time_limit (300) dapat digunakan untuk sementara waktu memperpanjang batas waktu.
Omn
Apakah ini ditetapkan hanya untuk satu skrip atau akan memengaruhi semua skrip lain yang dieksekusi setelah skrip ini di server yang sama?
Rao
1
@Rao ya, ini hanya untuk satu skrip itu. Untuk membuatnya untuk semua skrip, Anda perlu mengubahnya di file php.ini. Anda juga bisa melakukan set_time_limit (0); jika Anda ingin skrip berjalan selamanya, atau untuk waktu yang lama
Haseeb
31
ini_set ('max_execution_time', 0); // tanpa batas
Junaid Atari
3
@samam aku akan mengatakan itu praktik terbaik, untuk menjaga batas ini serendah mungkin sambil memungkinkan sejumlah buffer tambahan. Karena alasan keamanan saya tidak ingin mematikannya sepenuhnya. Itu harus ditetapkan masuk akal. Saya benar-benar mengaturnya dua kali lipat dari jumlah waktu yang dibutuhkan untuk menjalankan skrip terpanjang saya di bawah tingkat stres server sedang. Tetap saja itu selalu bisa gagal. Jadi praktik terbaik adalah menangani masalah time-out untuk skrip yang memakan waktu secara terpisah.
Hafenkranich
185
Saya memiliki masalah yang sama dan menyelesaikannya dengan mengubah nilai param max_execution_timedi php.ini, seperti ini:
max_execution_time =360; Maximum execution time of each script, in seconds (I CHANGED THIS VALUE)
max_input_time =120; Maximum amount of time each script may spend parsing request data;max_input_nesting_level = 64 ; Maximum input variable nesting level
memory_limit =128M ; Maximum amount of memory a script may consume (128MB by default)
Skrip Anda kehabisan waktu. Lihatlah fungsi set_time_limit () untuk mempercepat waktu eksekusi. Atau profil skrip untuk membuatnya berjalan lebih cepat :)
@HarshaMV Dia berarti menggunakan profil kinerja untuk menentukan mengapa skrip lambat untuk memulai, dan mengoptimalkan kode Anda untuk meningkatkan waktu eksekusi. Ini mungkin bermanfaat atau tidak, tergantung pada apa yang menjadi hambatannya (CPU vs. Disk I / O vs. Network).
Dan Bechard
12
jika semua hal di atas tidak berhasil, tambahkan .htaccessfile ke direktori tempat skrip Anda berada dan letakkan di dalamnya
ini adalah cara saya memecahkan masalah saya, tidak ini_set('max_execution_time', 86400);juga set_time_limit(86400)memecahkan masalah saya, tetapi metode .htaccess melakukannya.
Pada penyedia hosting tertentu, Anda mungkin perlu mengaktifkan /home/[username[/.php/7.0/phprc
expertCode
7
Mungkin memeriksa segala hal yang telah Anda ubah di bawah file php.ini. Misalnya saya mengubah "; intl.default_locale =" menjadi "; intl.default_locale = en_utf8" untuk mengaktifkan "ekstensi internasionalisasi (Intl)" tanpa menambahkan "extension = php_intl.dll" maka kesalahan yang sama terjadi. Jadi saya sarankan untuk memeriksa kesalahan yang sama.
Jawaban:
Lingkaran Anda mungkin tidak ada habisnya. Jika tidak, Anda dapat memperpanjang waktu eksekusi maksimum seperti ini:
dan
dapat digunakan untuk sementara waktu memperpanjang batas waktu.
sumber
Saya memiliki masalah yang sama dan menyelesaikannya dengan mengubah nilai param
max_execution_time
diphp.ini
, seperti ini:Saya harap ini bisa membantu Anda.
sumber
php.ini
dapat ditemukan di/etc/php5/apache2/php.ini
.... Saya menggunakan ubuntu 13.04 ...Semua jawaban di atas benar, tetapi saya menggunakan cara sederhana untuk menghindarinya dalam beberapa kasus.
Masukkan saja perintah ini di awal skrip Anda:
sumber
Saya mengalami masalah ini saat meningkatkan ke WordPress 4.0 . Secara default WordPress membatasi waktu eksekusi maksimum hingga 30 detik.
Tambahkan kode berikut ke file .htaccess Anda di direktori root Anda dari Instalasi WordPress Anda untuk over-ride default.
sumber
Edit php.ini
Temukan baris ini:
Ubah nilainya menjadi 300:
300 berarti 5 menit waktu eksekusi untuk permintaan http.
sumber
Skrip Anda kehabisan waktu. Lihatlah fungsi set_time_limit () untuk mempercepat waktu eksekusi. Atau profil skrip untuk membuatnya berjalan lebih cepat :)
sumber
jika semua hal di atas tidak berhasil, tambahkan
.htaccess
file ke direktori tempat skrip Anda berada dan letakkan di dalamnyaini adalah cara saya memecahkan masalah saya, tidak
ini_set('max_execution_time', 86400);
jugaset_time_limit(86400)
memecahkan masalah saya, tetapi metode .htaccess melakukannya.sumber
Kita dapat memecahkan masalah ini dengan 3 cara berbeda.
1) Menggunakan file php.ini
2) Menggunakan file .htaccess
3) Menggunakan file Wp-config.php (untuk Wordpress)
sumber
Anda dapat menghapus batasan dengan menetapkannya menjadi nol dengan menambahkan baris ini di bagian atas skrip Anda:
sumber
Ikuti jalannya
/etc/php5(your php version)/apache2/php.ini
.Buka dan atur nilainya
max_execution_time
menjadi yang diinginkan.sumber
Mungkin memeriksa segala hal yang telah Anda ubah di bawah file php.ini. Misalnya saya mengubah "; intl.default_locale =" menjadi "; intl.default_locale = en_utf8" untuk mengaktifkan "ekstensi internasionalisasi (Intl)" tanpa menambahkan "extension = php_intl.dll" maka kesalahan yang sama terjadi. Jadi saya sarankan untuk memeriksa kesalahan yang sama.
sumber
Tingkatkan waktu eksekusi skrip Anda dengan menambahkan baris berikut di atas skrip PHP.
Referensi diambil dari Meningkatkan Waktu Eksekusi Script PHP
sumber
Untuk memperpanjang Anda,
max_execution_time
Anda dapat menggunakan salah satuini_set
atauset_time_limit
.!! Tetapi perlu diketahui bahwa, kedua fungsi restart juga menghitung skrip waktu telah diambil untuk mengeksekusi
jadi jika Anda ingin mengatur jumlah maksimum skrip waktu yang dapat dijalankan, perintah Anda harus menjadi yang pertama.
Perbedaan antara kedua fungsi tersebut adalah
set_time_limit
tidak mengembalikan info apakah itu berhasil tetapi akan memberikan peringatan kesalahan.ini_set
mengembalikan nilai lama pada kesuksesan, atau false pada kegagalan tanpa peringatan / kesalahansumber
Anda dapat melakukannya dengan mudah dengan WHM. Baru saja ke:
(30 secara default mengubahnya ke nilai apa pun yang Anda inginkan)
sumber
Saya memiliki masalah yang sama di situs WordPress, saya menambahkan file .htaccess kemudian bekerja dengan baik untuk saya.
sumber
Saya telah membuat beberapa perubahan dalam kasus saya di: xampp \ phpMyAdmin \ libraries \ config.default.php
saya telah mencari:
$cfg['ExecTimeLimit']
dan mengubah nilai di sisi kanan ...Anda dapat mengubah Nilai Tangan Kanan ke nilai yang lebih tinggi, seperti '5000'. dan itu berhasil.
sumber