cPanel'de Cron Job Oluşturma (Adım Adım Anlatım)

cPanelYayın: Güncellendi: 7 dk okumaHazırlayan: cronjob.com.tr Editörleri

Paylaşımlı veya yönetilen hosting'de en sık kullanılan panel cPanel'dir. SSH bilmeden grafik arayüzden zamanlanmış görev ekleyebilirsiniz. Bu rehber, resmi cPanel Cron Jobs belgesindeki akışa uygun olarak Cron Email, Common Settings, komut yolu, PHP sürümü ve hata ayıklamayı adım adım anlatır.

Cron job temelini biliyorsanız doğrudan kurulum adımlarına geçebilirsiniz. Zaman ifadesi yazarken crontab sözdizimi ve hazır örnekler için cron expression generator işinizi hızlandırır. Plesk kullanıyorsanız Plesk cron job rehberine, DirectAdmin sunucularda ise DirectAdmin'de cron job ekleme rehberine bakın.

Önemli uyarı (cPanel dokümantasyonu): Görevleri birbirine çok sık aralıklarla koyarsanız önceki çalışma bitmeden yenisi başlayabilir ve sunucu yükü artar. Özellikle uzun süren yedek veya import işlerinde aralığı gerçek süreye göre seçin.

cPanel'de Cron Jobs Sayfasına Erişim

Hosting sağlayıcınız bu arayüzü WHM Feature Manager ile kapatmış olabilir; ikon görünmüyorsa destekten açılmasını isteyin.

  1. cPanel'e giriş yapın (çoğu kurulumda https://alanadi.com:2083 veya https://alanadi.com/cpanel).
  2. Üst arama kutusuna cron yazın.
  3. Cron Jobs (Türkçe arayüzde çoğu zaman Cron İşleri) öğesine tıklayın.
  4. Alternatif: Advanced / Gelişmiş bölümünden aynı ikona gidin.

E-posta Bildirim Ayarı (Cron Email)

Sayfanın üstündeki Cron Email alanında, görev çıktısının gönderileceği adresi girip Update Email düğmesine basın. Resmi belgeye göre tüm bildirimleri kapatmak için bu alanı boşaltabilirsiniz. Tek bir iş için postayı susturmak istiyorsanız o komutun sonuna çıktı yönlendirmesi eklenir:

/usr/local/bin/php /home/KULLANICI/public_html/cron/gorev.php >/dev/null 2>&1

Her 5 dakikada bir çalışan işlerde e-posta kutusu hızla dolar. Sık işlerde log dosyası tercih edin; kritik gece işlerinde e-postayı açık bırakmak teşhis için faydalıdır.

Adım Adım Cron Job Oluşturma

Adım 1: Zamanlama (Common Settings)

Common Settings menüsünden hazır aralık seçerseniz Minute/Hour/Day/Month/Weekday kutuları otomatik dolar. Elle girmek isterseniz beş alanı doldurmanız gerekir; cPanel bunları zorunlu tutar.

Common Settings örneği Anlamı
Once Per Minute (* * * * *) Her dakika (paylaşımlı planda genelde yasak/limitli)
Once Per Five Minutes (*/5 * * * *) Her 5 dakikada bir
Twice Per Hour (0,30 * * * *) Saatte iki kez (0. ve 30. dakika)
Once Per Hour (0 * * * *) Her saat başı
Twice Per Day (0 0,12 * * *) Günde iki kez (00:00 ve 12:00)
Once Per Day (0 0 * * *) Her gün gece yarısı
Once Per Week (0 0 * * 0) Haftada bir (Pazar 00:00; 0=Pazar)
Once Per Month (0 0 1 * *) Ayın 1'i 00:00

Adım 2: Command alanına komut

Mutlak yol kullanın. cPanel destek makalesindeki örnekler:

PHP (önerilen CLI):

/usr/local/bin/php /home/KULLANICI/public_html/cron/gorev.php

Belirli PHP sürümü (EasyApache / MultiPHP):

/usr/local/bin/ea-php82 /home/KULLANICI/public_html/cron/gorev.php

