Mevcut kullanıcıya domain
Aynı müşteriye ait domainleri kullanıcının vdomains ve quota limitleri içinde toplar.
DirectAdmin'ın da api-url komutu, hedef kullanıcı adına kısa ömürlü Login Key üretir. Bu erişim CMD_API_DOMAIN isteğiyle birleştirildiğinde düz metin panel parolası saklamadan yüzlerce domain otomatik oluşturulabilir.
API_URL="$(da api-url --user=siteuser)"
curl -ksS -X POST "${API_URL}/CMD_API_DOMAIN" -d action=create -d domain=ornek.com -d uquota=unlimited -d ubandwidth=unlimited -d ssl=ON -d php=ON
da docs-root
Toplu otomasyon yanlış mimariyi hızlandırmamalıdır. Müşteri izolasyonu, kaynak limiti, uygulama kökü, mail ve DNS sahipliği kararlarını önce verin.
Aynı müşteriye ait domainleri kullanıcının vdomains ve quota limitleri içinde toplar.
Farklı müşteriler ve güvenlik sınırları için önce kullanıcı hesaplarını package ile oluşturmak daha uygundur.
da api-url her kullanımda kısa ömürlü kimlik üretir; kalıcı admin parolasını betiğe yazmaktan daha güvenlidir.
DirectAdmin Apache, nginx+Apache, nginx veya OpenLiteSpeed şablonları kullanabilir. Domain oluşturmayı panel API'sine bırakın.
vdomains, quota, bandwidth, DNS ve PHP özelliklerinin yeni domainleri karşılayabildiğini kontrol edin.
grep -E '^(vdomains|quota|bandwidth|dnscontrol|php)=' /usr/local/directadmin/data/users/siteuser/user.conf Kalıcı parola kullanmadan hedef kullanıcı bağlamında domain listesini okuyun.
curl -ksS "$(da api-url --user=siteuser)/CMD_API_SHOW_DOMAINS" API yanıtında error=0 döndüğünü ve web server şablonlarının üretildiğini doğrulayın.
head -n 2 /root/domainler.txt > /root/domainler-test.txt Her istek öncesinde yeni kısa ömürlü API URL'si oluşturulur; yanıt CSV'ye kaydedilir.
chmod 700 /root/directadmin-toplu-domain.sh
/root/directadmin-toplu-domain.sh DirectAdmin arka plan görevlerini ve web sunucusu şablon üretimini kontrol edin.
tail -f /var/log/directadmin/system.log
/usr/local/directadmin/dataskq d da docs-root ile gerçek HTTP ve HTTPS yollarını JSON olarak görüntüleyin.
da docs-root Kısa ömürlü Login Key, domain doğrulama, CSV sonuç ve hata günlüğü içerir.
#!/usr/bin/env bash
set -Eeuo pipefail
DOMAIN_DOSYASI="/root/domainler.txt"
HEDEF_KULLANICI="siteuser"
SONUC="/root/directadmin-domain-sonuclari.csv"
HATA="/root/directadmin-domain-hatalari.log"
[[ "$EUID" -eq 0 ]] || { echo "root gerekli"; exit 1; }
[[ -f "$DOMAIN_DOSYASI" ]] || { echo "domain listesi bulunamadi"; exit 1; }
printf '"domain","durum","kullanici","yanit"\n' > "$SONUC"
: > "$HATA"
chmod 600 "$SONUC" "$HATA"
while IFS= read -r SATIR || [[ -n "$SATIR" ]]; do
DOMAIN="$(printf '%s' "$SATIR" | tr -d '\r' | tr '[:upper:]' '[:lower:]' | sed -E 's#^[[:space:]]+##;s#[[:space:]]+$##;s#^https?://##;s#^www\.##;s#/.*$##')"
[[ -z "$DOMAIN" ]] && continue
[[ "$DOMAIN" == \#* ]] && continue
if [[ ! "$DOMAIN" =~ ^[a-z0-9][a-z0-9.-]*\.[a-z]{2,63}$ ]]; then
printf '"%s","gecersiz","%s",""\n' "$DOMAIN" "$HEDEF_KULLANICI" >> "$SONUC"
continue
fi
API_URL="$(da api-url --user="$HEDEF_KULLANICI" | sed -n 's/^URL:[[:space:]]*//p')"
[[ -n "$API_URL" ]] || API_URL="$(da api-url --user="$HEDEF_KULLANICI")"
YANIT="$(curl -ksS --request POST "${API_URL}/CMD_API_DOMAIN" \
--data-urlencode "action=create" \
--data-urlencode "domain=${DOMAIN}" \
--data-urlencode "ubandwidth=unlimited" \
--data-urlencode "uquota=unlimited" \
--data-urlencode "ssl=ON" \
--data-urlencode "cgi=OFF" \
--data-urlencode "php=ON" 2>&1 || true)"
HATA_KODU="$(printf '%s' "$YANIT" | tr '&' '\n' | awk -F= '$1=="error"{print $2}' | head -n1)"
if [[ "$HATA_KODU" == "0" ]]; then
TEMIZ="$(printf '%s' "$YANIT" | tr '\n' ' ' | sed 's/"/""/g')"
printf '"%s","basarili","%s","%s"\n' "$DOMAIN" "$HEDEF_KULLANICI" "$TEMIZ" >> "$SONUC"
else
printf '%s | %s\n' "$DOMAIN" "$YANIT" >> "$HATA"
TEMIZ="$(printf '%s' "$YANIT" | tr '\n' ' ' | sed 's/"/""/g')"
printf '"%s","hatali","%s","%s"\n' "$DOMAIN" "$HEDEF_KULLANICI" "$TEMIZ" >> "$SONUC"
fi
done < "$DOMAIN_DOSYASI"
echo "Tamamlandi: $SONUC"
echo "Hatalar: $HATA"
Toplu işlemden önce aynı POST parametrelerini tek domainle doğrulayın.
API_URL="$(da api-url --user=siteuser | sed -n 's/^URL:[[:space:]]*//p')"
curl -ksS -X POST "${API_URL}/CMD_API_DOMAIN" --data-urlencode action=create --data-urlencode domain=ornek.com --data-urlencode ubandwidth=unlimited --data-urlencode uquota=unlimited --data-urlencode ssl=ON --data-urlencode cgi=OFF --data-urlencode php=ON
API üzerinden mevcut domainleri çekip tekrar eklemeyi önleyin.
curl -ksS "$(da api-url --user=siteuser)/CMD_API_SHOW_DOMAINS"
Şablon değişikliği veya bozuk vhost sonrasında yalnız doğrulanmış ihtiyaçta çalıştırın.
cd /usr/local/directadmin/custombuild
./build rewrite_confs
systemctl reload httpd 2>/dev/null || systemctl reload nginx
Standart DirectAdmin yapısında domain vhost dosyaları kullanıcı verisinden otomatik üretilir; manuel vhost eklemekten kaçının.
da docs-roothttpd -tsystemctl reload httpdnginx ön katman, Apache arka katman olabilir. Her iki yapılandırmanın testini ve reload durumunu kontrol edin.
nginx -thttpd -tsystemctl reload nginx && systemctl reload httpdDirectAdmin şablon ve CustomBuild yönetimini kullanın; manuel Apache/nginx yolu varsaymayın.
cd /usr/local/directadmin/custombuild && ./build options | grep -i webserversystemctl status openlitespeed --no-pagerda docs-rootDomain mevcut olabilir, kullanıcı vdomains limitine ulaşmış olabilir veya domain sözdizimi reddedilebilir.
Login Key süresi dolmuş, yanlış kullanıcı bağlamı kullanılmış veya API URL'si hatalı ayrıştırılmış olabilir.
Domain başka DirectAdmin kullanıcısında, pointer olarak veya DNS zone şeklinde bulunabilir.
Yüzlerce domain web, DNS, mail ve SSL görevlerini kuyruğa ekleyerek gecikme oluşturabilir.
Özel CustomBuild şablonu, hatalı rewrite veya çakışan domain tanımı bulunabilir.
Aramayla eşleşen hata bulunamadı.
Komut kısa ömürlü Login Key üretir. Çıktıyı loglamayın, cache etmeyin ve süreç listesinden sızdırmamaya dikkat edin.
Resmi legacy API belgesinde action=create, domain, bandwidth/uquota seçenekleri ile ssl, cgi ve php bayrakları listelenir.
Hayır. Domain, pointer ve DNS zone çakışmaları önlenmelidir. Önce sunucu genelinde sahiplik kontrolü yapın.
Kuruluma göre Apache, nginx+Apache, nginx veya OpenLiteSpeed görülebilir. Domainleri doğrudan vhost dosyasına değil panel API'sine eklemek bu farkı yönetir.
Domain sayısından çok vhost, sertifika, log, mail, PHP worker ve uygulama yükü belirleyicidir. Dosya tanımlayıcıları ve reload sürelerini ölçün.
Hayır. Bu sayfa teknik olarak taranabilir ve yapılandırılmış veri uyumlu hazırlanır; sonuç sıralaması garanti edilemez.
Panel seçimi, DNS, SSL, web sunucusu, güvenlik, yedekleme ve doğrulama adımlarını sunucunuzun gerçek yapısına göre uyguluyoruz.