PHP’de Sunucu Zaman Aşımı Sorununu Nasıl Çözeriz?

Birol Bavas
3 min readAug 6, 2023

PHP ile kodlanmış sitenizde büyük dosya boyutlu verilerle işlem gerçekleştirirken karşınıza 500 Internal Server hatası çıkabilir. Bunun sebebi Apache ve PHP varsayılan olarak bu tarz işlemlere sınırsız işlem hakkı vermez. Altyapı kaynaklarının tüketilmesi, işlem yüklerinin ağırlaşması kısacası uygulama performasını etkilemesinden kaynaklı durumlar için belirli paramatreler ile kısıtlanmıştır.

Zaman aşımı görülen bazı olaylar

  • Form alanlarındaki upload alanlarında büyük dosya/çoklu dosya yükleme işlemleri
  • Büyük veritabanı sorgularının gerçekleştirilmesi
  • Frameworklerdeki eklenti ve tema yükleme işlemleri (WordPress, Joomla, Drupla vb.)
  • Yazılım hatalarından; sonsuz döngüler gibi…

PHP’de zaman aşımının çözümü

Problemin çözümü %98 olarak aşağıdaki çözüm olacaktır. Sunucu yöneticisiyseniz aşağıdaki parametreleri php.ini dosyanızda aratın ve artırma işlemini gerçekleştirin. Sunucu kaynaklarını gereksiz tüketmemek için işleminiz bittikten sonra ayarları geri almanızı tavsiye ederim.

PHP sunucunuzdaki php.ini dosyanız genelde aşağıdaki yollarda bulunur. Aktif olarak hangi PHP sürümünü kullanıyorsanız o sürüm üzerinde işlem yapmanız gerekiyor.

$ sudo nano /etc/php/8.0/cli/php.ini
$ sudo nano /etc/php/8.0/fpm/php.ini
$ sudo nano /etc/php/8.0/apache2/php.ini
$ sudo nano /etc/php.ini

Eğer aktif php.ini dosyanızı bulamadıysanız php -i | grep php.ini komutunu terminal ekranına girerek işleme devam edebilirsiniz.

Terminal üzerinden php.ini dosyanızı açtıktan sonra aşağıdaki parametreleri bulun ve artırım işleminizi gerçekleştirin. Parametrelerin ne işe yaradığı aşağıda açıklanmıştır.


+---------------------+------------+----------------------------------------------------------------------------------------------------------------------------------------------------------+
| Parametre | Varsayılan | Açıklama |
+---------------------+------------+----------------------------------------------------------------------------------------------------------------------------------------------------------+
| max_input_time | -1 | PHP betiğindeki bütün (GET ve POST) girdiklerindeki dosya yüklemelerinde ne kadar süre harcayabileceğini belirler. Bu değer saniye cinsinden belirlenir. |
| upload_max_filesize | 2MB | Kullanıcıların sunucuya yükleyebileceği maksimum dosya boyutunu belirler. |
| post_max_size | 8MB | POST isteği yoluyla gönderilecek maksimum veri boyutunu belirler. |
| memory_limit | 128MB | PHP betiğinin kullanabileceği maksimum RAM miktarını belirler. |
+---------------------+------------+----------------------------------------------------------------------------------------------------------------------------------------------------------+

cPanel ile PHP.ini Ayarlarını Değiştirme

Eğer cPanel kullanıyorsanız aşağıdaki adımları uygulayarak php.ini dosyanızda güncelleştirme yapabilirsiniz. Bunun için cPanel ekranınıza girin ve Select PHP Version seçeneğini bulun.

Aktif PHP sürümünüzde ayar yapabilmek için Options seçeneğine tıklayın.

Aşağıdaki seçenekleri size uygun değiştirin ve kaydedin. Sonra işleminizi tekrar deneyin.

Plesk ile PHP.ini Ayarlarını Değiştirme

Aynı işlemleri Plesk paneli üzerinde de gerçekleştirebilirsiniz. Plesk paneline girin ve alan adınıza giderek PHP Settings seçeneğini bulun ve tıklayın.

Aşağıdaki görsel gibi mevcut ayarlarınızı ihtiyacınıza göre değiştirin ve kaydederek çıkın. İşleminizi tekrar deneyin.

--

--