{"id":3167,"date":"2026-04-28T11:47:46","date_gmt":"2026-04-28T10:47:46","guid":{"rendered":"https:\/\/zuumhost.com\/blog\/?p=3167"},"modified":"2026-05-13T11:08:14","modified_gmt":"2026-05-13T10:08:14","slug":"how-to-set-up-a-linux-vps-from-scratch-step-by-step-guide","status":"publish","type":"post","link":"https:\/\/zuumhost.com\/blog\/uncategorized\/how-to-set-up-a-linux-vps-from-scratch-step-by-step-guide\/","title":{"rendered":"How to Set Up a Linux VPS From Scratch (Step-by-Step Guide)"},"content":{"rendered":"<figure id=\"attachment_3176\" aria-describedby=\"caption-attachment-3176\" style=\"width: 300px\" class=\"wp-caption alignnone\"><img fetchpriority=\"high\" decoding=\"async\" class=\"wp-image-3176 size-medium\" src=\"https:\/\/zuumhost.com\/blog\/wp-content\/uploads\/2026\/04\/linux2-300x300.png\" alt=\"How to Set Up a Linux VPS From Scratch (Step-by-Step Guide)\" width=\"300\" height=\"300\" srcset=\"https:\/\/zuumhost.com\/blog\/wp-content\/uploads\/2026\/04\/linux2-300x300.png 300w, https:\/\/zuumhost.com\/blog\/wp-content\/uploads\/2026\/04\/linux2-1024x1024.png 1024w, https:\/\/zuumhost.com\/blog\/wp-content\/uploads\/2026\/04\/linux2-150x150.png 150w, https:\/\/zuumhost.com\/blog\/wp-content\/uploads\/2026\/04\/linux2-768x768.png 768w, https:\/\/zuumhost.com\/blog\/wp-content\/uploads\/2026\/04\/linux2.png 1254w\" sizes=\"(max-width: 300px) 100vw, 300px\" \/><figcaption id=\"caption-attachment-3176\" class=\"wp-caption-text\"><em>How to Set Up a Linux VPS From Scratch (Step-by-Step Guide)<\/em><\/figcaption><\/figure>\n<h2>How to Set Up a Linux VPS From Scratch (Step-by-Step Guide)<\/h2>\n<p data-start=\"198\" data-end=\"358\">Getting a VPS is a big upgrade from shared hosting. You now have full control, better speed, stronger security, and the freedom to run any application you want.<\/p>\n<p data-start=\"360\" data-end=\"504\">If you just purchased a VPS from <a href=\"https:\/\/zuumhost.com\/\" target=\"_blank\" rel=\"noopener\"><strong data-start=\"393\" data-end=\"405\">Zuumhost<\/strong>,<\/a> this guide will walk you through everything you need to do to get your server ready from scratch.<\/p>\n<p data-start=\"506\" data-end=\"526\"><em>Let\u2019s get started<\/em><\/p>\n<h2 data-section-id=\"1w9d196\" data-start=\"533\" data-end=\"567\">What You\u2019ll Learn in This Guide<\/h2>\n<p data-start=\"569\" data-end=\"602\">By the end, you will know how to:<\/p>\n<ul data-start=\"604\" data-end=\"832\">\n<li data-section-id=\"1nd61qi\" data-start=\"604\" data-end=\"632\">Access your VPS securely<\/li>\n<li data-section-id=\"1mn4fu5\" data-start=\"633\" data-end=\"667\">Update and protect your server<\/li>\n<li data-section-id=\"1d6nhf4\" data-start=\"668\" data-end=\"697\">Create a safer admin user<\/li>\n<li data-section-id=\"1fdw12r\" data-start=\"698\" data-end=\"735\">Install a web server and database<\/li>\n<li data-section-id=\"1cz9sch\" data-start=\"736\" data-end=\"759\">Upload your website<\/li>\n<li data-section-id=\"1h4nvc1\" data-start=\"760\" data-end=\"798\">Connect your domain and enable SSL<\/li>\n<li data-section-id=\"lyhu9h\" data-start=\"799\" data-end=\"832\">Set up backups and monitoring<\/li>\n<\/ul>\n<h1 data-section-id=\"1sm2td4\" data-start=\"839\" data-end=\"876\">Step 1: Connect to Your VPS via SSH<\/h1>\n<p data-start=\"878\" data-end=\"922\">After purchasing your VPS, you will receive:<\/p>\n<ul data-start=\"923\" data-end=\"980\">\n<li data-section-id=\"1t500ea\" data-start=\"923\" data-end=\"944\">Server IP address<\/li>\n<li data-section-id=\"1mbg9iw\" data-start=\"945\" data-end=\"962\">Root username<\/li>\n<li data-section-id=\"8dnrv5\" data-start=\"963\" data-end=\"980\">Root password<\/li>\n<\/ul>\n<p data-start=\"982\" data-end=\"1043\">Use Terminal <a href=\"https:\/\/www.linux.org\/\" target=\"_blank\" rel=\"noopener\">(Mac\/Linux)<\/a> or PuTTY (Windows) and connect with:<\/p>\n<p data-start=\"982\" data-end=\"1043\"><em>&lt;\/&gt; Bash<\/em><\/p>\n<div class=\"relative w-full mt-4 mb-1\">\n<div class=\"\">\n<div class=\"relative\">\n<div class=\"h-full min-h-0 min-w-0\">\n<div class=\"h-full min-h-0 min-w-0\">\n<div class=\"border border-token-border-light border-radius-3xl corner-superellipse\/1.1 rounded-3xl\">\n<div class=\"h-full w-full border-radius-3xl bg-token-bg-elevated-secondary corner-superellipse\/1.1 overflow-clip rounded-3xl lxnfua_clipPathFallback\">\n<div class=\"relative\">\n<div class=\"\">\n<div class=\"relative z-0 flex max-w-full\">\n<div id=\"code-block-viewer\" class=\"q9tKkq_viewer cm-editor z-10 light:cm-light dark:cm-light flex h-full w-full flex-col items-stretch \u037ck \u037cy\" dir=\"ltr\">\n<div class=\"cm-scroller\">\n<div class=\"cm-content q9tKkq_readonly\"><em><span class=\"\u037cs\">ssh<\/span> root@your_server_ip<\/em><\/div>\n<div>\n<p data-start=\"1082\" data-end=\"1136\">When prompted, type <strong data-start=\"1102\" data-end=\"1109\">yes<\/strong> to confirm the connection.<\/p>\n<p data-start=\"1138\" data-end=\"1178\">Immediately change the default password:<\/p>\n<p data-start=\"1138\" data-end=\"1178\"><em>&lt;\/&gt; Bash<\/em><\/p>\n<div class=\"relative w-full mt-4 mb-1\">\n<div class=\"\">\n<div class=\"relative\">\n<div class=\"h-full min-h-0 min-w-0\">\n<div class=\"h-full min-h-0 min-w-0\">\n<div class=\"border border-token-border-light border-radius-3xl corner-superellipse\/1.1 rounded-3xl\">\n<div class=\"h-full w-full border-radius-3xl bg-token-bg-elevated-secondary corner-superellipse\/1.1 overflow-clip rounded-3xl lxnfua_clipPathFallback\">\n<div class=\"relative\">\n<div class=\"\">\n<div class=\"relative z-0 flex max-w-full\">\n<div id=\"code-block-viewer\" class=\"q9tKkq_viewer cm-editor z-10 light:cm-light dark:cm-light flex h-full w-full flex-col items-stretch \u037ck \u037cy\" dir=\"ltr\">\n<div class=\"cm-scroller\">\n<div class=\"cm-content q9tKkq_readonly\">passwd<\/div>\n<div>This is your first layer of security.<\/div>\n<div>\n<h1 data-section-id=\"1xq4gds\" data-start=\"1244\" data-end=\"1281\">Step 2: Update Your Server Packages<\/h1>\n<p data-start=\"1283\" data-end=\"1352\">Before installing anything, update the server to the latest versions.<\/p>\n<p data-start=\"1354\" data-end=\"1380\">For Ubuntu\/Debian servers:<\/p>\n<div class=\"relative w-full mt-4 mb-1\">\n<div class=\"\">\n<div class=\"relative\">\n<div class=\"h-full min-h-0 min-w-0\">\n<div class=\"h-full min-h-0 min-w-0\">\n<div class=\"border border-token-border-light border-radius-3xl corner-superellipse\/1.1 rounded-3xl\">\n<div class=\"h-full w-full border-radius-3xl bg-token-bg-elevated-secondary corner-superellipse\/1.1 overflow-clip rounded-3xl lxnfua_clipPathFallback\">\n<div class=\"pointer-events-none absolute inset-x-4 top-12 bottom-4\">\n<div class=\"pointer-events-none sticky z-40 shrink-0 z-1!\">\n<div class=\"sticky bg-token-border-light\"><em>&lt;\/&gt; Bash<\/em><\/div>\n<\/div>\n<\/div>\n<div class=\"relative\">\n<div class=\"\">\n<div class=\"relative z-0 flex max-w-full\">\n<div id=\"code-block-viewer\" class=\"q9tKkq_viewer cm-editor z-10 light:cm-light dark:cm-light flex h-full w-full flex-col items-stretch \u037ck \u037cy\" dir=\"ltr\">\n<div class=\"cm-scroller\">\n<div class=\"cm-content q9tKkq_readonly\"><em>apt update &amp;&amp; apt upgrade <span class=\"\u037cu\">-y<\/span><\/em><\/div>\n<div><\/div>\n<div>\n<p data-start=\"1424\" data-end=\"1445\">For CentOS\/AlmaLinux:<\/p>\n<div class=\"relative w-full mt-4 mb-1\">\n<div class=\"\">\n<div class=\"relative\">\n<div class=\"h-full min-h-0 min-w-0\">\n<div class=\"h-full min-h-0 min-w-0\">\n<div class=\"border border-token-border-light border-radius-3xl corner-superellipse\/1.1 rounded-3xl\">\n<div class=\"h-full w-full border-radius-3xl bg-token-bg-elevated-secondary corner-superellipse\/1.1 overflow-clip rounded-3xl lxnfua_clipPathFallback\">\n<div class=\"pointer-events-none absolute inset-x-4 top-12 bottom-4\">\n<div class=\"pointer-events-none sticky z-40 shrink-0 z-1!\">\n<div class=\"sticky bg-token-border-light\"><em>&lt;\/&gt; Bash<\/em><\/div>\n<\/div>\n<\/div>\n<div class=\"relative\">\n<div class=\"\">\n<div class=\"relative z-0 flex max-w-full\">\n<div id=\"code-block-viewer\" class=\"q9tKkq_viewer cm-editor z-10 light:cm-light dark:cm-light flex h-full w-full flex-col items-stretch \u037ck \u037cy\" dir=\"ltr\">\n<div class=\"cm-scroller\">\n<div class=\"cm-content q9tKkq_readonly\"><em>yum update <span class=\"\u037cu\">-y<\/span><\/em><\/div>\n<div>\n<h1 data-section-id=\"1mjcpml\" data-start=\"1541\" data-end=\"1586\">Step 3: Create a New Admin User (Important)<\/h1>\n<p data-start=\"1588\" data-end=\"1653\">Working as root all the time is risky. Create a new user instead.<\/p>\n<p data-start=\"1655\" data-end=\"1671\">Create the user:<\/p>\n<p data-start=\"1655\" data-end=\"1671\"><em>&lt;\/&gt; Bash<\/em><\/p>\n<div class=\"relative w-full mt-4 mb-1\">\n<div class=\"\">\n<div class=\"relative\">\n<div class=\"h-full min-h-0 min-w-0\">\n<div class=\"h-full min-h-0 min-w-0\">\n<div class=\"border border-token-border-light border-radius-3xl corner-superellipse\/1.1 rounded-3xl\">\n<div class=\"h-full w-full border-radius-3xl bg-token-bg-elevated-secondary corner-superellipse\/1.1 overflow-clip rounded-3xl lxnfua_clipPathFallback\">\n<div class=\"relative\">\n<div class=\"\">\n<div class=\"relative z-0 flex max-w-full\">\n<div id=\"code-block-viewer\" class=\"q9tKkq_viewer cm-editor z-10 light:cm-light dark:cm-light flex h-full w-full flex-col items-stretch \u037ck \u037cy\" dir=\"ltr\">\n<div class=\"cm-scroller\">\n<div class=\"cm-content q9tKkq_readonly\">adduser <a href=\"https:\/\/zuumhost.com\/\" target=\"_blank\" rel=\"noopener\">zuumadmin<\/a><\/div>\n<div>\n<p data-start=\"1704\" data-end=\"1734\">Grant admin (sudo) privileges:<\/p>\n<div class=\"relative w-full mt-4 mb-1\">\n<div class=\"\">\n<div class=\"relative\">\n<div class=\"h-full min-h-0 min-w-0\">\n<div class=\"h-full min-h-0 min-w-0\">\n<div class=\"border border-token-border-light border-radius-3xl corner-superellipse\/1.1 rounded-3xl\">\n<div class=\"h-full w-full border-radius-3xl bg-token-bg-elevated-secondary corner-superellipse\/1.1 overflow-clip rounded-3xl lxnfua_clipPathFallback\">\n<div class=\"pointer-events-none absolute inset-x-4 top-12 bottom-4\">\n<div class=\"pointer-events-none sticky z-40 shrink-0 z-1!\">\n<div class=\"sticky bg-token-border-light\"><em>&lt;\/&gt; Bash<\/em><\/div>\n<\/div>\n<\/div>\n<div class=\"relative\">\n<div class=\"\">\n<div class=\"relative z-0 flex max-w-full\">\n<div id=\"code-block-viewer\" class=\"q9tKkq_viewer cm-editor z-10 light:cm-light dark:cm-light flex h-full w-full flex-col items-stretch \u037ck \u037cy\" dir=\"ltr\">\n<div class=\"cm-scroller\">\n<div class=\"cm-content q9tKkq_readonly\">usermod <span class=\"\u037cu\">-aG<\/span> <span class=\"\u037cs\">sudo<\/span> zuumadmin<\/div>\n<div>\n<p data-start=\"1776\" data-end=\"1799\">Switch to the new user:<\/p>\n<div class=\"relative w-full mt-4 mb-1\">\n<div class=\"\">\n<div class=\"relative\">\n<div class=\"h-full min-h-0 min-w-0\">\n<div class=\"h-full min-h-0 min-w-0\">\n<div class=\"border border-token-border-light border-radius-3xl corner-superellipse\/1.1 rounded-3xl\">\n<div class=\"h-full w-full border-radius-3xl bg-token-bg-elevated-secondary corner-superellipse\/1.1 overflow-clip rounded-3xl lxnfua_clipPathFallback\">\n<div class=\"pointer-events-none absolute inset-x-4 top-12 bottom-4\">\n<div class=\"pointer-events-none sticky z-40 shrink-0 z-1!\">\n<div class=\"sticky bg-token-border-light\"><em>&lt;\/&gt; Bash<\/em><\/div>\n<\/div>\n<\/div>\n<div class=\"relative\">\n<div class=\"\">\n<div class=\"relative z-0 flex max-w-full\">\n<div id=\"code-block-viewer\" class=\"q9tKkq_viewer cm-editor z-10 light:cm-light dark:cm-light flex h-full w-full flex-col items-stretch \u037ck \u037cy\" dir=\"ltr\">\n<div class=\"cm-scroller\">\n<div class=\"cm-content q9tKkq_readonly\"><span class=\"\u037cs\">su<\/span> <span class=\"\u037cu\">&#8211;<\/span> <a href=\"https:\/\/zuumhost.com\/\" target=\"_blank\" rel=\"noopener\">zuumadmin<\/a><\/div>\n<div>\n<h2 data-section-id=\"r2vwyx\" data-start=\"1834\" data-end=\"1875\">Disable Root Login for Better Security<\/h2>\n<p data-start=\"1877\" data-end=\"1900\">Edit SSH configuration:<\/p>\n<div class=\"relative w-full mt-4 mb-1\">\n<div class=\"\">\n<div class=\"relative\">\n<div class=\"h-full min-h-0 min-w-0\">\n<div class=\"h-full min-h-0 min-w-0\">\n<div class=\"border border-token-border-light border-radius-3xl corner-superellipse\/1.1 rounded-3xl\">\n<div class=\"h-full w-full border-radius-3xl bg-token-bg-elevated-secondary corner-superellipse\/1.1 overflow-clip rounded-3xl lxnfua_clipPathFallback\">\n<div class=\"pointer-events-none absolute inset-x-4 top-12 bottom-4\">\n<div class=\"pointer-events-none sticky z-40 shrink-0 z-1!\">\n<div class=\"sticky bg-token-border-light\"><em>&lt;\/&gt; Bash<\/em><\/div>\n<\/div>\n<\/div>\n<div class=\"relative\">\n<div class=\"\">\n<div class=\"relative z-0 flex max-w-full\">\n<div id=\"code-block-viewer\" class=\"q9tKkq_viewer cm-editor z-10 light:cm-light dark:cm-light flex h-full w-full flex-col items-stretch \u037ck \u037cy\" dir=\"ltr\">\n<div class=\"cm-scroller\">\n<div class=\"cm-content q9tKkq_readonly\"><span class=\"\u037cs\">sudo<\/span> nano \/etc\/ssh\/sshd_config<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"\">\n<div class=\"\"><\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<p data-start=\"1946\" data-end=\"1963\">Change this line:<\/p>\n<div class=\"relative w-full mt-4 mb-1\">\n<div class=\"\">\n<div class=\"relative\">\n<div class=\"h-full min-h-0 min-w-0\">\n<div class=\"h-full min-h-0 min-w-0\">\n<div class=\"border border-token-border-light border-radius-3xl corner-superellipse\/1.1 rounded-3xl\">\n<div class=\"h-full w-full border-radius-3xl bg-token-bg-elevated-secondary corner-superellipse\/1.1 overflow-clip rounded-3xl lxnfua_clipPathFallback\">\n<div class=\"pointer-events-none absolute end-1.5 top-1 z-2 md:end-2 md:top-1\"><\/div>\n<div class=\"relative\">\n<div class=\"pe-11 pt-3\">\n<div class=\"relative z-0 flex max-w-full\">\n<div id=\"code-block-viewer\" class=\"q9tKkq_viewer cm-editor z-10 light:cm-light dark:cm-light flex h-full w-full flex-col items-stretch \u037ck \u037cy\" dir=\"ltr\">\n<div class=\"cm-scroller\">\n<div class=\"cm-content q9tKkq_readonly\">PermitRootLogin yes<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<p data-start=\"1994\" data-end=\"1997\">To:<\/p>\n<div class=\"relative w-full mt-4 mb-1\">\n<div class=\"\">\n<div class=\"relative\">\n<div class=\"h-full min-h-0 min-w-0\">\n<div class=\"h-full min-h-0 min-w-0\">\n<div class=\"border border-token-border-light border-radius-3xl corner-superellipse\/1.1 rounded-3xl\">\n<div class=\"h-full w-full border-radius-3xl bg-token-bg-elevated-secondary corner-superellipse\/1.1 overflow-clip rounded-3xl lxnfua_clipPathFallback\">\n<div class=\"relative\">\n<div class=\"pe-11 pt-3\">\n<div class=\"relative z-0 flex max-w-full\">\n<div id=\"code-block-viewer\" class=\"q9tKkq_viewer cm-editor z-10 light:cm-light dark:cm-light flex h-full w-full flex-col items-stretch \u037ck \u037cy\" dir=\"ltr\">\n<div class=\"cm-scroller\">\n<div class=\"cm-content q9tKkq_readonly\">PermitRootLogin no<\/div>\n<div>\n<p data-start=\"2027\" data-end=\"2039\">Restart SSH:<\/p>\n<div class=\"relative w-full mt-4 mb-1\">\n<div class=\"\">\n<div class=\"relative\">\n<div class=\"h-full min-h-0 min-w-0\">\n<div class=\"h-full min-h-0 min-w-0\">\n<div class=\"border border-token-border-light border-radius-3xl corner-superellipse\/1.1 rounded-3xl\">\n<div class=\"h-full w-full border-radius-3xl bg-token-bg-elevated-secondary corner-superellipse\/1.1 overflow-clip rounded-3xl lxnfua_clipPathFallback\">\n<div class=\"pointer-events-none absolute inset-x-4 top-12 bottom-4\">\n<div class=\"pointer-events-none sticky z-40 shrink-0 z-1!\">\n<div class=\"sticky bg-token-border-light\"><em>&lt;\/&gt; Bash<\/em><\/div>\n<\/div>\n<\/div>\n<div class=\"relative\">\n<div class=\"\">\n<div class=\"relative z-0 flex max-w-full\">\n<div id=\"code-block-viewer\" class=\"q9tKkq_viewer cm-editor z-10 light:cm-light dark:cm-light flex h-full w-full flex-col items-stretch \u037ck \u037cy\" dir=\"ltr\">\n<div class=\"cm-scroller\">\n<div class=\"cm-content q9tKkq_readonly\"><span class=\"\u037cs\">sudo<\/span> systemctl <span class=\"\u037cs\">restart<\/span> <span class=\"\u037cs\">ssh<\/span><\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"\">\n<div class=\"\"><\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<p data-start=\"2081\" data-end=\"2113\">Your server is now much safer<\/p>\n<h1 data-section-id=\"bdat3z\" data-start=\"2120\" data-end=\"2159\">Step 4: Configure Firewall Protection<\/h1>\n<p data-start=\"2161\" data-end=\"2206\">Your VPS must only allow trusted connections.<\/p>\n<p data-start=\"2208\" data-end=\"2224\">Enable firewall:<\/p>\n<p data-start=\"2208\" data-end=\"2224\"><em>&lt;\/&gt; Bash<\/em><\/p>\n<div class=\"relative w-full mt-4 mb-1\">\n<div class=\"\">\n<div class=\"relative\">\n<div class=\"h-full min-h-0 min-w-0\">\n<div class=\"h-full min-h-0 min-w-0\">\n<div class=\"border border-token-border-light border-radius-3xl corner-superellipse\/1.1 rounded-3xl\">\n<div class=\"h-full w-full border-radius-3xl bg-token-bg-elevated-secondary corner-superellipse\/1.1 overflow-clip rounded-3xl lxnfua_clipPathFallback\">\n<div class=\"pointer-events-none absolute inset-x-4 top-12 bottom-4\">\n<div class=\"pointer-events-none sticky z-40 shrink-0 z-1!\">\n<div class=\"sticky bg-token-border-light\">sudo ufw allow OpenSSH<br \/>\nsudo ufw enable<br \/>\nsudo ufw status<\/div>\n<div>\n<p data-start=\"2294\" data-end=\"2316\">Allow website traffic:<\/p>\n<div class=\"relative w-full mt-4 mb-1\">\n<div class=\"\">\n<div class=\"relative\">\n<div class=\"h-full min-h-0 min-w-0\">\n<div class=\"h-full min-h-0 min-w-0\">\n<div class=\"border border-token-border-light border-radius-3xl corner-superellipse\/1.1 rounded-3xl\">\n<div class=\"h-full w-full border-radius-3xl bg-token-bg-elevated-secondary corner-superellipse\/1.1 overflow-clip rounded-3xl lxnfua_clipPathFallback\">\n<div class=\"pointer-events-none absolute inset-x-4 top-12 bottom-4\">\n<div class=\"pointer-events-none sticky z-40 shrink-0 z-1!\">\n<div class=\"sticky bg-token-border-light\"><em>&lt;\/&gt; Bash<\/em><\/div>\n<\/div>\n<\/div>\n<div class=\"relative\">\n<div class=\"\">\n<div class=\"relative z-0 flex max-w-full\">\n<div id=\"code-block-viewer\" class=\"q9tKkq_viewer cm-editor z-10 light:cm-light dark:cm-light flex h-full w-full flex-col items-stretch \u037ck \u037cy\" dir=\"ltr\">\n<div class=\"cm-scroller\">\n<div class=\"cm-content q9tKkq_readonly\"><span class=\"\u037cs\">sudo<\/span> ufw allow http<br \/>\n<span class=\"\u037cs\">sudo<\/span> ufw allow https<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"\">\n<div class=\"\"><\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<p data-start=\"2372\" data-end=\"2422\">Now your server is protected from unwanted access.<\/p>\n<h1 data-section-id=\"9x39am\" data-start=\"2429\" data-end=\"2459\">Step 5: Install a Web Server<\/h1>\n<p data-start=\"2461\" data-end=\"2504\">Choose one of the most popular web servers.<\/p>\n<p data-start=\"2506\" data-end=\"2521\">Install Apache:<\/p>\n<div class=\"relative w-full mt-4 mb-1\">\n<div class=\"\">\n<div class=\"relative\">\n<div class=\"h-full min-h-0 min-w-0\">\n<div class=\"h-full min-h-0 min-w-0\">\n<div class=\"border border-token-border-light border-radius-3xl corner-superellipse\/1.1 rounded-3xl\">\n<div class=\"h-full w-full border-radius-3xl bg-token-bg-elevated-secondary corner-superellipse\/1.1 overflow-clip rounded-3xl lxnfua_clipPathFallback\">\n<div class=\"pointer-events-none absolute inset-x-4 top-12 bottom-4\">\n<div class=\"pointer-events-none sticky z-40 shrink-0 z-1!\">\n<div class=\"sticky bg-token-border-light\"><em>&lt;\/&gt; Bash<\/em><\/div>\n<\/div>\n<\/div>\n<div class=\"relative\">\n<div class=\"\">\n<div class=\"relative z-0 flex max-w-full\">\n<div id=\"code-block-viewer\" class=\"q9tKkq_viewer cm-editor z-10 light:cm-light dark:cm-light flex h-full w-full flex-col items-stretch \u037ck \u037cy\" dir=\"ltr\">\n<div class=\"cm-scroller\">\n<div class=\"cm-content q9tKkq_readonly\"><span class=\"\u037cs\">sudo<\/span> apt install apache2 <span class=\"\u037cu\">-y<\/span><\/div>\n<div>\n<p data-start=\"2564\" data-end=\"2581\">OR install Nginx:<\/p>\n<div class=\"relative w-full mt-4 mb-1\">\n<div class=\"\">\n<div class=\"relative\">\n<div class=\"h-full min-h-0 min-w-0\">\n<div class=\"h-full min-h-0 min-w-0\">\n<div class=\"border border-token-border-light border-radius-3xl corner-superellipse\/1.1 rounded-3xl\">\n<div class=\"h-full w-full border-radius-3xl bg-token-bg-elevated-secondary corner-superellipse\/1.1 overflow-clip rounded-3xl lxnfua_clipPathFallback\">\n<div class=\"pointer-events-none absolute inset-x-4 top-12 bottom-4\">\n<div class=\"pointer-events-none sticky z-40 shrink-0 z-1!\">\n<div class=\"sticky bg-token-border-light\"><em>&lt;\/&gt; Bash<\/em><\/div>\n<\/div>\n<\/div>\n<div class=\"relative\">\n<div class=\"\">\n<div class=\"relative z-0 flex max-w-full\">\n<div id=\"code-block-viewer\" class=\"q9tKkq_viewer cm-editor z-10 light:cm-light dark:cm-light flex h-full w-full flex-col items-stretch \u037ck \u037cy\" dir=\"ltr\">\n<div class=\"cm-scroller\">\n<div class=\"cm-content q9tKkq_readonly\"><span class=\"\u037cs\">sudo<\/span> apt install nginx <span class=\"\u037cu\">-y<\/span><\/div>\n<div>\n<p data-start=\"2622\" data-end=\"2639\">Test by visiting:<\/p>\n<div class=\"relative w-full mt-4 mb-1\">\n<div class=\"\">\n<div class=\"relative\">\n<div class=\"h-full min-h-0 min-w-0\">\n<div class=\"h-full min-h-0 min-w-0\">\n<div class=\"border border-token-border-light border-radius-3xl corner-superellipse\/1.1 rounded-3xl\">\n<div class=\"h-full w-full border-radius-3xl bg-token-bg-elevated-secondary corner-superellipse\/1.1 overflow-clip rounded-3xl lxnfua_clipPathFallback\">\n<div class=\"relative\">\n<div class=\"pe-11 pt-3\">\n<div class=\"relative z-0 flex max-w-full\">\n<div id=\"code-block-viewer\" class=\"q9tKkq_viewer cm-editor z-10 light:cm-light dark:cm-light flex h-full w-full flex-col items-stretch \u037ck \u037cy\" dir=\"ltr\">\n<div class=\"cm-scroller\">\n<div class=\"cm-content q9tKkq_readonly\">http:\/\/your_server_ip<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<p data-start=\"2672\" data-end=\"2710\">You should see the default web page<\/p>\n<h1 data-section-id=\"1xr8zpi\" data-start=\"2717\" data-end=\"2749\">Step 6: Install MySQL Database<\/h1>\n<p data-start=\"2751\" data-end=\"2807\">Most websites (especially WordPress) require a database.<\/p>\n<p data-start=\"2809\" data-end=\"2823\">Install MySQL:<\/p>\n<div class=\"relative w-full mt-4 mb-1\">\n<div class=\"\">\n<div class=\"relative\">\n<div class=\"h-full min-h-0 min-w-0\">\n<div class=\"h-full min-h-0 min-w-0\">\n<div class=\"border border-token-border-light border-radius-3xl corner-superellipse\/1.1 rounded-3xl\">\n<div class=\"h-full w-full border-radius-3xl bg-token-bg-elevated-secondary corner-superellipse\/1.1 overflow-clip rounded-3xl lxnfua_clipPathFallback\">\n<div class=\"pointer-events-none absolute inset-x-4 top-12 bottom-4\">\n<div class=\"pointer-events-none sticky z-40 shrink-0 z-1!\">\n<div class=\"sticky bg-token-border-light\"><em>&lt;\/&gt; Bash<\/em><\/div>\n<\/div>\n<\/div>\n<div class=\"relative\">\n<div class=\"\">\n<div class=\"relative z-0 flex max-w-full\">\n<div id=\"code-block-viewer\" class=\"q9tKkq_viewer cm-editor z-10 light:cm-light dark:cm-light flex h-full w-full flex-col items-stretch \u037ck \u037cy\" dir=\"ltr\">\n<div class=\"cm-scroller\">\n<div class=\"cm-content q9tKkq_readonly\"><span class=\"\u037cs\">sudo<\/span> apt install mysql-server <span class=\"\u037cu\">-y<\/span><\/div>\n<div>\n<p data-start=\"2871\" data-end=\"2895\">Secure the installation:<\/p>\n<div class=\"relative w-full mt-4 mb-1\">\n<div class=\"\">\n<div class=\"relative\">\n<div class=\"h-full min-h-0 min-w-0\">\n<div class=\"h-full min-h-0 min-w-0\">\n<div class=\"border border-token-border-light border-radius-3xl corner-superellipse\/1.1 rounded-3xl\">\n<div class=\"h-full w-full border-radius-3xl bg-token-bg-elevated-secondary corner-superellipse\/1.1 overflow-clip rounded-3xl lxnfua_clipPathFallback\">\n<div class=\"pointer-events-none absolute inset-x-4 top-12 bottom-4\">\n<div class=\"pointer-events-none sticky z-40 shrink-0 z-1!\">\n<div class=\"sticky bg-token-border-light\"><em>&lt;\/&gt; Bash<\/em><\/div>\n<\/div>\n<\/div>\n<div class=\"relative\">\n<div class=\"\">\n<div class=\"relative z-0 flex max-w-full\">\n<div id=\"code-block-viewer\" class=\"q9tKkq_viewer cm-editor z-10 light:cm-light dark:cm-light flex h-full w-full flex-col items-stretch \u037ck \u037cy\" dir=\"ltr\">\n<div class=\"cm-scroller\">\n<div class=\"cm-content q9tKkq_readonly\"><span class=\"\u037cs\">sudo<\/span> mysql_secure_installation<\/div>\n<div>\n<p data-start=\"2941\" data-end=\"2963\">Follow the prompts to:<\/p>\n<ul data-start=\"2964\" data-end=\"3037\">\n<li data-section-id=\"1tjzdtf\" data-start=\"2964\" data-end=\"2985\">Set root password<\/li>\n<li data-section-id=\"1xruhei\" data-start=\"2986\" data-end=\"3007\">Remove test users<\/li>\n<li data-section-id=\"1h4o0ql\" data-start=\"3008\" data-end=\"3037\">Disable remote root login<\/li>\n<\/ul>\n<h1 data-section-id=\"eo6tao\" data-start=\"3044\" data-end=\"3073\">Step 7: Upload Your Website<\/h1>\n<p data-section-id=\"127frvd\" data-start=\"3075\" data-end=\"3117\"><strong>Option 1 \u2014 Upload via FileZilla (SFTP)<\/strong><\/p>\n<p data-start=\"3118\" data-end=\"3134\">Upload files to:<\/p>\n<div class=\"relative w-full mt-4 mb-1\">\n<div class=\"\">\n<div class=\"relative\">\n<div class=\"h-full min-h-0 min-w-0\">\n<div class=\"h-full min-h-0 min-w-0\">\n<div class=\"border border-token-border-light border-radius-3xl corner-superellipse\/1.1 rounded-3xl\">\n<div class=\"h-full w-full border-radius-3xl bg-token-bg-elevated-secondary corner-superellipse\/1.1 overflow-clip rounded-3xl lxnfua_clipPathFallback\">\n<div class=\"relative\">\n<div class=\"pe-11 pt-3\">\n<div class=\"relative z-0 flex max-w-full\">\n<div id=\"code-block-viewer\" class=\"q9tKkq_viewer cm-editor z-10 light:cm-light dark:cm-light flex h-full w-full flex-col items-stretch \u037ck \u037cy\" dir=\"ltr\">\n<div class=\"cm-scroller\">\n<div class=\"cm-content q9tKkq_readonly\">\/var\/www\/html<\/div>\n<div><\/div>\n<div>\n<p data-section-id=\"1nzy0ok\" data-start=\"3159\" data-end=\"3190\"><strong>Option 2 \u2014 Deploy using Git<\/strong><\/p>\n<div class=\"relative w-full mt-4 mb-1\">\n<div class=\"\">\n<div class=\"relative\">\n<div class=\"h-full min-h-0 min-w-0\">\n<div class=\"h-full min-h-0 min-w-0\">\n<div class=\"border border-token-border-light border-radius-3xl corner-superellipse\/1.1 rounded-3xl\">\n<div class=\"h-full w-full border-radius-3xl bg-token-bg-elevated-secondary corner-superellipse\/1.1 overflow-clip rounded-3xl lxnfua_clipPathFallback\">\n<div class=\"pointer-events-none absolute inset-x-4 top-12 bottom-4\">\n<div class=\"pointer-events-none sticky z-40 shrink-0 z-1!\">\n<div class=\"sticky bg-token-border-light\"><\/div>\n<\/div>\n<\/div>\n<div class=\"relative\">\n<div class=\"\">\n<div class=\"relative z-0 flex max-w-full\">\n<div id=\"code-block-viewer\" class=\"q9tKkq_viewer cm-editor z-10 light:cm-light dark:cm-light flex h-full w-full flex-col items-stretch \u037ck \u037cy\" dir=\"ltr\">\n<div class=\"cm-scroller\">\n<div class=\"cm-content q9tKkq_readonly\"><span class=\"\u037cs\">git<\/span> clone https:\/\/github.com\/yourrepo.git \/var\/www\/html<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<p data-start=\"3261\" data-end=\"3284\">Set proper permissions:<\/p>\n<p data-start=\"3261\" data-end=\"3284\"><em>&lt;\/&gt; Bash<\/em><\/p>\n<div class=\"relative w-full mt-4 mb-1\">\n<div class=\"\">\n<div class=\"relative\">\n<div class=\"h-full min-h-0 min-w-0\">\n<div class=\"h-full min-h-0 min-w-0\">\n<div class=\"border border-token-border-light border-radius-3xl corner-superellipse\/1.1 rounded-3xl\">\n<div class=\"h-full w-full border-radius-3xl bg-token-bg-elevated-secondary corner-superellipse\/1.1 overflow-clip rounded-3xl lxnfua_clipPathFallback\">\n<div class=\"pointer-events-none absolute inset-x-4 top-12 bottom-4\">\n<div class=\"pointer-events-none sticky z-40 shrink-0 z-1!\">\n<div class=\"sticky bg-token-border-light\"><span class=\"\u037cs\">sudo<\/span> <span class=\"\u037cs\">chown<\/span> <span class=\"\u037cu\">-R<\/span> www-data:www-data \/var\/www\/html<\/div>\n<div><\/div>\n<div>\n<h1 data-section-id=\"1r1nj95\" data-start=\"3350\" data-end=\"3379\">Step 8: Connect Your Domain<\/h1>\n<p data-start=\"3381\" data-end=\"3446\">Update your domain DNS and point the <strong data-start=\"3418\" data-end=\"3430\">A Record<\/strong> to your VPS IP.<\/p>\n<p data-start=\"3448\" data-end=\"3477\">After DNS propagation, visit:<\/p>\n<div class=\"relative w-full mt-4 mb-1\">\n<div class=\"\">\n<div class=\"relative\">\n<div class=\"h-full min-h-0 min-w-0\">\n<div class=\"h-full min-h-0 min-w-0\">\n<div class=\"border border-token-border-light border-radius-3xl corner-superellipse\/1.1 rounded-3xl\">\n<div class=\"h-full w-full border-radius-3xl bg-token-bg-elevated-secondary corner-superellipse\/1.1 overflow-clip rounded-3xl lxnfua_clipPathFallback\">\n<div class=\"relative\">\n<div class=\"pe-11 pt-3\">\n<div class=\"relative z-0 flex max-w-full\">\n<div id=\"code-block-viewer\" class=\"q9tKkq_viewer cm-editor z-10 light:cm-light dark:cm-light flex h-full w-full flex-col items-stretch \u037ck \u037cy\" dir=\"ltr\">\n<div class=\"cm-scroller\">\n<div class=\"cm-content q9tKkq_readonly\">http:\/\/yourdomain.com<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<p data-start=\"3510\" data-end=\"3541\">Your site should now be live<\/p>\n<h1 data-section-id=\"1ia1zd0\" data-start=\"3548\" data-end=\"3582\">Step 9: Install Free SSL (HTTPS)<\/h1>\n<p data-start=\"3584\" data-end=\"3624\">Secure your website using Let\u2019s Encrypt.<\/p>\n<div class=\"relative w-full mt-4 mb-1\">\n<div class=\"\">\n<div class=\"relative\">\n<div class=\"h-full min-h-0 min-w-0\">\n<div class=\"h-full min-h-0 min-w-0\">\n<div class=\"border border-token-border-light border-radius-3xl corner-superellipse\/1.1 rounded-3xl\">\n<div class=\"h-full w-full border-radius-3xl bg-token-bg-elevated-secondary corner-superellipse\/1.1 overflow-clip rounded-3xl lxnfua_clipPathFallback\">\n<div class=\"pointer-events-none absolute inset-x-4 top-12 bottom-4\">\n<div class=\"pointer-events-none sticky z-40 shrink-0 z-1!\">\n<div class=\"sticky bg-token-border-light\"><em>&lt;\/&gt; Bash<\/em><\/div>\n<\/div>\n<\/div>\n<div class=\"relative\">\n<div class=\"\">\n<div class=\"relative z-0 flex max-w-full\">\n<div id=\"code-block-viewer\" class=\"q9tKkq_viewer cm-editor z-10 light:cm-light dark:cm-light flex h-full w-full flex-col items-stretch \u037ck \u037cy\" dir=\"ltr\">\n<div class=\"cm-scroller\">\n<div class=\"cm-content q9tKkq_readonly\"><span class=\"\u037cs\">sudo<\/span> apt install certbot python3-certbot-nginx<br \/>\n<span class=\"\u037cs\">sudo<\/span> certbot <span class=\"\u037cu\">&#8211;nginx<\/span><\/div>\n<div><\/div>\n<div>\n<h1 data-section-id=\"97aimu\" data-start=\"3784\" data-end=\"3824\">Step 10: Monitoring, Updates &amp; Backups<\/h1>\n<p data-start=\"3826\" data-end=\"3848\">Install helpful tools:<\/p>\n<div class=\"relative w-full mt-4 mb-1\">\n<div class=\"\">\n<div class=\"relative\">\n<div class=\"h-full min-h-0 min-w-0\">\n<div class=\"h-full min-h-0 min-w-0\">\n<div class=\"border border-token-border-light border-radius-3xl corner-superellipse\/1.1 rounded-3xl\">\n<div class=\"h-full w-full border-radius-3xl bg-token-bg-elevated-secondary corner-superellipse\/1.1 overflow-clip rounded-3xl lxnfua_clipPathFallback\">\n<div class=\"pointer-events-none absolute inset-x-4 top-12 bottom-4\">\n<div class=\"pointer-events-none sticky z-40 shrink-0 z-1!\">\n<div class=\"sticky bg-token-border-light\"><em>&lt;\/&gt; Bash<\/em><\/div>\n<\/div>\n<\/div>\n<div class=\"relative\">\n<div class=\"\">\n<div class=\"relative z-0 flex max-w-full\">\n<div id=\"code-block-viewer\" class=\"q9tKkq_viewer cm-editor z-10 light:cm-light dark:cm-light flex h-full w-full flex-col items-stretch \u037ck \u037cy\" dir=\"ltr\">\n<div class=\"cm-scroller\">\n<div class=\"cm-content q9tKkq_readonly\"><span class=\"\u037cs\">sudo<\/span> apt install htop fail2ban unattended-upgrades<\/div>\n<div>\n<p data-start=\"3914\" data-end=\"3927\">What they do:<\/p>\n<ul data-start=\"3928\" data-end=\"4078\">\n<li data-section-id=\"rxiqx4\" data-start=\"3928\" data-end=\"3969\"><strong data-start=\"3930\" data-end=\"3938\">htop<\/strong> \u2192 Monitor server performance<\/li>\n<li data-section-id=\"w1tozl\" data-start=\"3970\" data-end=\"4021\"><strong data-start=\"3972\" data-end=\"3984\">fail2ban<\/strong> \u2192 Blocks brute-force login attacks<\/li>\n<li data-section-id=\"17rstwp\" data-start=\"4022\" data-end=\"4078\"><strong data-start=\"4024\" data-end=\"4047\">unattended-upgrades<\/strong> \u2192 Automatic security updates<\/li>\n<\/ul>\n<p data-start=\"4080\" data-end=\"4158\">For backups, use tools like rsync or schedule remote backups to cloud storage.<\/p>\n<h1 data-section-id=\"1329ug4\" data-start=\"4165\" data-end=\"4181\">Final Thoughts<\/h1>\n<p data-start=\"4183\" data-end=\"4351\">Setting up a VPS may feel technical at first, but once completed, you gain full control, top-tier performance, and stronger security for your websites and applications.<\/p>\n<p data-start=\"4353\" data-end=\"4525\">With your Zuumhost VPS properly configured, you now have a powerful hosting environment ready to handle growing traffic, advanced projects, and business-critical workloads.<\/p>\n<p data-start=\"4527\" data-end=\"4714\">Take your time to keep your server updated, monitor performance regularly, and always maintain backups. These simple habits will keep your VPS fast, secure, and reliable for the long run.<\/p>\n<p data-start=\"4716\" data-end=\"4754\" data-is-last-node=\"\" data-is-only-node=\"\">Welcome to the world of VPS hosting<\/p>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>How to Set Up a Linux VPS From Scratch (Step-by-Step Guide) Getting a VPS is a big upgrade from shared [&hellip;]<\/p>\n","protected":false},"author":3,"featured_media":3176,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"site-sidebar-layout":"default","site-content-layout":"","ast-site-content-layout":"default","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"","ast-breadcrumbs-content":"","ast-featured-img":"","footer-sml-layout":"","theme-transparent-header-meta":"default","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"set","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"footnotes":""},"categories":[1],"tags":[456,454,453,455],"class_list":["post-3167","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-uncategorized","tag-beginner-vps-guide","tag-linux-server-setup","tag-vps-hosting","tag-zuumhost-vps"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.2 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>How to Set Up a Linux VPS From Scratch (Step-by-Step Guide) - Zuumhost blog<\/title>\n<meta name=\"description\" content=\"How to Set Up a Linux VPS From Scratch (Step-by-Step Guide). Getting a VPS is a big upgrade from shared hosting. You now have full control\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/zuumhost.com\/blog\/uncategorized\/how-to-set-up-a-linux-vps-from-scratch-step-by-step-guide\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"How to Set Up a Linux VPS From Scratch (Step-by-Step Guide) - Zuumhost blog\" \/>\n<meta property=\"og:description\" content=\"How to Set Up a Linux VPS From Scratch (Step-by-Step Guide). Getting a VPS is a big upgrade from shared hosting. You now have full control\" \/>\n<meta property=\"og:url\" content=\"https:\/\/zuumhost.com\/blog\/uncategorized\/how-to-set-up-a-linux-vps-from-scratch-step-by-step-guide\/\" \/>\n<meta property=\"og:site_name\" content=\"Zuumhost blog\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/facebook.com\/HoganHost\" \/>\n<meta property=\"article:published_time\" content=\"2026-04-28T10:47:46+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2026-05-13T10:08:14+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/zuumhost.com\/blog\/wp-content\/uploads\/2026\/04\/linux2.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1254\" \/>\n\t<meta property=\"og:image:height\" content=\"1254\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Jack Erickson\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@hoganhostng\" \/>\n<meta name=\"twitter:site\" content=\"@hoganhostng\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Jack Erickson\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"4 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/zuumhost.com\/blog\/uncategorized\/how-to-set-up-a-linux-vps-from-scratch-step-by-step-guide\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/zuumhost.com\/blog\/uncategorized\/how-to-set-up-a-linux-vps-from-scratch-step-by-step-guide\/\"},\"author\":{\"name\":\"Jack Erickson\",\"@id\":\"https:\/\/zuumhost.com\/blog\/#\/schema\/person\/66a8ccd8bce318d49bb1b9719ecbf922\"},\"headline\":\"How to Set Up a Linux VPS From Scratch (Step-by-Step Guide)\",\"datePublished\":\"2026-04-28T10:47:46+00:00\",\"dateModified\":\"2026-05-13T10:08:14+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/zuumhost.com\/blog\/uncategorized\/how-to-set-up-a-linux-vps-from-scratch-step-by-step-guide\/\"},\"wordCount\":713,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/zuumhost.com\/blog\/#organization\"},\"image\":{\"@id\":\"https:\/\/zuumhost.com\/blog\/uncategorized\/how-to-set-up-a-linux-vps-from-scratch-step-by-step-guide\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/zuumhost.com\/blog\/wp-content\/uploads\/2026\/04\/linux2.png\",\"keywords\":[\"Beginner VPS Guide\",\"Linux Server Setup\",\"VPS Hosting\",\"Zuumhost VPS\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/zuumhost.com\/blog\/uncategorized\/how-to-set-up-a-linux-vps-from-scratch-step-by-step-guide\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/zuumhost.com\/blog\/uncategorized\/how-to-set-up-a-linux-vps-from-scratch-step-by-step-guide\/\",\"url\":\"https:\/\/zuumhost.com\/blog\/uncategorized\/how-to-set-up-a-linux-vps-from-scratch-step-by-step-guide\/\",\"name\":\"How to Set Up a Linux VPS From Scratch (Step-by-Step Guide) - Zuumhost blog\",\"isPartOf\":{\"@id\":\"https:\/\/zuumhost.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/zuumhost.com\/blog\/uncategorized\/how-to-set-up-a-linux-vps-from-scratch-step-by-step-guide\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/zuumhost.com\/blog\/uncategorized\/how-to-set-up-a-linux-vps-from-scratch-step-by-step-guide\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/zuumhost.com\/blog\/wp-content\/uploads\/2026\/04\/linux2.png\",\"datePublished\":\"2026-04-28T10:47:46+00:00\",\"dateModified\":\"2026-05-13T10:08:14+00:00\",\"description\":\"How to Set Up a Linux VPS From Scratch (Step-by-Step Guide). Getting a VPS is a big upgrade from shared hosting. You now have full control\",\"breadcrumb\":{\"@id\":\"https:\/\/zuumhost.com\/blog\/uncategorized\/how-to-set-up-a-linux-vps-from-scratch-step-by-step-guide\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/zuumhost.com\/blog\/uncategorized\/how-to-set-up-a-linux-vps-from-scratch-step-by-step-guide\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/zuumhost.com\/blog\/uncategorized\/how-to-set-up-a-linux-vps-from-scratch-step-by-step-guide\/#primaryimage\",\"url\":\"https:\/\/zuumhost.com\/blog\/wp-content\/uploads\/2026\/04\/linux2.png\",\"contentUrl\":\"https:\/\/zuumhost.com\/blog\/wp-content\/uploads\/2026\/04\/linux2.png\",\"width\":1254,\"height\":1254,\"caption\":\"How to Set Up a Linux VPS From Scratch (Step-by-Step Guide)\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/zuumhost.com\/blog\/uncategorized\/how-to-set-up-a-linux-vps-from-scratch-step-by-step-guide\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/zuumhost.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"How to Set Up a Linux VPS From Scratch (Step-by-Step Guide)\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/zuumhost.com\/blog\/#website\",\"url\":\"https:\/\/zuumhost.com\/blog\/\",\"name\":\"Zuumhost blog\",\"description\":\"Keeping you connected to everything from Zuumhost\",\"publisher\":{\"@id\":\"https:\/\/zuumhost.com\/blog\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/zuumhost.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/zuumhost.com\/blog\/#organization\",\"name\":\"HoganHost\",\"url\":\"https:\/\/zuumhost.com\/blog\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/zuumhost.com\/blog\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/hoganhost.com.ng\/blog\/wp-content\/uploads\/2022\/09\/hogan-host.png\",\"contentUrl\":\"https:\/\/hoganhost.com.ng\/blog\/wp-content\/uploads\/2022\/09\/hogan-host.png\",\"width\":466,\"height\":387,\"caption\":\"HoganHost\"},\"image\":{\"@id\":\"https:\/\/zuumhost.com\/blog\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/facebook.com\/HoganHost\",\"https:\/\/x.com\/hoganhostng\",\"https:\/\/instagram.com\/officialhoganhost\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/zuumhost.com\/blog\/#\/schema\/person\/66a8ccd8bce318d49bb1b9719ecbf922\",\"name\":\"Jack Erickson\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/secure.gravatar.com\/avatar\/8008da2038037657e8a410d30c9197f23eacce12bb0bb653a75987df7e4b9323?s=96&d=mm&r=g\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/8008da2038037657e8a410d30c9197f23eacce12bb0bb653a75987df7e4b9323?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/8008da2038037657e8a410d30c9197f23eacce12bb0bb653a75987df7e4b9323?s=96&d=mm&r=g\",\"caption\":\"Jack Erickson\"},\"url\":\"https:\/\/zuumhost.com\/blog\/author\/jack-erickson\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"How to Set Up a Linux VPS From Scratch (Step-by-Step Guide) - Zuumhost blog","description":"How to Set Up a Linux VPS From Scratch (Step-by-Step Guide). Getting a VPS is a big upgrade from shared hosting. You now have full control","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/zuumhost.com\/blog\/uncategorized\/how-to-set-up-a-linux-vps-from-scratch-step-by-step-guide\/","og_locale":"en_US","og_type":"article","og_title":"How to Set Up a Linux VPS From Scratch (Step-by-Step Guide) - Zuumhost blog","og_description":"How to Set Up a Linux VPS From Scratch (Step-by-Step Guide). Getting a VPS is a big upgrade from shared hosting. You now have full control","og_url":"https:\/\/zuumhost.com\/blog\/uncategorized\/how-to-set-up-a-linux-vps-from-scratch-step-by-step-guide\/","og_site_name":"Zuumhost blog","article_publisher":"https:\/\/facebook.com\/HoganHost","article_published_time":"2026-04-28T10:47:46+00:00","article_modified_time":"2026-05-13T10:08:14+00:00","og_image":[{"width":1254,"height":1254,"url":"https:\/\/zuumhost.com\/blog\/wp-content\/uploads\/2026\/04\/linux2.png","type":"image\/png"}],"author":"Jack Erickson","twitter_card":"summary_large_image","twitter_creator":"@hoganhostng","twitter_site":"@hoganhostng","twitter_misc":{"Written by":"Jack Erickson","Est. reading time":"4 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/zuumhost.com\/blog\/uncategorized\/how-to-set-up-a-linux-vps-from-scratch-step-by-step-guide\/#article","isPartOf":{"@id":"https:\/\/zuumhost.com\/blog\/uncategorized\/how-to-set-up-a-linux-vps-from-scratch-step-by-step-guide\/"},"author":{"name":"Jack Erickson","@id":"https:\/\/zuumhost.com\/blog\/#\/schema\/person\/66a8ccd8bce318d49bb1b9719ecbf922"},"headline":"How to Set Up a Linux VPS From Scratch (Step-by-Step Guide)","datePublished":"2026-04-28T10:47:46+00:00","dateModified":"2026-05-13T10:08:14+00:00","mainEntityOfPage":{"@id":"https:\/\/zuumhost.com\/blog\/uncategorized\/how-to-set-up-a-linux-vps-from-scratch-step-by-step-guide\/"},"wordCount":713,"commentCount":0,"publisher":{"@id":"https:\/\/zuumhost.com\/blog\/#organization"},"image":{"@id":"https:\/\/zuumhost.com\/blog\/uncategorized\/how-to-set-up-a-linux-vps-from-scratch-step-by-step-guide\/#primaryimage"},"thumbnailUrl":"https:\/\/zuumhost.com\/blog\/wp-content\/uploads\/2026\/04\/linux2.png","keywords":["Beginner VPS Guide","Linux Server Setup","VPS Hosting","Zuumhost VPS"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/zuumhost.com\/blog\/uncategorized\/how-to-set-up-a-linux-vps-from-scratch-step-by-step-guide\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/zuumhost.com\/blog\/uncategorized\/how-to-set-up-a-linux-vps-from-scratch-step-by-step-guide\/","url":"https:\/\/zuumhost.com\/blog\/uncategorized\/how-to-set-up-a-linux-vps-from-scratch-step-by-step-guide\/","name":"How to Set Up a Linux VPS From Scratch (Step-by-Step Guide) - Zuumhost blog","isPartOf":{"@id":"https:\/\/zuumhost.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/zuumhost.com\/blog\/uncategorized\/how-to-set-up-a-linux-vps-from-scratch-step-by-step-guide\/#primaryimage"},"image":{"@id":"https:\/\/zuumhost.com\/blog\/uncategorized\/how-to-set-up-a-linux-vps-from-scratch-step-by-step-guide\/#primaryimage"},"thumbnailUrl":"https:\/\/zuumhost.com\/blog\/wp-content\/uploads\/2026\/04\/linux2.png","datePublished":"2026-04-28T10:47:46+00:00","dateModified":"2026-05-13T10:08:14+00:00","description":"How to Set Up a Linux VPS From Scratch (Step-by-Step Guide). Getting a VPS is a big upgrade from shared hosting. You now have full control","breadcrumb":{"@id":"https:\/\/zuumhost.com\/blog\/uncategorized\/how-to-set-up-a-linux-vps-from-scratch-step-by-step-guide\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/zuumhost.com\/blog\/uncategorized\/how-to-set-up-a-linux-vps-from-scratch-step-by-step-guide\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/zuumhost.com\/blog\/uncategorized\/how-to-set-up-a-linux-vps-from-scratch-step-by-step-guide\/#primaryimage","url":"https:\/\/zuumhost.com\/blog\/wp-content\/uploads\/2026\/04\/linux2.png","contentUrl":"https:\/\/zuumhost.com\/blog\/wp-content\/uploads\/2026\/04\/linux2.png","width":1254,"height":1254,"caption":"How to Set Up a Linux VPS From Scratch (Step-by-Step Guide)"},{"@type":"BreadcrumbList","@id":"https:\/\/zuumhost.com\/blog\/uncategorized\/how-to-set-up-a-linux-vps-from-scratch-step-by-step-guide\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/zuumhost.com\/blog\/"},{"@type":"ListItem","position":2,"name":"How to Set Up a Linux VPS From Scratch (Step-by-Step Guide)"}]},{"@type":"WebSite","@id":"https:\/\/zuumhost.com\/blog\/#website","url":"https:\/\/zuumhost.com\/blog\/","name":"Zuumhost blog","description":"Keeping you connected to everything from Zuumhost","publisher":{"@id":"https:\/\/zuumhost.com\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/zuumhost.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/zuumhost.com\/blog\/#organization","name":"HoganHost","url":"https:\/\/zuumhost.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/zuumhost.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/hoganhost.com.ng\/blog\/wp-content\/uploads\/2022\/09\/hogan-host.png","contentUrl":"https:\/\/hoganhost.com.ng\/blog\/wp-content\/uploads\/2022\/09\/hogan-host.png","width":466,"height":387,"caption":"HoganHost"},"image":{"@id":"https:\/\/zuumhost.com\/blog\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/facebook.com\/HoganHost","https:\/\/x.com\/hoganhostng","https:\/\/instagram.com\/officialhoganhost"]},{"@type":"Person","@id":"https:\/\/zuumhost.com\/blog\/#\/schema\/person\/66a8ccd8bce318d49bb1b9719ecbf922","name":"Jack Erickson","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/8008da2038037657e8a410d30c9197f23eacce12bb0bb653a75987df7e4b9323?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/8008da2038037657e8a410d30c9197f23eacce12bb0bb653a75987df7e4b9323?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/8008da2038037657e8a410d30c9197f23eacce12bb0bb653a75987df7e4b9323?s=96&d=mm&r=g","caption":"Jack Erickson"},"url":"https:\/\/zuumhost.com\/blog\/author\/jack-erickson\/"}]}},"_links":{"self":[{"href":"https:\/\/zuumhost.com\/blog\/wp-json\/wp\/v2\/posts\/3167","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/zuumhost.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/zuumhost.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/zuumhost.com\/blog\/wp-json\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/zuumhost.com\/blog\/wp-json\/wp\/v2\/comments?post=3167"}],"version-history":[{"count":8,"href":"https:\/\/zuumhost.com\/blog\/wp-json\/wp\/v2\/posts\/3167\/revisions"}],"predecessor-version":[{"id":3177,"href":"https:\/\/zuumhost.com\/blog\/wp-json\/wp\/v2\/posts\/3167\/revisions\/3177"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/zuumhost.com\/blog\/wp-json\/wp\/v2\/media\/3176"}],"wp:attachment":[{"href":"https:\/\/zuumhost.com\/blog\/wp-json\/wp\/v2\/media?parent=3167"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/zuumhost.com\/blog\/wp-json\/wp\/v2\/categories?post=3167"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/zuumhost.com\/blog\/wp-json\/wp\/v2\/tags?post=3167"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}