Bugün size nasıl yardımcı olabiliriz?

Bilgi bankamızda arama yapmak için sorunuzu yazın...

WHMCS ile Otomatik cPanel Hesabı Açma: WHM ve Paket Eşleştirme

Yazdır

Netx Teknik Ekibi  ·  Yayın: 29.10.2026

WHMCS'in ödenen siparişte cPanel hesabını kendiliğinden açması için dört şey gerekir: WHM'de yalnız gerekli yetkileri taşıyan ve WHMCS sunucusunun IP adresine kısıtlanmış bir API belirteci (API token), bu belirteçle WHMCS'e eklenmiş bir cPanel sunucusu, ürünün Module Settings sekmesinde WHM'deki paket adının birebir yazılması (bayi hesabında kullaniciadi_paketadi biçiminde) ve kurulum zamanının "ilk ödeme alındığında" olarak seçilmesi. Canlı satışa geçmeden önce bir test siparişiyle hesabın WHM'de doğru paketle açıldığını görün.

Başlamadan önce yetkileri netleştirin

Diyelim ki bayi hesabınız hazır, WHM'e giriyorsunuz ve menüde Manage API Tokens ekranını bulamıyorsunuz. Bu sizin hatanız olmayabilir. cPanel belgelerine göre sağlayıcı bu ekranı bayiler için Edit Reseller Nameservers and Privileges üzerinden açıp kapatabiliyor. Belirteç listesi de ancak bayinin "Initial Privileges" grubundaki yetkilerin tamamı açıksa görünüyor. Yani WHMCS bağlantısı çoğu zaman teknik bir ayardan önce sağlayıcıyla yapılan kısa bir yazışmayla başlar.

WHMCS'in cPanel modülü hesap açma, askıya alma, kaldırma, paket değiştirme, parola değiştirme ve kullanım verisi çekme işlerini WHM API'si üzerinden yapar. Bayi hesabınızda bu işlerin karşılığı olan yetkiler (ACL) yoksa belirteci ne kadar özenle oluşturursanız oluşturun, ilk siparişte "Access Denied" görürsünüz. Ağ tarafı da var: WHMCS'in kurulu olduğu sunucudan WHM'in 2087 (SSL) ya da 2086 numaralı portuna dışarı doğru bağlantı kurulabilmeli. WHMCS'i paylaşımlı bir hostingte çalıştırıyorsanız bu çıkışın güvenlik duvarına takılmadığını barındırma sağlayıcınıza teyit ettirin.

Netx'in cPanel/WHM bayi hosting paketlerinden birini ya da başka bir sağlayıcının bayi hesabını WHMCS'e bağlayacaksanız, siparişten önce şu soruların yazılı cevabını alın:

  • Bayi hesabında Manage API Tokens ekranı açık mı, belirtece hangi yetkiler verilebiliyor?
  • Hesap açma, askıya alma, sonlandırma, paket yükseltme ve parola değiştirme yetkileri bayi hesabında tanımlı mı?
  • Pakette en fazla kaç cPanel hesabı açılabiliyor?
  • WHMCS lisansı pakete dahil mi, yoksa ayrıca mı alınacak?
  • Kendi isim sunucularınızı (özel nameserver) kullanabiliyor musunuz, yoksa müşterilere sağlayıcının isim sunucuları mı verilecek?
  • Sunucuda kaba kuvvet (brute force) koruması varsa WHMCS sunucusunun IP adresi izin listesine alınabiliyor mu?

Paket kurgusu, fiyat ve mevzuat gibi işin ticari tarafını hosting satış işinin ilk 90 günlük planında ele aldık. Buradan sonrası yalnız teknik bağlantıyla ilgili.

WHM'de API belirtecini oluşturun

WHM'de Development » Manage API Tokens yolunu izleyip Generate Token düğmesine basın. Belirtece tanınabilir bir ad verin, örneğin whmcs-baglanti. cPanel adda en fazla 50 karakter ve yalnız harf, rakam, tire ve alt çizgi kabul ediyor. Sonra üç karar vermeniz gerekiyor.

