Blogchevron_rightSunucu Yönetimichevron_rightPHP Max Execution Time Hatası ve Çözüm Yolları

PHP Max Execution Time Hatası ve Çözüm Yolları

S
Serversium
calendar_today1 Mayıs 2026
schedule5 dk okuma
PHP Max Execution Time Hatası ve Çözüm Yolları

PHP "Max Execution Time" Hatası Nedir ve Neden Oluşur?

PHP "Max Execution Time" hatası, bir PHP betiğinin çalışma süresinin sunucu tarafından belirlenen maksimum süreyi aşması durumunda ortaya çıkan kritik bir sorundur. Bu hata genellikle "Maximum execution time of X seconds exceeded" şeklinde bir uyarı mesajı ile karşınıza çıkar ve işleminiz yarıda kesilir.

Varsayılan olarak PHP, betiklerin 30 saniye içinde tamamlanmasını bekler. Bu süre, sunucu kaynaklarını korumak ve kötü niyetli betiklerin sonsuz döngülere girmesini önlemek için tasarlanmıştır. Ancak büyük veri işleme, veritabanı sorguları, API entegrasyonları veya karmaşık hesaplamalar bu süreyi aşabilir.

Bu sorunu yaşayan geliştiriciler, genellikle büyük veritabanı aktarımları, WordPress eklenti yüklemeleri veya uzun süren döngülerle çalışırken bu hata ile karşılaşırlar. Sunucu tarafında ISO 27001 belgeli veri merkezi hizmetleri kullanan işletmelerde bile bu tür sorunlar yaşanabilir.

PHP Max Execution Time Sorununu Gidermenin 7 Etkili Yolu

1. php.ini Dosyasından Süre Limiti Ayarlama

En kalıcı çözüm, PHP yapılandırma dosyası olan php.ini dosyasındaki max_execution_time değerini değiştirmektir. Bu ayar, tüm PHP betiklerini etkiler ve sunucu düzeyinde uygulanır.

php.ini dosyanızı bulun ve aşağıdaki satırı düzenleyin:

max_execution_time = 300

Bu ayar, betiklerin 300 saniye (5 dakika) boyunca çalışmasına izin verir. Değeri ihtiyacınıza göre artırabilir veya azaltabilirsiniz. Değişikliklerin aktif olması için Apache veya Nginx servislerini yeniden başlatmanız gerekir.

CentOS/RHEL sistemlerde php.ini genellikle /etc/php.ini yolunda bulunur. Ubuntu/Debian sistemlerde ise /etc/php/X.X/apache2/php.ini veya /etc/php/X.X/fpm/php.ini konumlarını kontrol etmelisiniz.

2. .htaccess Dosyası ile Süre Limiti Ayarlama

Paylaşımlı hosting kullanıyorsanız veya php.ini dosyasına erişiminiz yoksa, .htaccess dosyasını kullanarak bu ayarı değiştirebilirsiniz. Bu yöntem, Apache sunucularda çalışır ve dizin bazında etki eder.

Sitelerinizin kök dizinindeki .htaccess dosyasına şu satırı ekleyin:

php_value max_execution_time 300

Bu basit kod, PHP betiklerinin maksimum çalışma süresini 300 saniyeye çıkaracaktır. .htaccess dosyası hakkında daha fazla bilgi için .htaccess 301 ve 302 Yönlendirme Rehberi sayfamızı inceleyebilirsiniz.

3. ini_set() Fonksiyonu ile Kod İçinde Ayarlama

Betiğinizde belirli bir işlem için daha uzun süreye ihtiyacınız varsa, kodunuzun başına ini_set() fonksiyonunu ekleyebilirsiniz. Bu yöntem, yalnızca o betiği etkiler ve diğer işlemleri rahatsız etmez.

<?php
ini_set('max_execution_time', 300);
ini_set('max_input_time', 300);

// Kodunuz buraya
?>

Bu yöntemi kullanırken, betiğin sonunda süreyi tekrar eski değerine döndürmeyi unutmayın:

<?php
ini_set('max_execution_time', 300);

// İşlemleriniz

ini_set('max_execution_time', 30); // Varsayılan değere geri dön
?>

