WordPress Maximum Execution Time Exceeded Hatası: PHP Süresi Nasıl Artırılır?

E-posta Hosting Kampanya

WordPress sitelerinde karşılaşılan en can sıkıcı sorunlardan biri, bir işlemin tamamlanmasını beklerken ekranda beliren Maximum execution time exceeded hatasıdır. Özellikle eklenti yüklerken, tema güncellerken, büyük dosyalar içe aktarırken veya yönetim panelinde kapsamlı işlemler gerçekleştirirken ortaya çıkabilir. Bazen web sitesi tamamen çalışmaya devam ederken yalnızca belirli bir işlem hata verir. Bazı durumlarda ise ziyaretçiler de siteye erişirken zaman aşımı sorunlarıyla karşılaşabilir.

Bu hatanın temelinde genellikle PHP’nin bir işlem için tanımlanan maksimum çalışma süresini aşması bulunur. WordPress, PHP altyapısı üzerinde çalıştığı için bir isteğin tamamlanması gereken süre sunucu yapılandırmasından etkilenir. Ancak çözüm her zaman süreyi yükseltmek değildir. İşlemin neden yavaşladığını anlamadan yapılan değişiklikler, sorunu geçici olarak gizleyebilir.

Bu rehberde WordPress max_execution_time hatasının ne anlama geldiğini, hangi durumlarda ortaya çıktığını ve cPanel, php.ini, .htaccess gibi farklı yöntemlerle nasıl çözülebileceğini ele alacağız. Ayrıca süreyi artırmanıza rağmen hata devam ediyorsa hangi ayarları kontrol etmeniz gerektiğini de açıklayacağız.

WordPress max_execution_time Hatası Nedir?

max_execution_time, PHP tarafından çalıştırılan bir betiğin ne kadar süre boyunca işlem yapabileceğini belirleyen yapılandırma ayarıdır. Değer saniye cinsinden ifade edilir. Örneğin bu ayar 30 olarak tanımlandığında PHP betiğinin çalışması için genel olarak 30 saniyelik bir süre sınırı bulunur.

Bir WordPress isteği bu sınırı aştığında PHP işlemi sonlandırabilir ve aşağıdaki hata mesajlarından biri görülebilir:

Fatal error: Maximum execution time of 30 seconds exceeded
Fatal error: Maximum execution time of 60 seconds exceeded
Maximum execution time of 120 seconds exceeded

Hata mesajındaki sayı, işlemin hangi süre sınırına takıldığını gösterir. Örneğin 30 saniyelik sınırda hata alınması, ilgili PHP işleminin izin verilen süre içerisinde tamamlanamadığı anlamına gelir.

PHP’nin varsayılan max_execution_time değeri çoğu yapılandırmada 30 saniyedir. Ancak bu değer kullanılan sunucu yapılandırmasına, PHP sürümüne ve barındırma ortamına göre değişebilir. Komut satırından çalışan PHP işlemlerinde varsayılan değer farklı olabilir.

Önemli bir ayrıntı da şudur: PHP’nin çalışma süresi sınırı, web sunucusunun veya ters proxy sistemlerinin zaman aşımı sınırlarıyla aynı şey değildir. PHP için 300 saniye tanımlanmış olsa bile web sunucusu isteği daha erken sonlandırıyorsa işlem tamamlanamayabilir.

WordPress’te Maximum Execution Time Hatası Neden Oluşur?

Hatanın ortaya çıkması için mutlaka sunucunun yetersiz donanıma sahip olması gerekmez. Bazen tek bir eklentinin yaptığı gereksiz işlemler veya uzak bir sunucudan yanıt beklenmesi bile PHP süresinin aşılmasına neden olabilir.

En sık karşılaşılan nedenler şunlardır:

1. Yavaş veya Verimsiz Çalışan WordPress Eklentileri

WordPress sitelerinde çok sayıda eklenti kullanılması, bazı işlemlerin beklenenden uzun sürmesine yol açabilir. Özellikle veritabanında geniş kapsamlı sorgular çalıştıran, çok sayıda dosyayı tarayan veya harici servislerle iletişim kuran eklentiler daha fazla işlem süresine ihtiyaç duyabilir.