82 yerine sitenizin sürümünü yazın (74, 80, 81, 83 …). Alternatif disk yolu bazı sunucularda /opt/cpanel/ea-php82/root/usr/bin/php şeklindedir; Terminal'de doğrulayın.

wget / curl ile URL tetikleme:

/usr/bin/wget -q -O /dev/null "https://alanadi.com/cron/gorev.php?key=GIZLI"
/usr/bin/curl -fsS -H "X-Cron-Token: GIZLI" "https://alanadi.com/cron/gorev.php" >/dev/null 2>&1

Bash:

/bin/bash /home/KULLANICI/scripts/yedek.sh

WordPress WP-Cron gerçek zamanlayıcıya taşıma:

/usr/local/bin/php /home/KULLANICI/public_html/wp-cron.php >/dev/null 2>&1

WordPress tarafında DISABLE_WP_CRON kullanımı için WordPress cron job rehberine bakın. PHP CLI ayrıntıları için PHP cron job sayfası uygundur. Hesabınızda WHMCS çalışıyorsa faturalandırmanın işlemesi için gereken günlük görevi de aynı Command alanına eklersiniz; WHMCS cron görevi tanımlama rehberindeki satır bu şekilde taşınır.

Adım 3: Kaydetme ve yönetim

Add New Cron Job ile ekleyin; başarıda arayüz onay mesajı gösterir. Alt tabloda Current Cron Jobs listelenir: Edit / Edit Line ile değiştirir, Delete ile silersiniz.

Gerçek Senaryolar

Senaryo 1: Laravel schedule her dakika

Uygulama kökünde artisan schedule:run çağrılır. Paylaşımlı planda “her dakika” kapalıysa sağlayıcı limitine uyun veya HTTP tabanlı alternatif kullanın.

/usr/local/bin/ea-php82 /home/KULLANICI/public_html/artisan schedule:run >> /home/KULLANICI/logs/scheduler.log 2>&1

Senaryo 2: Gece 02:30 mağaza stok senkronu

Uzun süren iş; günde bir kez yeterli. Aşağıdaki komutta çıktı ve hatalar loga yazılır; bu çıktılar e-postaya gönderilmez. Hata e-postası istiyorsanız 2>&1 yönlendirmesini kaldırın.

/usr/local/bin/php /home/KULLANICI/public_html/cron/stok-senkron.php >> /home/KULLANICI/logs/stok.log 2>&1

Zamanlama: Minute 30, Hour 2, diğerleri * → 30 2 * * *.

PHP Yolunu Bulma

cPanel Terminal veya SSH:

which php
ls -l /usr/local/bin/ea-php*
/usr/local/bin/php -v
/usr/local/bin/ea-php82 -v

Komutu kaydetmeden önce aynı satırı Terminal'de çalıştırın. Çıkış kodu 0 ve beklenen çıktı gelmeden cron'a eklemek teşhisi zorlaştırır.

Sık Hatalar ve Çözümleri

1. /bin/sh: /usr/bin/php: No such file or directory

Neden: Yanlış PHP yolu.
Çözüm: /usr/local/bin/php veya /usr/local/bin/ea-phpXX kullanın.

2. Permission denied

Neden: Script veya log dizini için izin yok. cPanel, özel scriptlerin execute izni gerektirdiğini belirtir.
Çözüm: File Manager → Permissions → dosya için en az çalıştırma izni (ör. 755); log klasörü yazılabilir olmalı.

3. Her çalışmada onlarca e-posta

Neden: Komut stdout üretiyor ve Cron Email dolu.
Çözüm: >/dev/null 2>&1 veya log dosyasına >>; gerekirse Cron Email alanını boşaltın.

4. “Cron job has been added” ama iş etkisiz

Neden: Yanlış home yolu (KULLANICI), PHP sürüm uyumsuzluğu, script içinde göreli path, veya hosting'in minimum aralık limiti.
Çözüm: Terminal'de aynı komutu çalıştırın; echo $HOME ile kullanıcıyı doğrulayın; aralığı 15/30 dakikaya çekip log ekleyin.

5. Could not open input file: .../gorev.php