4. set_time_limit() Fonksiyonu

PHP'nin yerleşik set_time_limit() fonksiyonu, betiğin maksimum çalışma süresini dinamik olarak ayarlamanıza olanak tanır. Bu fonksiyon, ini_set() gibi çalışır ancak bazı durumlarda daha güvenilirdir.

<?php
set_time_limit(300);

// veya

set_time_limit(0); // Sınırsız süre (önerilmez)
?>

Önemli: set_time_limit(0) kullanmak, betiğin sonsuza kadar çalışmasına izin verir ve sunucu kaynaklarını tüketebilir. Bu nedenle, mümkün olan en düşük değeri kullanmaya özen gösterin.

5. WordPress ve CMS Sistemlerinde Çözüm

WordPress kullanıcıları, wp-config.php dosyasına ek kod ekleyerek bu sorunu çözebilir. Bu yöntem, tüm WordPress betikleri için geçerli olacaktır.

wp-config.php dosyanızın en üstüne şu satırı ekleyin:

set_time_limit(300);

Ayrıca, WordPress eklentileri veya tema dosyaları içinde de ini_set kullanabilirsiniz. Büyük veritabanı içe aktarımları için phpMyAdmin'deki süre limitini artırmanız gerekebilir. Bu konuda cPanel özellikleri rehberimiz size yardımcı olabilir.

6. Nginx ve PHP-FPM Yapılandırması

Nginx web sunucusu kullanıyorsanız, PHP-FPM yapılandırma dosyasında da ayarlama yapmanız gerekebilir. Nginx'in fastcgi_read_timeout parametresi de bu süreyi etkiler.

nginx.conf dosyanızda şu ayarı yapın:

location ~ \.php$ {
    fastcgi_read_timeout 300;
    # diğer fastcgi ayarları
}

PHP-FPM pool yapılandırmasında (www.conf) da max_execution_time ayarını kontrol etmelisiniz:

php_admin_value[max_execution_time] = 300

Bu ayarların ardından Nginx ve PHP-FPM servislerini yeniden başlatın:

systemctl restart nginx
systemctl restart php-fpm

7. Hosting Kontrol Panelinden Ayarlama

cPanel, Plesk veya DirectAdmin gibi kontrol panelleri üzerinden de PHP ayarlarını değiştirebilirsiniz. Bu yöntem, teknik bilgi gerektirmez ve genellikle en pratik çözümdür.

cPanel'de: "MultiPHP INI Editor" bölümünden ilgili alan adını seçin ve max_execution_time değerini düzenleyin.

Plesk'te: "PHP Settings" bölümünde "max_execution_time" değerini bulun ve değiştirin.

Karşılaştırma: PHP Max Execution Time Ayarlama Yöntemleri

Yöntem Kapsam Zorluk Kalıcılık Önerilen Kullanım
php.ini Tüm sunucu Orta Kalıcı Sunucu yöneticileri
.htaccess Dizin bazlı Kolay Kalıcı Paylaşımlı hosting
ini_set() Tek betik Kolay Geçici Geliştiriciler
set_time_limit() Tek betik Kolay Geçici Büyük işlemler
wp-config.php WordPress Çok kolay Kalıcı WordPress kullanıcıları
Nginx/FPM Tüm sunucu İleri düzey Kalıcı Nginx kullanıcıları

PHP Max Execution Time Hatası İçin En İyi Uygulamalar

Güvenlik Önlemleri

Max execution time değerini artırmak, sunucunuzun güvenlik açısından risk altına girmesine neden olabilir. Aşağıdaki önlemleri almanızı öneririz:

  • Minimum değeri kullanın: İhtiyacınız olan en düşük süreyi belirleyin ve yalnızca o değeri kullanın.
  • İzleme yapın: Uzun süren betiklerin performansını izleyin ve gereksiz yere uzun çalışanları optimize edin.
  • Zaman aşımı kontrolleri ekleyin: Betiklerinizde kendi zaman aşımı kontrollerinizi oluşturun.
  • Kaynak limitleri kombine edin: max_execution_time ile birlikte memory_limit ve upload_max_filesize gibi diğer limitleri de gözden geçirin.