Örneğin bir güvenlik eklentisinin binlerce dosyayı taraması veya bir yedekleme eklentisinin büyük bir veritabanını dışa aktarması, standart bir sayfa isteğinden çok daha uzun sürebilir.

2. Büyük Veritabanı İşlemleri

WordPress veritabanı zaman içerisinde içerikler, yorumlar, eklenti kayıtları, geçici veriler ve kullanıcı bilgileriyle büyüyebilir. Özellikle eski veya yoğun kullanılan sitelerde bazı tablolar milyonlarca kayıt içerebilir.

Büyük bir veritabanını tek işlemde dışa aktarmak, gereksiz kayıtları temizlemek veya çok sayıda içeriği toplu olarak güncellemek PHP’nin çalışma süresini aşabilir.

3. Tema ve Kodlama Kaynaklı Sorunlar

WordPress temalarında veya özel olarak eklenen PHP kodlarında verimsiz döngüler, tekrar eden veritabanı sorguları ve gereksiz dosya işlemleri bulunabilir.

Özellikle functions.php dosyasına eklenen özel kodlar, her sayfa isteğinde çalışacak şekilde hazırlanmışsa sitenin genel performansını etkileyebilir.

4. Büyük Dosyaların İçe veya Dışa Aktarılması

Ürün kataloğu, XML dosyası, CSV listesi, medya arşivi veya kapsamlı bir yedek dosyası WordPress’e aktarılırken işlem süresi uzayabilir.

Tek seferde binlerce kaydın işlenmesi yerine verilerin küçük gruplar hâlinde aktarılması çoğu zaman daha sağlıklı bir yöntemdir.

5. Sunucu Kaynaklarının Yoğun Kullanılması

CPU, RAM, disk erişimi ve veritabanı performansı PHP işlemlerinin tamamlanma süresini etkiler. Aynı sunucuda çalışan diğer hesapların veya yoğun trafik alan uygulamaların kaynak tüketmesi de işlemlerin yavaşlamasına neden olabilir.

Bu nedenle yalnızca max_execution_time değerine bakarak sorunun kaynağını belirlemek mümkün değildir.

6. Harici Servislerden Yanıt Beklenmesi

Bazı WordPress eklentileri lisans doğrulama, güncelleme kontrolü, API bağlantısı veya uzaktaki bir sunucudan veri alma işlemleri gerçekleştirir.

Uzak servis yanıt vermiyorsa veya bağlantı yavaşsa ilgili işlem beklenenden uzun sürebilir. Böyle bir durumda PHP süresini artırmak geçici rahatlama sağlayabilir ancak asıl problem bağlantı veya uzak servis tarafında kalmaya devam eder.

WordPress max_execution_time Süresi Nasıl Artırılır?

PHP çalışma süresini artırmak için kullanılabilecek birden fazla yöntem vardır. Hangi yöntemin uygulanabileceği, sunucunun PHP çalışma biçimine ve hosting sağlayıcısının izin verdiği yapılandırma seçeneklerine bağlıdır.

Değişiklik yapmadan önce mevcut yapılandırma dosyalarının yedeğini almanız önerilir.

1. cPanel Üzerinden PHP max_execution_time Ayarını Değiştirme

cPanel kullanan kullanıcılar için en kolay yöntemlerden biri MultiPHP INI Editor aracını kullanmaktır.

İzlenecek adımlar:

  1. cPanel hesabınıza giriş yapın.
  2. MultiPHP INI Editor bölümünü açın.
  3. Ayarını değiştirmek istediğiniz alan adını seçin.
  4. max_execution_time seçeneğini bulun.
  5. Mevcut değeri ihtiyacınıza göre yükseltin.
  6. Değişiklikleri kaydedin.

Örneğin:

max_execution_time = 120

Bu ayar, PHP betiklerinin maksimum çalışma süresini 120 saniyeye çıkarır.

MultiPHP INI Editor bölümünde ilgili alan adı görünmüyorsa veya ayar değiştirilemiyorsa sunucu yapılandırması bu işlemi kullanıcı seviyesinde desteklemiyor olabilir.

2. php.ini Dosyası Üzerinden Süreyi Artırma

