Independent subscription
Best for customer environments where each domain needs its own FTP user, resource limit and plan.
In Plesk, every domain can be created as an independent subscription or attached as an additional site to an existing subscription. This guide combines Linux plesk bin subscription/site utilities and Windows subscription.exe in one operational plan.
plesk bin subscription --create ornek.com -owner admin -service-plan "Default Domain" -ip 192.0.2.10 -login user01 -passwd 'GucluParola'
plesk bin site --create ekalanadi.com -webspace-name anasite.com
plesk bin site --update ekalanadi.com -hosting true -php true -ssl true
Bulk automation should not accelerate a wrong architecture. Decide customer isolation, resource limits, application roots, mail and DNS ownership first.
Best for customer environments where each domain needs its own FTP user, resource limit and plan.
Manages many domains belonging to the same customer under one subscription and resource pool.
Command names and service paths differ; process the same list with the CLI tool appropriate for the operating system.
Service plan changes can propagate to linked subscriptions. Lock down plan limits before bulk creation.
Confirm that CLI tools and domain limits are available in the installed version.
plesk version
plesk bin license --help | head -n 30 Copy the exact plan name and IP address used by the script.
plesk bin service_plan --list
plesk bin ipmanage --ip_list Use subscription mode for separate customers/FTP identities and site mode for the same customer.
MOD="abonelik" Verify hosting, DNS and plan synchronization for the first two domains in the panel.
head -n 2 /root/domainler.txt > /root/domainler-test.txt The script generates unique subscription users and stores passwords in a root-only CSV.
chmod 700 /root/plesk-toplu-domain.sh
/root/plesk-toplu-domain.sh Run Plesk configuration checks and repair only failed domains.
plesk repair web -n
plesk bin site --list Supports subscription mode and sites inside an existing subscription.
#!/usr/bin/env bash
set -Eeuo pipefail
MOD="abonelik"
DOMAIN_DOSYASI="/root/domainler.txt"
SAHIP="admin"
PLAN="Default Domain"
IP="192.0.2.10"
ANA_ABONELIK="anasite.com"
SONUC="/root/plesk-domain-sonuclari.csv"
HATA="/root/plesk-domain-errorlari.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-11)"
KULLANICI="u${HASH}"
SIFRE="Eka!$(openssl rand -hex 12)A9"
if [[ "$MOD" == "abonelik" ]]; then
if CIKTI="$(plesk bin subscription --create "$DOMAIN" -owner "$SAHIP" -service-plan "$PLAN" -ip "$IP" -login "$KULLANICI" -passwd "$SIFRE" -notify false 2>&1)"; then
printf '"%s","abonelik","basarili","%s","%s"\n' "$DOMAIN" "$KULLANICI" "$SIFRE" >> "$SONUC"
else
printf '%s | %s\n' "$DOMAIN" "$CIKTI" >> "$HATA"
printf '"%s","abonelik","errorli","%s",""\n' "$DOMAIN" "$KULLANICI" >> "$SONUC"
fi
else
if CIKTI="$(plesk bin site --create "$DOMAIN" -webspace-name "$ANA_ABONELIK" 2>&1)"; then
plesk bin site --update "$DOMAIN" -hosting true -php true -ssl true >/dev/null 2>&1 || true
printf '"%s","site","basarili","%s",""\n' "$DOMAIN" "$ANA_ABONELIK" >> "$SONUC"
else
printf '%s | %s\n' "$DOMAIN" "$CIKTI" >> "$HATA"
printf '"%s","site","errorli","%s",""\n' "$DOMAIN" "$ANA_ABONELIK" >> "$SONUC"
fi
fi
done < "$DOMAIN_DOSYASI"
echo "Tamamlandi: $SONUC"
echo "Errorlar: $HATA"
The equivalent operation uses subscription.exe in elevated CMD or PowerShell.
plesk bin subscription.exe --create ornek.com -owner admin -service-plan "Default Domain" -ip 192.0.2.10 -login user01 -passwd "GucluParola"
plesk bin subscription.exe -c ekalanadi.com -webspace-name anasite.com
Update hosting, PHP, SSL and HTTPS redirection per site.
plesk bin site --update ornek.com -hosting true -php true -ssl true -ssl-redirect true
Verify the full list and individual domain details from CLI after the operation.
plesk bin site --list
plesk bin site --info ornek.com
plesk bin subscription --info ornek.com
Plesk can combine nginx proxy, Apache and PHP-FPM. Back up custom templates before repair commands.
plesk versionplesk sbin nginxmng --statusplesk bin php_handler --listPackage paths differ, but Plesk CLI syntax is the same. Check systemd services and disk space.
systemctl status psa --no-pagerdf -hplesk repair installation -nUses subscription.exe and IIS-based hosting. Run commands in an elevated session and verify NTFS permissions separately.
plesk versionplesk bin subscription.exe --listiisreset /statusThe domain may already exist as a subscription or additional site.
The service plan name may not match because of case or spaces.
The IP in the script is not registered in the Plesk IP pool.
License, plan resources, disk quota or customer limits may be exceeded.
A custom nginx/Apache template, conflicting directive or missing PHP handler may be the cause.
No matching error was found.
A subscription has separate resources, plan and access identity. An additional site shares the existing subscription's owner and resources.
The operational logic is the same; Linux uses subscription/site and Windows uses subscription.exe and related .exe utilities.
Verify DNS resolution first, then use Plesk SSL It! or CLI/extension automation in small batches.
Yes. If using external mail, set mail_service false per domain and manage MX/SPF records accordingly.
Plesk's official site CLI documentation notes that create can fail when SELinux is enabled. Review Plesk compatibility rather than blindly disabling security policy.
No. A page can be optimized technically and editorially; rankings depend on intent, competition, authority and Google's systems.
We implement panel selection, DNS, SSL, web server, security, backup and verification according to your actual server architecture.