Neden: Dosya yolu hatalı veya dosya public_html dışında yanlış yerde.
Çözüm: File Manager'da tam yolu kopyalayın; büyük/küçük harfe dikkat edin.

Not: cPanel arayüzünde komuta rm yazarken son derece dikkatli olun; yanlış seçeneklerle home içeriğini silebilirsiniz (resmi uyarı).

cronjob.com.tr ile HTTP Tabanlı Alternatif

Panelde cron limiti, kapalı Cron Jobs özelliği veya her dakika ihtiyacı varsa ve işiniz bir HTTPS URL ise cronjob.com.tr dışarıdan tetikler. Ücretsizdir; kredi kartı istenmez. En kısa aralık 1 dakikadır; GET/POST ve özel header desteklenir. Sunucunuzu WiseCP paneline taşıdıysanız görev tanımlarını WiseCP cron job kurulumundaki adımlarla yeniden oluşturmanız gerekir; panellerin arayüz yolları birbirinin yerine geçmez.

<?php
// public_html/cron/gorev.php
declare(strict_types=1);
$beklenen = getenv('CRON_SECRET') ?: '';
$gelen = $_SERVER['HTTP_X_CRON_TOKEN'] ?? '';
if ($beklenen === '' || !hash_equals($beklenen, $gelen)) {
    http_response_code(403);
    exit('forbidden');
}
// iş mantığı
http_response_code(200);
header('Content-Type: text/plain; charset=utf-8');
echo 'ok';

Panelde URL, metot, X-Cron-Token header'ı ve zamanlamayı tanımlayın. Başarı: HTTP 200–399. Timeout aralığa göre (1 dk→55 sn … cron ifadeli→290 sn). Ardışık hata eşiğinde e-posta; her çalışmanın özeti 7 gün logda. TLS doğrulanır; localhost/özel IP'ye istek atılmaz — uç nokta genel internetten çözülmeli.

Sıkça Sorulan Sorular (SSS)

cPanel'de kaç tane cron job oluşturabiliyorum?

Sayı limiti cPanel'in kendisinden çok hosting paketinin Feature Manager ve kaynak politikasına bağlıdır. Bazı paylaşımlı planlarda iş sayısı veya en kısa aralık kısıtlanır; VPS/dedicated'da genelde daha esnektir. Kesin limit için sağlayıcınıza sorun.

cPanel'de cron job'un çalışıp çalışmadığını nasıl anlarım?

Komutun sonuna log yönlendirmesi ekleyin, Cron Email ile çıktı alın veya Terminal/SSH'da komutu elle çalıştırıp çıkış koduna bakın. Script içinde tarih damgalı log satırı yazmak en net yöntemdir.

cPanel olmadan cron job oluşturabilir miyim?

Evet. SSH erişiminiz varsa crontab -e ile tanımlayabilirsiniz. Panelde Cron Jobs özelliği kapalıysa hosting sağlayıcınızın Feature Manager'dan açması gerekir. Ayrıntılar için Linux'ta cron job rehberine bakın.

Hangi PHP yolunu kullanmalıyım: /usr/local/bin/php mi ea-php mi?

Varsayılan CLI için çoğu sunucuda /usr/local/bin/php yeterlidir. Sitenizin MultiPHP sürümüyle birebir aynı binary gerekir; örneğin PHP 8.2 için /usr/local/bin/ea-php82 kullanın. which php ve ls /usr/local/bin/ea-php* ile doğrulayın.

Sonuç

cPanel'de sağlam bir cron: doğru PHP binary, mutlak dosya yolu, bilinçli e-posta/log yönetimi ve kayıttan önce Terminal testi demektir. Limit veya erişim sorunu yaşarsanız HTTP uç noktasını cronjob.com.tr ile zamanlayabilirsiniz.

Hemen Ücretsiz Cron Job Oluşturun

cPanel Terminal'de bir kez doğruladığınız işi URL'ye taşıyın: cronjob.com.tr panelinden tetikleyip her çalışmanın durum kodu, süresi ve hata mesajını 7 günlük kayıtta izleyin. Ücretsizdir; kayıtta kredi kartı istenmez.

Ücretsiz Başla →

İlgili Rehberler