PHP yapılandırma ayarlarının bulunduğu php.ini dosyası üzerinden de maksimum çalışma süresi değiştirilebilir.

Dosyayı hosting hesabınızın dosya yöneticisi veya FTP bağlantısı üzerinden açarak aşağıdaki satırı ekleyebilir ya da mevcut değeri güncelleyebilirsiniz:

max_execution_time = 120

Dosyada aynı ayar zaten bulunuyorsa ikinci bir tanım eklemek yerine mevcut satırı düzenleyin.

Bazı sunucularda php.ini dosyası birden fazla konumda bulunabilir. Ayrıca PHP-FPM, CGI veya farklı PHP handler yapılandırmalarında dosyanın nereden okunduğu değişebilir. Bu nedenle düzenleme yaptığınız dosyanın gerçekten ilgili alan adı tarafından kullanıldığını kontrol etmelisiniz.

Değişiklikten sonra ayarın hemen uygulanıp uygulanmadığını test edin. Bazı yapılandırmalarda PHP-FPM servisinin yeniden yüklenmesi gerekebilir. Bu işlem için gerekli yetkiniz yoksa hosting yöneticisinden destek alabilirsiniz.

3. .htaccess Dosyası Üzerinden Ayarlama

Apache sunucularında ve uygun PHP çalışma yapılandırmalarında .htaccess dosyası üzerinden de süre tanımlanabilir.

WordPress’in kurulu olduğu dizindeki .htaccess dosyasını açarak aşağıdaki satırı ekleyebilirsiniz:

php_value max_execution_time 120

Ancak bu yöntem her sunucuda çalışmaz. Özellikle PHP-FPM veya CGI gibi farklı çalışma modellerinde php_value direktifi desteklenmeyebilir. Böyle bir ortamda bu satırın eklenmesi 500 Internal Server Error hatasına neden olabilir.

Bu nedenle .htaccess üzerinden değişiklik yapmadan önce kullanılan PHP handler türünü öğrenmek gerekir. Dosyaya ekleme yaptıktan sonra siteye erişilemiyorsa eklediğiniz satırı kaldırarak önceki duruma dönün.

4. .user.ini Dosyası Kullanarak PHP Süresini Değiştirme

PHP-FPM veya CGI gibi bazı yapılandırmalarda .user.ini dosyası üzerinden PHP ayarları tanımlanabilir.

WordPress’in ana dizininde .user.ini isimli bir dosya oluşturun veya mevcut dosyayı açın. Ardından şu satırı ekleyin:

max_execution_time = 120

Dosyayı kaydettikten sonra ayarın uygulanmasını bekleyin.

.user.ini dosyalarının yeniden okunması belirli bir önbellek süresine bağlı olabilir. Bu nedenle değişiklik yaptıktan hemen sonra eski değerin görünmesi her zaman ayarın çalışmadığı anlamına gelmez. Ayrıca bu dosyanın desteklenip desteklenmediği PHP’nin kullanılan SAPI yapılandırmasına bağlıdır.

5. PHP Koduyla set_time_limit() Kullanma

PHP içerisinde set_time_limit() fonksiyonu kullanılarak belirli bir betiğin çalışma süresi değiştirilebilir.

Örneğin:

<?php

set_time_limit(120);

// Uzun süren işlemler burada gerçekleştirilir.

Bu kod, çalıştığı PHP betiği için süre sınırını 120 saniyeye ayarlamayı dener.

Süre sınırını kaldırmak için aşağıdaki kullanım da mümkündür:

set_time_limit(0);

Ancak bu yöntemi tüm WordPress sitesine uygulanacak genel bir çözüm olarak değerlendirmemek gerekir. Kodun çalıştırıldığı dosya, ilgili isteğin başlangıcında veya işlem sırasında bu fonksiyonu çağırmalıdır. Ayrıca sunucu güvenlik politikaları veya başka zaman aşımı sınırları işlemi yine durdurabilir.

Özellikle functions.php dosyasına kontrolsüz biçimde eklenen kodlar yerine, uzun süren işlemin kendi kodunda uygun bir yapılandırma kullanılması daha doğrudur.

WordPress’te max_execution_time Değeri Kaç Olmalı?