Performans İpuçları

Max execution time'ı artırmak yerine, betiklerinizi optimize etmeyi düşünün. Büyük veri işlemleri için batch processing (toplu işleme) kullanın:

<?php
$limit = 100; // Her seferinde işlenecek kayıt sayısı
$offset = 0;

while (true) {
    $data = getRecords($limit, $offset);
    
    if (empty($data)) {
        break; // İşlenecek veri kalmadı
    }
    
    processRecords($data);
    $offset += $limit;
    
    // Her parti arasında hafif bir bekleme
    usleep(1000);
}
?>

Bu yaklaşım, tek seferde tüm veriyi yüklemeye çalışmak yerine, verileri parçalar halinde işleyerek hem max execution time sorununu hem de sunucu IP kara liste sorunlarını önlemeye yardımcı olabilir.

Hangi Yöntemi Seçmelisiniz?

PHP max execution time sorununu çözmek için birden fazla yöntem mevcuttur. Doğru yöntemi seçmek için şu faktörleri göz önünde bulundurun:

  1. Sunucu erişiminiz varsa: php.ini dosyasını düzenleyin - en kalıcı ve güvenilir çözümdür.
  2. Paylaşımlı hosting kullanıyorsanız: .htaccess veya kontrol paneli seçeneklerini kullanın.
  3. Belirli bir betik için çözüm istiyorsanız: ini_set() veya set_time_limit() kullanın.
  4. WordPress siteniz varsa: wp-config.php dosyasına ek kod ekleyin.
  5. Nginx kullanıyorsanız: Hem PHP-FPM hem de Nginx yapılandırmasını güncelleyin.

Unutmayın, max execution time değerini artırmak her zaman en iyi çözüm değildir. Öncelikle betiğinizin neden uzun sürdüğünü analiz edin ve mümkünse optimize edin. Büyük veritabanı sorguları için FTP ve SFTP farkları gibi temel konuları da göz önünde bulundurarak veri aktarım yöntemlerinizi gözden geçirin.

Sonuç

PHP "Max Execution Time" hatası, doğru yaklaşımla kolayca çözülebilen bir sorundur. Sunucu yapılandırmanıza ve ihtiyaçlarınıza en uygun yöntemi seçerek, PHP betiklerinizin kesintisiz çalışmasını sağlayabilirsiniz. Yüksek performanslı sunucu altyapısı için reseller hosting çözümlerimizi inceleyebilir veya teknik destek için iletişim sayfamızdan bizimle iletişime geçebilirsiniz.

library_booksBenzer İçerikler

Cloud Sunucu Nedir? Avantajları ve Detaylı Rehber
Sunucu Yönetimi
calendar_today5 Nisan 2026
schedule5 dk

Cloud Sunucu Nedir? Avantajları ve Detaylı Rehber

Cloud sunucular, dinamik kaynak dağıtımıyla işletmelerin kesintisiz büyümesini sağlar. Avantajlardan karşılaştırmalara tüm detaylar bu rehberde yer alıyor.

S
Serversiumarrow_forward
Linux vs Windows Sunucu: Hangisi Projeye Uygun?
Sunucu Yönetimi
calendar_today6 Nisan 2026
schedule5 dk

Linux vs Windows Sunucu: Hangisi Projeye Uygun?

Linux ve Windows Sunucu arasındaki teknik farkları, maliyet avantajlarını ve proje uyumluluğunu detaylı olarak karşılaştırıyoruz. Yazılım stack'inize en uygun işletim sistemini seçmek için kapsamlı rehberimizle doğru altyapı kararını verin.

S
Serversiumarrow_forward
Plesk Kurulumu - Ubuntu 24 Üzerinde Adım Adım Rehber
Sunucu Yönetimi
calendar_today16 Nisan 2026
schedule5 dk

Plesk Kurulumu - Ubuntu 24 Üzerinde Adım Adım Rehber

Ubuntu 24 üzerinde Plesk kurulumunu adım adım öğrenin. Bu rehberde sistem gereksinimleri, kurulum adımları ve temel yapılandırma ayarlarını bulabilirsiniz.

S
Serversiumarrow_forward