maaf, saya tidak mengerti apa yang Anda maksud dengan itu :(
Hannes
@Aamir, Anda harus memiliki izin dari host web Anda untuk mengubah konfigurasi server web Anda. Seringkali, mereka tidak mengizinkan Anda mengubah hal-hal seperti itu.
hellozimi
bisakah saya mengubah upload_max_filesize dan max_execution_time di file htaccess?
Aamir
2
@Col, saya tidak setuju, dia ingin membuat perubahan dengan cepat dan tidak secara keseluruhan, jadi dia bertanya bagaimana dia bisa melakukan itu. Dan bahkan jika dia bertanya bagaimana dia bisa mengubah beberapa hal di php.ini, itu mungkin pertanyaan pemula, tetapi pertanyaan yang sah tetap sama.
Hannes
1
@IulianOnofrei baiklah, hanya merasa perlu untuk menunjukkan itu: D, tapi mungkin jika Anda tidak tahu apa itu masih bagus untuk mencarinya ... "Mereka yang tidak bisa belajar dari sejarah ditakdirkan untuk mengulanginya" dan semua itu …
Hannes
57
Anda harus dapat melakukannya selama runtime juga menggunakan
Memiliki batas waktu eksekusi global yang RENDAH sebagian besar merupakan ide bagus untuk alasan kinerja pada aplikasi yang tidak terlalu andal. Jadi, Anda mungkin ingin hanya mengizinkan skrip tersebut berjalan lebih lama yang memang harus dilakukan.
ps: Jangan lupa tentang post_max_size dan upload_max_filesize (seperti jawaban pertama yang diceritakan sudah)
jika yang perlu Anda lakukan hanya spesifik untuk 1 atau 2 halaman saya sarankan untuk menggunakan set_time_limit agar tidak mempengaruhi keseluruhan aplikasi.
set_time_limit(some_values);
tetapi tentu saja 2 nilai ini (post_max_size & upload_max_filesize) dapat diselidiki.
Anda juga dapat mengaturnya melalui fungsi ini_set
set_time_limit () tidak ada hubungannya dengan unggahan file
Akal sehat Anda
1
Ini tidak cukup akurat Kolonel pecahan peluru. Sementara di lingkungan Unix, waktu eksekusi maksimal dibandingkan dengan waktu CPU kumulatif yang digunakan oleh php-thread, pada sistem windows waktu absolut digunakan. Mengupload sebagian besar adalah "waktu menganggur" (IO-Tunggu). Tapi seperti yang Anda lihat, unggahan bisa berhenti meski memakan waktu terlalu lama.
Christoph Strasen
4
Jika Anda kebetulan menggunakan server Microsoft IIS , selain pengaturan php.ini yang disebutkan oleh orang lain, Anda mungkin perlu meningkatkan pengaturan batas waktu eksekusi untuk aplikasi PHP FastCGI di IIS Server Manager:
Langkah 1) Buka IIS Server Manager (biasanya di bawah Server Manager di Start Menu, lalu Tools / Internet Information Services (IIS) Manager ).
Langkah 2) Klik pada koneksi utama (tidak spesifik untuk domain tertentu).
Langkah 3) Di bawah bagian IIS , temukan Pengaturan FastCGI (ditampilkan di bawah).
Langkah 5) Periksa batas waktu (ditampilkan di bawah).
Dalam kasus saya, batas waktu default di sini adalah 70 dan 90 detik; yang pertama menyebabkan 500 Internal Server Error pada skrip PHP yang membutuhkan waktu lebih dari 70 detik.
Saya tahu Anda secara khusus menanyakan tentang batas waktu PHP, tetapi yang tampaknya tidak disebutkan oleh orang lain adalah bahwa mungkin juga ada batas waktu di server web dan itu bisa terlihat sangat mirip dengan batas waktu PHP.
Jadi jika Anda sudah mencoba:
Meningkatkan batas waktu di php.ini dengan menambahkan baris: max_execution_time = {jumlah detik yaitu 60 untuk satu menit}
Meningkatkan batas waktu dalam skrip Anda sendiri dengan menambahkan: ini_set ('max_execution_time', '{number of seconds ie 60 for one minute}');
Dan Anda telah memeriksa dengan fungsi phpinfo () bahwa max_execution_time memang telah ditingkatkan, maka Anda mungkin ingin mencoba menambahkan ini ke .htaccess yang akan memastikan Apache sendiri tidak memiliki waktu habis:
Jika Anda tidak dapat mengedit php.ini (di server Anda misalnya), Anda dapat mencoba mengubah parameter php.ini dari dalam kode php Anda. Mencoba:
ini_set('max_execution_time','NUMBER OF SECONDS TO ALLOW BEFORE TIMEOUT');
Jika itu tidak berhasil, coba juga setel 'set_time_limit' dengan cara yang sama, di luar itu saya akan mengatakan satu-satunya pilihan Anda adalah menghubungi host Anda. Pengaturan ini tidak dapat diubah saat dalam mode aman.
Hannes mendapatkan ini satu menit sebelum saya memposting, dan dengan benar menunjukkan bahwa set_time_limit () tidak boleh disetel oleh ini_set, seperti yang dinyatakan dalam jawaban ini, tetapi dengan meletakkan detik di dalam tanda kurung. Telah memilih hannes.
Yohanes
1
Uji apakah Anda dalam mode aman - jika tidak - tetapkan batas waktu (Nilai Lokal) sesuai keinginan Anda:
if(!ini_get('safe_mode')){
echo "safe mode off";
set_time_limit(180);// seconds
phpinfo();// see 'max_execution_time'}
* Anda tidak dapat mengatur batas waktu dengan cara ini jika safe mode 'on'.
opsional: jika Anda menyetel konfigurasi tentang php.ini tetapi masih tidak dapat mengunggah
-ini adalah fungsi php untuk memeriksa kode kesalahan
$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;}
Untuk benar-benar meningkatkan batas waktu, saya lebih suka mendapatkan nilai saat ini terlebih dahulu. set_time_limittidak selalu menambah batas waktu. Jika nilai saat ini (misalnya dari php.iniatau yang sebelumnya ditetapkan) lebih tinggi dari nilai yang digunakan dalam panggilan saat ini set_time_limit, itu akan mengurangi batas waktu!
Jadi ada apa dengan pembantu kecil seperti ini?
/**
* @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);
Jawaban:
Anda perlu mengubah beberapa pengaturan di php.ini Anda:
Apakah lokasi PHP.ini Anda bergantung pada lingkungan Anda, informasi lebih lanjut: http://php.net/manual/en/ini.list.php
sumber
Anda harus dapat melakukannya selama runtime juga menggunakan
set_time_limit(100);
http://php.net/manual/en/function.set-time-limit.php
atau di vhost-config Anda
php_admin_value max_execution_time 10000
Memiliki batas waktu eksekusi global yang RENDAH sebagian besar merupakan ide bagus untuk alasan kinerja pada aplikasi yang tidak terlalu andal. Jadi, Anda mungkin ingin hanya mengizinkan skrip tersebut berjalan lebih lama yang memang harus dilakukan.
ps: Jangan lupa tentang post_max_size dan upload_max_filesize (seperti jawaban pertama yang diceritakan sudah)
sumber
Untuk melengkapi jawaban Hannes.
Anda perlu mengubah beberapa pengaturan di php.ini Anda:
Jika seseorang ingin memasukkan tanpa batas (saya tidak tahu mengapa tetapi jika Anda mau), Anda dapat mengatur waktu ke 0:
Anda perlu mengubah beberapa pengaturan di php.ini Anda:
Dan jika Anda tidak tahu di mana php.ini Anda. Anda dapat membuat file "name.php" di server Anda dan meletakkan:
Dan di situs web Anda, Anda dapat melihat konfigurasi php.ini Anda dan ditandai di mana itu.
Edit pada 9 Januari 2015:
Jika Anda tidak dapat mengakses php.ini, Anda memiliki dua opsi lagi.
Anda dapat menyetel baris ini langsung di file "name.php" Anda tetapi saya tidak menemukan upload_max_filesize untuk opsi ini:
Atau di ".htaccess"
sumber
jika yang perlu Anda lakukan hanya spesifik untuk 1 atau 2 halaman saya sarankan untuk menggunakan set_time_limit agar tidak mempengaruhi keseluruhan aplikasi.
tetapi tentu saja 2 nilai ini (post_max_size & upload_max_filesize) dapat diselidiki.
Anda juga dapat mengaturnya melalui fungsi ini_set
atau langsung di file php.ini seperti respon di atas oleh Hannes, atau bahkan set ke iin .htaccess seperti di bawah ini
sumber
Sebagai tambahan dari jawaban di atas, Anda dapat menggunakan
set_time_limit()
fungsi:http://php.net/manual/en/function.set-time-limit.php
meneruskan
0
sebagai argumen akan membuat skrip Anda berjalan tanpa batas waktu.sumber
Jika Anda kebetulan menggunakan server Microsoft IIS , selain pengaturan php.ini yang disebutkan oleh orang lain, Anda mungkin perlu meningkatkan pengaturan batas waktu eksekusi untuk aplikasi PHP FastCGI di IIS Server Manager:
Langkah 1) Buka IIS Server Manager (biasanya di bawah Server Manager di Start Menu, lalu Tools / Internet Information Services (IIS) Manager ).
Langkah 2) Klik pada koneksi utama (tidak spesifik untuk domain tertentu).
Langkah 3) Di bawah bagian IIS , temukan Pengaturan FastCGI (ditampilkan di bawah).
Langkah 4) sinilah, klik kanan aplikasi PHP dan pilih Edit ... .
Langkah 5) Periksa batas waktu (ditampilkan di bawah).
Dalam kasus saya, batas waktu default di sini adalah 70 dan 90 detik; yang pertama menyebabkan 500 Internal Server Error pada skrip PHP yang membutuhkan waktu lebih dari 70 detik.
sumber
Anda memiliki kesalahan ketik: ini_set ('max_input_time', '200M') - set nilai harus berupa int, seperti ini_set ('max_input_time', '200')
sumber
Saya tahu Anda secara khusus menanyakan tentang batas waktu PHP, tetapi yang tampaknya tidak disebutkan oleh orang lain adalah bahwa mungkin juga ada batas waktu di server web dan itu bisa terlihat sangat mirip dengan batas waktu PHP.
Jadi jika Anda sudah mencoba:
Dan Anda telah memeriksa dengan fungsi phpinfo () bahwa max_execution_time memang telah ditingkatkan, maka Anda mungkin ingin mencoba menambahkan ini ke .htaccess yang akan memastikan Apache sendiri tidak memiliki waktu habis:
Info lebih lanjut di sini: https://www.antropy.co.uk/blog/php-script-keeps-timing-out-desthough-ini-set/
sumber
Pertama periksa
php.ini
jalur file denganphpinfo()
; dan kemudian mengubahPHP.INI
parameter:memulai ulang Apache
Catatan : Anda juga dapat menggunakan perintah untuk menemukan
php.ini
di Linuxsumber
Jika Anda tidak dapat mengedit php.ini (di server Anda misalnya), Anda dapat mencoba mengubah parameter php.ini dari dalam kode php Anda. Mencoba:
Jika itu tidak berhasil, coba juga setel 'set_time_limit' dengan cara yang sama, di luar itu saya akan mengatakan satu-satunya pilihan Anda adalah menghubungi host Anda. Pengaturan ini tidak dapat diubah saat dalam mode aman.
sumber
Uji apakah Anda dalam mode aman - jika tidak - tetapkan batas waktu (Nilai Lokal) sesuai keinginan Anda:
* Anda tidak dapat mengatur batas waktu dengan cara ini jika safe mode 'on'.
sumber
opsional: jika Anda menyetel konfigurasi tentang php.ini tetapi masih tidak dapat mengunggah
-ini adalah fungsi php untuk memeriksa kode kesalahan
sumber
Anda juga dapat menyetel waktu eksekusi maksimal di
.htaccess
file Anda :sumber
Untuk benar-benar meningkatkan batas waktu, saya lebih suka mendapatkan nilai saat ini terlebih dahulu.
set_time_limit
tidak selalu menambah batas waktu. Jika nilai saat ini (misalnya dariphp.ini
atau yang sebelumnya ditetapkan) lebih tinggi dari nilai yang digunakan dalam panggilan saat iniset_time_limit
, itu akan mengurangi batas waktu!Jadi ada apa dengan pembantu kecil seperti ini?
Lihat juga: Dapatkan max_execution_time dalam skrip PHP
sumber