PHP çalışma süresi için her WordPress sitesine uygun tek bir değer bulunmaz. İhtiyaç duyulan süre, sitenin yaptığı işlemlere ve sunucu kaynaklarına göre belirlenmelidir.

Aşağıdaki değerler başlangıç noktası olarak değerlendirilebilir:

İşlem türüÖrnek süre
Standart WordPress sayfa işlemleri30 saniye
Eklenti ve tema güncellemeleri60 saniye
Orta büyüklükte veri aktarımı120 saniye
Büyük içerik veya ürün içe aktarma180–300 saniye
Kapsamlı yedekleme işlemleriİşlem yöntemine göre değişir

Bunlar kesin gereksinimler veya zorunlu standartlar değildir. Örneğin küçük bir web sitesinde 120 saniyelik süreye ihtiyaç duyulması, eklentilerden birinin verimsiz çalıştığını gösterebilir.

Öte yandan büyük bir ürün kataloğunu içe aktaran bir e-ticaret sitesinin daha uzun süreye ihtiyaç duyması normal olabilir.

Önemli olan, süreyi gereksiz yere yükseltmek yerine işlemin tamamlanması için gereken makul sınırı belirlemektir. Çok yüksek değerler, hatalı veya takılı kalan PHP işlemlerinin sunucu kaynaklarını uzun süre kullanmasına neden olabilir.

max_execution_time Değerinin Değiştiği Nasıl Kontrol Edilir?

Yapılandırma dosyasını düzenledikten sonra yeni değerin gerçekten uygulandığını kontrol etmek gerekir.

Bunun için WordPress yönetim panelinden de yararlanabilirsiniz.

  1. WordPress yönetim paneline giriş yapın.
  2. Araçlar > Site Sağlığı bölümünü açın.
  3. Bilgi sekmesine geçin.
  4. Sunucu bölümünü genişletin.
  5. PHP yapılandırma bilgileri arasında maksimum çalışma süresini kontrol edin.

Alternatif olarak geçici bir PHP dosyası oluşturup aşağıdaki kodu çalıştırabilirsiniz:

<?php

echo 'max_execution_time: ';
echo ini_get('max_execution_time');

Dosyayı tarayıcıdan açtığınızda PHP’nin ilgili istek için kullandığı değeri görebilirsiniz.

Bu dosyayı yalnızca test amacıyla kullanın ve kontrol tamamlandıktan sonra sunucudan silin. phpinfo() gibi tüm PHP yapılandırma ayrıntılarını gösteren fonksiyonları herkese açık bırakmak güvenlik açısından uygun değildir.

Süreyi Artırdığınız Hâlde Hata Devam Ediyorsa Ne Yapmalısınız?

Bazen max_execution_time değeri 120 veya 300 saniyeye çıkarılmasına rağmen aynı hata alınabilir. Bu durumda farklı bir yapılandırma dosyasının düzenlenmesi veya başka bir zaman aşımı sınırının devreye girmesi söz konusu olabilir.

Aşağıdaki kontrolleri sırayla gerçekleştirin.

PHP Ayarının Doğru Alan Adına Uygulandığını Kontrol Edin

Bir hosting hesabında birden fazla alan adı bulunuyorsa her alan adı farklı PHP sürümü veya yapılandırması kullanabilir. Ana alan adı için yapılan değişiklik, alt alan adını veya farklı bir dizindeki uygulamayı etkilemeyebilir.

Bu nedenle ayarın hata alınan WordPress kurulumuna uygulandığından emin olun.

PHP-FPM ve Web Sunucusu Zaman Aşımı Sınırlarını İnceleyin

PHP’nin çalışma süresi ile web sunucusunun isteğe izin verdiği maksimum süre farklıdır.

Örneğin PHP için 300 saniye tanımlanmış olsa bile web sunucusu veya ters proxy 120 saniyede bağlantıyı kesiyorsa işlem yine tamamlanmayabilir.

WordPress’in resmi performans dokümantasyonu da farklı katmanlardaki zaman aşımı ayarlarının birbiriyle uyumlu olması gerektiğini vurgular.

Eklentileri Sırayla Kontrol Edin

