Plesk splits hosting into three objects: a service plan holds the limits and features, a subscription applies that plan to a customer and a domain, and the domain is the site itself. This guide creates all three on a Linux VPS, then points DNS at the server so the site loads in a browser.
Before you start
You need:
- A Linux VPS with Plesk installed and reachable at
https://203.0.113.10:8443. - The Plesk administrator password you set during installation.
- A domain you control, plus access to its DNS zone (at your registrar or wherever the nameservers point).
- A Plesk licence key. Buy yours from the Plesk vendor. Without a key, Plesk runs in a limited mode and some features stay locked.
Note: Plesk listens on port 8443 for HTTPS and 8880 for HTTP. If neither loads, check the VPS firewall before anything else.
Understand the three objects
A service plan is a template. It says how many domains, mailboxes and databases a customer may create, and which features are switched on. A subscription is one plan applied to one customer, with a domain attached. Adding a second domain to the same subscription shares the plan's limits; creating a second subscription gives the domain its own separate limits.
If you only run your own sites, one subscription with several domains is usually enough. If you resell, give each customer their own subscription.
Step 1: Sign in to Plesk
Open https://203.0.113.10:8443 in a browser and log in as admin. The first screen is your VPS provider's control panel, with the left menu holding Service Plans, Subscriptions, Websites & Domains and Tools & Settings.
Your browser will warn about the certificate the first time. That is the default self-signed certificate from installation. Accept it for now and replace it later in Tools & Settings > SSL/TLS Certificates.
Step 2: Create a service plan
Go to Service Plans and select Add Plan.
- Give it a name, for example
Basic. - On the Resources tab, set limits such as the number of domains, subdomains, mailboxes, databases and FTP users. Enter
0for unlimited where the field allows it. - On the Hosting Parameters tab, enable the features you want: hosting, PHP, SSL/TLS support, mail, DNS.
- On the Permissions tab, decide what customers may change themselves — PHP version, DNS records, backup settings.
- On the PHP Settings tab, pick the PHP handler and version you want as the default.
- Select OK, then Update & Sync so existing subscriptions pick up the change.
You can build the same plan from the command line:
plesk bin service_plan --create "Basic" -owner admin -max_domains 1 -max_db 5 -max_mailboxes 10 -hosting true -php true -ssl trueTip: Option names differ between Plesk versions. Run plesk bin service_plan --help first and use the flags your build actually supports.
Step 3: Create a subscription
Go to Subscriptions and select Add Subscription.
- Subscription name — use the domain,
example.com. - Service plan — pick
Basic. - IP address — select
203.0.113.10. - System user login —
deploy. This is the Linux user that owns the files. - Password — set a strong one and store it in your password manager.
- Confirm and let Plesk provision the subscription.
The CLI equivalent:
plesk bin subscription --create example.com -owner admin -service-plan "Basic" -ip 203.0.113.10 -login deploy -passwd 'ChangeMe-Str0ng!' -notify falseWarning: A password typed on the command line lands in your shell history. Clear it afterwards with history -c, or run the command from a script you delete.
Step 4: Add a domain to the subscription
If the subscription was created with the domain already, you are done. To add another domain, open the subscription and choose Add Domain.
- Enter the domain name,
example.com. - Set Hosting type to Website hosting.
- Leave the document root at
httpdocsunless you have a reason to change it. - Tick the
wwwalias if you want both names to work. - Choose the PHP version for this domain.
- Select OK.
Plesk creates the directory tree under /var/www/vhosts/example.com/. Upload your files to httpdocs — that is the folder the web server serves.
Step 5: Point DNS at the server
At your registrar, create an A record for example.com pointing to 203.0.113.10, and either a second A record or a CNAME for www. If Plesk manages DNS for the domain, edit the zone instead under Websites & Domains > DNS Settings.
Confirm propagation from the VPS:
dig +short example.com A
dig +short www.example.com ABoth should return 203.0.113.10. If they return nothing, wait and try again — propagation can take a while depending on the TTL on the old records.
Step 6: Add a certificate
Once DNS resolves, open Websites & Domains > SSL/TLS Certificates and install a free certificate. Plesk validates the domain over HTTP, so the domain must already point at your server and port 80 must be open.
After the certificate is issued, go to Hosting Settings and enable Redirect from HTTP to HTTPS so visitors always land on the secure version.
Check it works
Run these from your own machine:
curl -I http://example.com
curl -I https://example.comThe first should return a 301 or 302 redirect once HTTPS redirection is on. The second should return 200 and show your site, or the Plesk placeholder page if you have not uploaded files yet.
In the Plesk Dashboard, the subscription should show as active with the domain listed under Websites & Domains. If you see a red status, open the subscription and read the error text — it usually names the missing resource.
Troubleshooting
- "You have reached the limit of domains" — the plan allows one domain and you are adding a second. Raise the limit on the plan, then use Update & Sync on the subscription.
- The domain resolves but shows the default Plesk page —
httpdocsis empty or has no index file. Upload your site files and make sure anindex.phporindex.htmlexists. - "Unable to create subscription: IP address is not available" — the IP is not assigned to the owner you selected. Check Tools & Settings > IP Addresses and assign it.
- Certificate validation fails — DNS has not propagated, or port 80 is blocked. Test with
digandcurl -I http://example.combefore retrying. - Permission denied when writing to
httpdocs— files are owned by the wrong user. They should belong to the subscription's system user,deployin this example.
Next steps
- Manage multiple PHP versions on Ubuntu with PHP-FPM when one site needs a different PHP build.
- Implement secure file transfer with SFTP over SSH keys to upload files without passwords.
- Postfix and Dovecot mail server setup on a Linux VPS if you plan to handle mail on the same box.
- Linux file system permissions: ACL vs standard permissions to fix ownership problems under
/var/www/vhosts.
