Separates cPanel-Konto
Geeignet für Kunden, getrennte Ressourcenlimits sowie separate FTP-/E-Mail-Verwaltung. Kann die lizenzierte Kontenzahl beeinflussen.
Dieser Leitfaden vergleicht separate cPanel-Konten pro Domain mit Addon-Domains unter einem Konto und getrennten Document Roots. Das fertige Bash-Skript enthält Domainprüfung, eindeutige Benutzererzeugung, CSV-Ergebnisse und wiederholbare Fehlerprotokolle.
whmapi1 createacct domain=ornek.com username=d123456789ab plan=domainpaket
/usr/local/cpanel/bin/cpapi2 --user=sitehesabi AddonDomain addaddondomain newdomain=ornek.com
/scripts/rebuildhttpdconf && /scripts/restartsrv_httpd
Massenautomatisierung darf keine falsche Architektur beschleunigen. Entscheiden Sie zuerst über Kundenisolation, Ressourcenlimits, Anwendungsroots sowie Mail- und DNS-Eigentum.
Geeignet für Kunden, getrennte Ressourcenlimits sowie separate FTP-/E-Mail-Verwaltung. Kann die lizenzierte Kontenzahl beeinflussen.
Verursacht weniger Verwaltungsaufwand, wenn alle Domains Ihnen gehören und getrennte Verzeichnisse ausreichen.
Wenn alle Domains denselben Inhalt zeigen sollen, verwenden Sie Weiterleitungen oder Aliase statt Website-Kopien.
Nameserverwechsel, A-Record-Zuweisung und Cloudflare-Massenaktionen müssen getrennt von der Domainanlage geplant werden.
Entfernen Sie https://, www, Pfade, Leerzeilen und Duplikate. Konvertieren Sie IDN-Domains in Punycode.
sort -u domainler.txt | sed '/^[[:space:]]*$/d' > domainler-temiz.txt MOD=hesap erstellt ein cPanel-Konto pro Domain; MOD=addon erstellt getrennte Verzeichnisse unter dem Zielbenutzer.
MOD="addon" Prüfen Sie Paket, Kontolimits, DNS-Rolle und API-Ausgabe mit einer kleinen Stichprobe.
head -n 2 /root/domainler.txt > /root/domainler-test.txt Setzen Sie die Dateirechte auf 700 und lassen Sie Ergebnisdateien nur für Root lesbar.
chmod 700 /root/cpanel-toplu-domain.sh
/root/cpanel-toplu-domain.sh Extrahieren Sie fehlgeschlagene Domains in eine separate Liste und führen Sie nur diese erneut aus.
column -s, -t < /root/cpanel-domain-sonuclari.csv
cat /root/cpanel-domain-Fehlerlari.log Prüfen Sie zuerst die DNS-Auflösung und führen Sie AutoSSL anschließend in kleinen Gruppen aus.
dig +short ornek.com A
/usr/local/cpanel/bin/autossl_check --user=sitehesabi Läuft im Konto- oder Addon-Modus; schreibt Ergebnisse in CSV und Fehler in ein separates Protokoll.
#!/usr/bin/env bash
set -Eeuo pipefail
MOD="addon"
DOMAIN_DOSYASI="/root/domainler.txt"
CPANEL_KULLANICI="sitehesabi"
PLAN="domainpaket"
ILETISIM="[email protected]"
SONUC="/root/cpanel-domain-sonuclari.csv"
HATA="/root/cpanel-domain-Fehlerlari.log"
[[ "$EUID" -eq 0 ]] || { echo "root gerekli"; exit 1; }
[[ -f "$DOMAIN_DOSYASI" ]] || { echo "domain listesi bulunamadi"; exit 1; }
printf '"domain","mod","durum","kullanici","sifre"\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","%s","gecersiz","",""\n' "$DOMAIN" "$MOD" >> "$SONUC"
continue
fi
HASH="$(printf '%s' "$DOMAIN" | sha256sum | cut -c1-12)"
KULLANICI="d${HASH}"
ALTALAN="eka${HASH}"
SIFRE="Eka!$(openssl rand -hex 12)A9"
if [[ "$MOD" == "hesap" ]]; then
CIKTI="$(whmapi1 --output=json createacct domain="$DOMAIN" username="$KULLANICI" password="$SIFRE" plan="$PLAN" contactemail="$ILETISIM" 2>&1 || true)"
if grep -Eq '"result"[[:space:]]*:[[:space:]]*1' <<< "$CIKTI"; then
printf '"%s","hesap","basarili","%s","%s"\n' "$DOMAIN" "$KULLANICI" "$SIFRE" >> "$SONUC"
else
printf '%s | %s\n' "$DOMAIN" "$CIKTI" >> "$HATA"
printf '"%s","hesap","Fehlerli","%s",""\n' "$DOMAIN" "$KULLANICI" >> "$SONUC"
fi
else
KLASOR="domains/${DOMAIN}/public_html"
CIKTI="$(/usr/local/cpanel/bin/cpapi2 --user="$CPANEL_KULLANICI" --output=jsonpretty AddonDomain addaddondomain dir="$KLASOR" newdomain="$DOMAIN" subdomain="$ALTALAN" 2>&1 || true)"
if grep -Eq '"result"[[:space:]]*:[[:space:]]*1' <<< "$CIKTI"; then
printf '"%s","addon","basarili","%s",""\n' "$DOMAIN" "$CPANEL_KULLANICI" >> "$SONUC"
else
printf '%s | %s\n' "$DOMAIN" "$CIKTI" >> "$HATA"
printf '"%s","addon","Fehlerli","%s",""\n' "$DOMAIN" "$CPANEL_KULLANICI" >> "$SONUC"
fi
fi
done < "$DOMAIN_DOSYASI"
echo "Tamamlandi: $SONUC"
echo "Fehlerlar: $HATA"
Prüfen Sie API-Werkzeuge, Version und Kontolimits.
whmapi1 version
/usr/local/cpanel/bin/cpapi2 --help | head
whmapi1 acctcounts
Zeigen Sie den Domainbestand des Ziel-cPanel-Kontos mit UAPI an.
uapi --user=sitehesabi DomainInfo list_domains
Erstellen Sie bei Bedarf die Apache-Konfiguration neu und starten Sie sie kontrolliert neu.
/scripts/rebuildhttpdconf
/scripts/restartsrv_httpd
Dies ist die primäre von cPanel unterstützte Produktionsfamilie. Verwenden Sie unter CloudLinux den vollständigen cpapi2-Pfad und prüfen Sie LVE-/Domainlimits separat.
cat /etc/os-releasecloudlinux-summary get-licenses 2>/dev/null || truelveinfo --period=1h 2>/dev/null | headPrüfen Sie die Betriebssystemunterstützung Ihrer installierten cPanel-Version; Dienstnamen und Paketverwaltung können je nach Distribution abweichen.
cat /etc/os-releasewhmapi1 versionsystemctl status cpanel --no-pagerWenn ein DNS-Cluster verwendet wird, testen Sie Zonensynchronisierung und Clusterrollen vor dem Massenvorgang.
whmapi1 listdnszones | head/scripts/dnscluster syncallwhmapi1 get_nameserver_configKann durch Benutzerkollision, Paketname, Kontolimits oder eine bereits vorhandene Domain verursacht werden.
Die Domain kann unter einem anderen Konto, als DNS-Zone oder in veralteten Userdata vorhanden sein.
Der Befehl läuft möglicherweise nicht als Root, die API-Funktion ist deaktiviert oder das Konto hat unzureichende Rechte.
Remote-Domainprüfungen oder DNS-Auflösung können zeigen, dass die Domain auf eine andere IP verweist.
A/AAAA-Einträge, CAA, Proxying oder der HTTP-Validierungspfad können falsch sein.
Kein passender Fehler gefunden.
Das ist möglich, wenn alle Domains denselben Eigenalleer haben und keine Anwendungsisolierung nötig ist. Für verschiedene Kunden, Ressourcenlimits oder Sicherheitsgrenzen sind getrennte Konten besser.
cPanel kennzeichnet API 2 als veraltet, weist aber ausdrücklich darauf hin, dass es für AddonDomain::addaddondomain keine gleichwertige UAPI-Funktion gibt. Testen Sie sie auf Ihrer installierten Version.
AutoSSL kann verwendet werden, sobald DNS auf den Server zeigt. Starten Sie die Validierung für Hunderte Domains nicht gleichzeitig, bevor die Propagation geprüft wurde.
Verwenden Sie in Panel- und API-Vorgängen die Punycode-Form; die Unicode-Anzeigeform kann separat gespeichert werden.
Ja. Entfernen Sie erfolgreiche Einträge aus der Quellliste und führen Sie nur fehlgeschlagene Domains erneut aus. Eine Prüfung auf vorhandene Domains macht das Skript zusätzlich idempotent.
Nein. Technisches SEO, origineller Inhalt, gültige strukturierte Daten und interne Links unterstützen die Sichtbarkeit, Rankings können jedoch nicht garantiert werden.
Wir setzen Panelwahl, DNS, SSL, Webserver, Sicherheit, Sicherung und Prüfung entsprechend Ihrer tatsächlichen Serverarchitektur um.