Sorun belirli bir işlem sırasında ortaya çıkıyorsa eklenti kaynaklı olma ihtimalini değerlendirin.

Öncelikle son yüklenen veya güncellenen eklentileri inceleyin. Gerekirse test ortamında eklentileri devre dışı bırakıp sorunun ortadan kalkıp kalkmadığını kontrol edin. Ardından eklentileri tek tek etkinleştirerek soruna neden olan bileşeni belirleyin.

Canlı bir sitede bu testi yaparken ziyaretçilerin erişimini ve sitenin işlevlerini etkilememek için dikkatli olun.

PHP ve Sunucu Hata Kayıtlarını İnceleyin

Hata mesajında belirtilen dosya ve satır bilgisi, sorunun kaynağını belirlemede yardımcı olabilir. PHP error log kayıtlarında hangi dosyanın ne kadar süre çalıştığına ve hangi işlemin hata oluşturduğuna ilişkin ipuçları bulunabilir.

WordPress hata ayıklama özelliği de kontrollü şekilde kullanılabilir. Bunun için wp-config.php dosyasındaki uygun yapılandırma ayarları değerlendirilebilir. Ancak hata kayıtlarının herkese açık biçimde görüntülenmesini engellemek ve test tamamlandıktan sonra hata ayıklama ayarlarını gözden geçirmek gerekir.

WordPress’te Uzun Süren İşlemler İçin Daha Sağlıklı Çözümler

Her sorunu PHP çalışma süresini artırarak çözmeye çalışmak doğru bir yaklaşım değildir. Özellikle düzenli olarak uzun süren işlemler gerçekleştiren sitelerde uygulama mimarisini iyileştirmek daha kalıcı sonuç verebilir.

Büyük verileri parçalara ayırın: Binlerce ürünü veya içeriği tek seferde işlemek yerine daha küçük gruplar kullanın. Böylece her PHP isteğinin daha kısa sürede tamamlanması sağlanabilir.

Arka plan görevlerinden yararlanın: Kullanıcının tarayıcıda uzun süre beklemesini gerektiren işlemler uygun bir kuyruk veya arka plan işleme sistemiyle yürütülebilir.

Gereksiz veritabanı sorgularını azaltın: Aynı bilgiyi tekrar tekrar sorgulamak yerine uygun önbellekleme yöntemleri kullanılabilir. Büyük tablolar üzerinde çalışan sorguların performansı incelenebilir.

Eklenti sayısını ve işlevlerini gözden geçirin: Kullanılmayan eklentileri kaldırın. Birden fazla eklentinin aynı işi yapıp yapmadığını kontrol edin.

Zamanlanmış görevleri inceleyin: WordPress Cron üzerinden çalışan görevlerin sıklığı ve işlem yükü kontrol edilmelidir. Özellikle yoğun sitelerde zamanlanmış görevlerin birikmesi performans sorunlarına yol açabilir.

Bu yaklaşımlar yalnızca max_execution_time hatasını azaltmakla kalmaz, WordPress’in genel çalışma performansını da iyileştirebilir.

Sonuç

WordPress max_execution_time hatası, PHP işlemlerinin kendileri için tanımlanan maksimum çalışma süresini aşması sonucunda ortaya çıkar. Sorun çoğunlukla büyük veri işlemleri, yavaş eklentiler, veritabanı sorguları veya sunucu kaynaklarının yoğun kullanılmasıyla ilişkilidir.

Çözüm için cPanel MultiPHP INI Editor, php.ini, .user.ini veya uygun sunucu yapılandırmalarında .htaccess kullanılabilir. Bununla birlikte hangi yöntemin geçerli olduğu PHP’nin çalışma biçimine bağlıdır. Yapılan değişikliklerin gerçekten uygulandığı kontrol edilmeli ve PHP dışındaki web sunucusu zaman aşımı sınırları da göz önünde bulundurulmalıdır.

En doğru yaklaşım, önce hatanın kaynağını belirlemek, ardından ihtiyaç duyulan süreyi makul seviyede artırmak ve uzun süren işlemleri daha verimli hâle getirmektir. Böylece yalnızca hata mesajını ortadan kaldırmak yerine WordPress sitesinin daha kararlı çalışmasına katkı sağlanabilir.