İlki süre. "The API Token will not expire" seçeneği işinizi kolaylaştırır ama unutulan belirteçler yıllarca çalışır durumda kalır. Son kullanma tarihi koyarsanız (WHM'de varsayılan bir yıl) o gün hesap açma durur, bu yüzden takvime bir hatırlatma ekleyin. Süresi dolan belirteci WHM kendiliğinden silmiyor, listede kırmızı satır olarak bekletiyor.

İkincisi IP kısıtı. IPs kutusuna WHMCS sunucusunun dışarı çıkan IP adresini tek adres ya da CIDR biçiminde (ör. 203.0.113.25) yazın. Kutuyu boş bırakırsanız belirteç her adresten kullanılabilir.

Üçüncüsü yetkiler. Privileges bölümünde yalnız bayi hesabınızın sahip olduğu yetkiler listelenir. WHMCS 9.1'in cPanel modülü belgesi aşağıdaki yetkileri istiyor. Tablodaki gruplama ve "hangi iş için" sütunu bizim yorumumuz; listenin kendisi belgeden.

Yetki (API değeri)WHM'deki adıHangi iş için
create-acct, kill-acctCreate Accounts, Terminate AccountsHesap açma ve sonlandırma
suspend-acct, upgrade-account, passwdSuspend/Unsuspend, Upgrade/Downgrade, Change PasswordsAskıya alma, paket değişikliği, parola
list-accts, acct-summary, show-bandwidthList Accounts, Account Summary, View Account Bandwidth UsageHesap listesi ve kullanım verisi
list-pkgsList PackagesÜrün ayarındaki paket listesi
create-user-session, cpanel-integration, cpanel-apiCreate User Session, Manage cPanel Integration Links, cPanel APIMüşterinin panelden cPanel'e tek tıkla girişi ve hesap içi işlemler
ns-config, edit-mx, ssl-gencrtNameserver Configuration, Edit MX Entries, SSL CSR/Certificate Generatorİsim sunucusu, MX ve sertifika işlemleri
basic-whm-functions, basic-system-info, manage-api-tokensBasic WHM Functions, Basic System Information, Manage API TokensTemel WHM çağrıları

Burada şunu baştan söyleyelim: cPanel'in API belirteci belgesi, Create User Session ve Manage API Tokens yetkilerinin belirteci kullanan kişiye belirtece koyduğunuz kısıtları aşma imkânı verdiğini açıkça uyarıyor. WHMCS ise ikisini de istiyor. Bu, yetki listesini daraltmanın tek başına sağlam bir duvar olmadığı anlamına geliyor. Asıl koruma IP kısıtı ve belirtecin yalnız WHMCS yapılandırmasında durması. "Everything" yetkisi ise belirteci kullanana root kullanıcının bütün işlerini açar. Bayi senaryosunda bu kutu zaten listenizde olmamalı. Görüyorsanız sağlayıcınıza sorun.

Generate düğmesinden sonra belirteç yalnız bir kez gösterilir, sayfadan çıkınca bir daha görüntülenemez. Kopyalayıp doğrudan WHMCS'e yapıştırın. E-postayla, mesajlaşma uygulamasıyla ya da destek talebinde paylaşmayın.

Bir ayrıntı daha var. WHMCS belgesine göre sunucuda iki adımlı doğrulama (2FA) zorunlu tutuluyorsa API istekleri için bu zorunluluğun Security Center » Configure Security Policies ekranında kapatılması gerekiyor. Bu ekran root kullanıcıya ait. Bağlantı testi bu yüzden başarısız oluyorsa ayarı sağlayıcınız değerlendirebilir.

Sunucuyu WHMCS'e ekleyin ve bağlantıyı test edin

WHMCS 9.1 arayüzünde adımlar şöyle (eski sürümlerde menü adları biraz farklı olabilir):

  1. Configuration (anahtar simgesi) » System Settings » Servers yolundan Add New Server'a tıklayın.
  2. Module olarak cPanel'i seçin.
  3. Hostname or IP Address alanına sağlayıcının size verdiği sunucu adını yazın. Müşteri panelindeki "Log in to cPanel" bağlantısı bu adı kullanır, ad yoksa IP'ye düşer.
  4. Username alanına bayi kullanıcı adınızı, API Token alanına az önce kopyaladığınız belirteci yapıştırın.
  5. Test Connection'a basın. Başarı mesajı görmeden devam etmeyin.
  6. Go to Advanced Mode ile sunucuya bir ad verin, Nameservers alanlarını doldurun ve Maximum No. of Accounts değerini girin. Secure kutusu işaretliyken cPanel için varsayılan port 2087'dir.
  7. Save Changes ile kaydedin. Bu tek cPanel sunucunuzsa listede adına tıklayıp yanında yıldız (*) çıktığını görün. Yıldız, WHMCS'in başka bir kural yokken bu sunucuyu varsayılan saydığını gösterir.

Nameservers alanına yazdığınız değerler hoş geldin e-postasında müşteriye gider. En fazla beş isim sunucusu girilebiliyor. Burada sağlayıcınızın verdiği ya da bayi hesabınızda tanımlı isim sunucularını yazın. Müşterinin alan adını hangi kayıtla hostinge yönlendireceğini nameserver ile A kaydı arasındaki tercih belirler.

Maximum No. of Accounts hafife alınan bir alan. WHMCS sunucunun doluluk yüzdesini bu sayıdan hesaplıyor. Bayi paketinizdeki gerçek hesap sınırıyla aynı ya da biraz altında tutun. Tek bayi hesabınız varsa sunucu grubu (server group) kurmak zorunlu değil, varsayılan sunucu iş görür. İkinci bir bayi hesabı ya da kendi sunucunuz eklendiğinde ürünleri bir gruba bağlamak gerekir. Grup ayarında "en az dolu sunucuya ekle" ile "varsayılanı dolana kadar doldur" arasında seçim yaparsınız. WHMCS, tek sunuculu gruplarda ilkini öneriyor.

Ürünü WHM paketine bağlayın

Hesapların bir kısmının açılıp bir kısmının "You do not have permission to use Selected Package" hatasıyla düştüğü kurulumlarda neden neredeyse her zaman paket adıdır. Önce WHM'de müşteriye satacağınız paketleri tanımlayın. Paketlerin disk, e-posta ve kaynak değerlerini WHM'de paket tanımlama ve hesap açma adımlarında anlattık.

Sonra WHMCS'te Configuration » System Settings » Products/Services » Create a New Product yolundan ürünü oluşturun. Product Type olarak Shared Hosting'i, Module olarak cPanel'i seçin. Details sekmesinde Require Domain kutusunu işaretleyip Welcome Email alanında hosting hoş geldin şablonunu seçin, Pricing sekmesine fiyat ve dönemleri girin. Asıl bağlantı Module Settings sekmesinde kurulur: sunucu grubu ve WHM Package Name.

Bayi hesabında paket adının bir ön eki vardır. cPanel belgesine göre bayiye özel paketlerin adında alt çizgi (_) bulunur, sunucu genelindeki (root) paketlerde bulunmaz. WHMCS'in sorun giderme belgesi de WHMCS'teki adın WHM'deki adla birebir aynı olmasını ve kullaniciadi_paketadi biçimini kullanmasını istiyor.

Varsayımsal senaryo: Bayi kullanıcı adınız ornekbayi, WHM'de baslangic adlı bir paket tanımladınız. WHM'in Edit a Package listesinde bu paket ornekbayi_baslangic olarak görünür. Müşterinin cPanel arayüzünde ise yalnız baslangic yazar. WHMCS'e yazmanız gereken değer ornekbayi_baslangic. Büyük-küçük harf de dahil birebir aynı olmalı, bu yüzden elle yazmak yerine WHM'den kopyalayın.

WHM Package Name açılır listesi eksik geliyorsa bunun da belgelenmiş bir nedeni var. WHM API'si yalnız bayi hesabınızın kotasıyla açılabilecek paketleri döndürüyor. WHM'de Account Functions » Create a New Account ekranında paketin yanında "Cannot use due to limits" yazıyorsa paket bayi sınırlarınızı aşıyordur. Paketi küçültün ya da sağlayıcınızla konuşun. Alt çizgisiz, sunucu genelindeki paketleri görmek için ayrıca Use Root Packages (viewglobalpackages) yetkisi gerekir ve bayi hesaplarında genellikle kapalıdır.

İki uyarı daha ekleyelim. WHM'de paket adı sonradan değiştirilemiyor, o yüzden adına fiyat ya da kampanya gibi değişebilecek bilgileri koymayın. WHMCS'teki ürün adı ile WHM paket adı ayrı şeyler zaten: ürünü "Kurumsal 5 Site" diye satıp ornekbayi_k5 paketine bağlayabilirsiniz. İkinci uyarı Advanced Mode ile ilgili. WHMCS, paket seçmeden hesap başına özel kota girmeye izin veriyor. Ama belgeye göre bu root erişimi istiyor, bayi hesabıyla denenirse "Package Not Allowed" hatası gelir. Aynı nedenle bayi hesabınız üzerinden Reseller Hosting türünde ürün, yani alt bayi modeli kuramazsınız. WHMCS belgesi bayi API fonksiyonlarının root yetkisi gerektirdiğini yazıyor.

Hesap ne zaman açılmalı?

Module Settings sekmesinin altında dört seçenek bulunur:

  • Automatically setup the product as soon as an order is placed (ödeme beklenmeden)
  • Automatically setup the product as soon as the first payment is received
  • Automatically setup the product when you manually accept a pending order
  • Do not automatically setup this product

WHMCS'in varsayılan davranışı, yöneticinin siparişi elle onaylamasını beklemek. Bizce bayilerin çoğu için doğru seçenek ikincisi. Siparişle birlikte kurulum, hiç ödenmeyecek siparişlere de hesap açar. Kötü niyetli biri sahte bir siparişle sunucunuzda oltalama sayfası yayımlayabilir ve şikâyetin bedelini bütün bayi hesabınız öder. Havale/EFT ile çalışıyorsanız ödemeyi faturaya işlediğiniz anda, kartlı ödemede ise ödeme geçidinin onayıyla hesap açılır. Elle onay seçeneği, kimlik ya da dolandırıcılık kontrolü yaptığınız ürünlerde anlamlı.

Alan adı kaydını da aynı siparişe bağlıyorsanız o tarafı kayıt kuruluşu modülü yürütür. İki iş ayrı modüllerden geçer. Hesap açılmış olsa bile alan adı kaydedilip sunucuya yönlendirilene kadar site yayına çıkmaz.

Test siparişi: canlıya almadan önce

Bağlantı testi yeşil yandı diye hesap açmanın çalıştığını varsaymayın. Test Connection sunucuya bağlanıp oturum açılabildiğini dener. Ürüne yazdığınız paket adının doğru olup olmadığını ise hiç sınamaz. Gerçek bir sipariş akışını baştan sona deneyin:

  1. Kendinize ait bir test müşterisi oluşturun.
  2. Sahibi olduğunuz bir alan adıyla ürünü sipariş edin. Sunucunun ana alan adının alt alan adını kullanmayın, bayilerin bunu açması engellenir.
  3. Faturaya ödeme ekleyerek (Add Payment) ödenmiş duruma getirin.
  4. Hizmetin durumunun Active olduğunu ve Username alanının dolduğunu kontrol edin.
  5. WHM'de List Accounts ekranında hesabın doğru paketle göründüğüne bakın.
  6. Müşteri panelinden "Log in to cPanel" bağlantısıyla girişi deneyin.
  7. Configuration » System Logs » Email Message Log ekranında hoş geldin e-postasını açın. İsim sunucuları ve kullanıcı adı doğru mu?
  8. Hizmet sayfasındaki modül komutlarından sırasıyla Suspend, Unsuspend, Change Package ve en son Terminate'i deneyin.

Terminate hesabı sunucudan siler, geri dönüşü yoktur. Test hesabında sorun değil ama komutun ne yaptığını görmüş olursunuz. Sonlandırırken Keep DNS Zone seçeneğini işaretlerseniz DNS bölgesi sunucuda kalır. WHMCS belgesine göre bölge silinmeden aynı alan adıyla yeni hesap açılamıyor. Bunu bilmeyen biri ikinci testte "hesap neden açılmıyor" diye saatlerini harcayabilir.

WHMCS'ten önce WHM'de elle açılmış müşteri hesaplarınız varsa Servers ekranındaki Sync Accounts aracı WHMCS kayıtlarıyla sunucudaki hesapları eşleştirmeye yarar. Eşleşmeyen hesaplar otomasyonun dışında kalır, yani askıya alma ve kullanım verisi onlar için çalışmaz.

Hesap açılmadıysa Modül Günlüğüne bakın

WHMCS hatayı çoğu zaman tek satırla bildirir. Ayrıntı Module Log'dadır, ama bu günlük varsayılan olarak kayıt tutmaz. Configuration » System Logs » Module Log ekranında Module Logging'i On yapın, hatayı yeniden üretin (ör. hizmet sayfasından Create komutunu tekrar çalıştırın), sayfayı yenileyin. Her satırda WHMCS'in WHM'e gönderdiği istek ve dönen yanıt durur. İşiniz bitince günlüğü yeniden Off yapın. Bu ekranı görebilmek için yönetici rolünüzde View Module Debug Log izni bulunmalı.

Cron sırasında başarısız olan işlemler ayrıca Utilities » Module Queue listesine düşer. WHMCS bunları kendiliğinden yeniden denemez. Sorunu giderdikten sonra Retry ile tekrar çalıştırmanız gerekir.

Hata metniOlası nedenNe yapmalı
You do not have permission to use Selected PackageWHMCS'teki paket adı WHM'dekiyle birebir aynı değilAdı WHM'den kopyalayıp kullaniciadi_paketadi biçiminde yapıştırın
Package Not Allowed or Exceeded Resource/Account AllocationBayi erişimiyle geçerli paket adı olmadan hesap açma denemesiWHM Package Name'i doldurun, Advanced Mode'daki özel kotaları kullanmayın
Product attribute Package Name ... not found on serverBayi kotası yetersiz, ad yanlış ya da belirteçte list-pkgs eksikCreate a New Account ekranında "Cannot use due to limits" uyarısına ve belirteç yetkilerine bakın
Login FailedKimlik bilgisi hatalı ya da kaba kuvvet koruması WHMCS'i engelliyorBelirteci yeniden yapıştırın, sonra sağlayıcınıza IP engelini sorun
Access Denied / Permission DeniedBelirteçte ya da bayi hesabında ilgili yetki yokYukarıdaki yetki tablosuyla karşılaştırın
Sorry, a group for that username already existsSunucuda bu kullanıcı adıyla hesap varHizmetin Username alanını değiştirip Create'i yeniden çalıştırın
Sorry, that username is reservedKullanıcı adında sunucunun yasakladığı bir sözcük varFarklı bir kullanıcı adı verin
Invalid value ... for the cpmod settingÜrün ayarında sunucuda olmayan bir cPanel teması seçiliTemayı sunucudaki temayla değiştirin

Sorun sizin ayarlarınızdan değil de altyapıdan kaynaklanıyor gibi görünüyorsa (IP engeli, kapalı bir yetki, port), sağlayıcınıza yazın. Netx bayi hesabınız varsa bunu müşteri panelinden destek talebiyle yaparsınız. Talepte WHMCS sunucusunun çıkış IP adresini, hatanın tam metnini ve saatini, Module Log'daki istek adını (ör. createacct) ve WHM paket adını verin. Belirtecin adını yazabilirsiniz, değerini asla. Günlük satırında müşteri parolası görünüyorsa paylaşmadan önce silin.

Askıya alma, sonlandırma ve kullanım verisi

Hesap açmayı otomatikleştirip kapatmayı elde bırakan bayi kısa sürede ödemesi gecikmiş ama çalışan hesaplarla dolar. Bu ayarlar ürün sayfasında değil, Configuration » System Settings » Automation Settings ekranındadır:

  • Enable Suspension ve Suspend Days ile vadesi geçen hizmetin kaç gün sonra askıya alınacağını belirlersiniz.
  • Enable Unsuspension açıkken ödeme gelince askı kendiliğinden kalkar.
  • Enable Termination ve Termination Days, hizmetin kaç gün sonra sunucudan silineceğini belirler.
  • Update Usage Statistics işaretliyse disk ve bant genişliği kullanımı günlük görevle WHM'den çekilir.

Sonlandırma geri alınamadığı için gün sayısını kendi müşteri sözleşmenizde yazan veri saklama süresinden kısa tutmayın. Elle askıya alıp özel bir neden yazdığınız hizmetler, ödeme gelse bile otomatik olarak açılmaz. WHMCS belgesi bunu bilinçli bir davranış olarak anlatıyor. Ödeme dışı bir nedenle, örneğin kaynakları tüketen bir müşteri sitesi yüzünden askıya alma kararını otomasyona bırakmayın, elle verin ve neden alanını doldurun.

Kullanım verisinin sınırını da bilin. WHMCS disk ve bant genişliğini görür, CPU, bellek ya da eşzamanlı işlem sınırına takılan bir siteyi görmez. Bu tür sınırlar CloudLinux kullanan sunucularda müşteri tarafında 508 Resource Limit Reached hatası olarak ortaya çıkar ve WHMCS ekranında hiçbir iz bırakmaz.

Bütün bu işleri sistem cron'u çalıştırır. Kendi kurduğunuz WHMCS'te cron en az beş dakikada bir çalışmalı. Doğru komutu Automation Settings sayfasının üstündeki Cron Command rozetinden kopyalayın. cPanel'de genel biçimi şöyledir (yol kurulumunuza göre değişir):

*/5 * * * * php -q /home/kullanici/public_html/whmcs/crons/cron.php

Günlük görevlerin saati aynı sayfadaki Time of Day ayarından gelir. Varsayılan sunucu saatiyle 09.00. Sunucunuz UTC ile çalışıyorsa Türkiye saatine göre üç saat geride kaldığını hesaba katın.

Belirteci kim görebilir?

Belirteç WHMCS veritabanında durur. Dolayısıyla WHMCS yönetici hesaplarının güvenliği, bayi hesabınızdaki bütün müşteri hesaplarının güvenliği demektir. Yönetici girişinde iki adımlı doğrulama ve güncel sürüm gibi WHMCS'in temel güvenlik önlemleri burada bir tercih olmaktan çıkıyor.

WHMCS sunucuya kullanıcı adı ve parolayla da bağlanabiliyor. Bizce bu yolu hiç açmayın: parola WHM hesabınızın bütün yetkilerini taşır, belirteç ise kısıtlanabilir ve tek başına iptal edilebilir. Belirteci değiştirmeniz gerektiğinde sırayı koruyun. Önce yenisini oluşturun, WHMCS'e yazıp Test Connection'dan geçirin, eskisini ancak bundan sonra Revoke edin. Ters sırada yaparsanız aradaki siparişler Module Queue'ya düşer. WHMCS'i başka bir sunucuya taşıdığınızda belirtecin IP listesini de güncelleyin, eski adresi listede bırakmayın.

WHMCS'in ele geçirildiğinden şüpheleniyorsanız ilk iş WHM'den belirteci iptal etmek olmalı. Hesap açma ve askıya alma durur ama müşteri sitelerine dokunulmaz. Panelin temizliği ve yeni belirteç bundan sonra gelir.

Kurulum tamamlandığında ilk ay Module Queue'yu haftada bir açın. Boş kalıyorsa otomasyon yolunda demektir. Dolmaya başlıyorsa satırların çoğu yukarıdaki tablodaki hatalardan birine çıkar.

Bu cevap yeterince yardımcı oldu mu?

Değerlendirme: 0

<< Geri
İnternet bağlantınız kesildi