{"id":104,"date":"2026-05-31T23:34:38","date_gmt":"2026-06-01T06:34:38","guid":{"rendered":"https:\/\/cpanelreview.com\/index.php\/2026\/05\/31\/install-wordpress-manually-cpanel-step-by-step-guide\/"},"modified":"2026-05-31T23:34:38","modified_gmt":"2026-06-01T06:34:38","slug":"install-wordpress-manually-cpanel-step-by-step-guide","status":"publish","type":"post","link":"https:\/\/cpanelreview.com\/index.php\/2026\/05\/31\/install-wordpress-manually-cpanel-step-by-step-guide\/","title":{"rendered":"How to Install WordPress Manually in cPanel: A Complete Step-by-Step Guide"},"content":{"rendered":"\n<p>If you run a website on a cPanel-based hosting plan, you have two main roads to getting WordPress installed: the one-click WordPress Toolkit installer or a manual installation. While the Toolkit is fast and convenient, knowing how to install WordPress manually in cPanel gives you finer control over configuration, database credentials, file permissions, and the core files themselves. This guide walks through the entire manual installation process step by step, from downloading the WordPress package to running the famous &#8220;five-minute install.&#8221;<\/p>\n\n\n\n<p>Manual installation is especially useful when you need to set up a WordPress multisite network, use a custom database prefix, or configure advanced <code>wp-config.php<\/code> settings before the site ever goes live. It also helps you understand exactly where your files live and how the CMS connects to your database \u2014 knowledge that pays off when debugging issues down the road. Let&#8217;s get started.<\/p>\n\n\n\n<!--more-->\n\n\n\n<h2 class=\"wp-block-heading\">Prerequisites: What You Need Before You Begin<\/h2>\n\n\n\n<p>Before touching the keyboard, make sure you have the following ready:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>A cPanel account<\/strong> with login credentials (typically <code>https:\/\/yourdomain.com\/cpanel<\/code> or a URL provided by your host)<\/li>\n<li><strong>A registered domain name<\/strong> pointing to your hosting account (or a subdomain \/ addon domain you plan to use)<\/li>\n<li><strong>FTP credentials or the cPanel File Manager<\/strong> for uploading files to the server<\/li>\n<li><strong>The latest WordPress zip package<\/strong> \u2014 download it from <a href=\"https:\/\/wordpress.org\/download\/\" target=\"_blank\" rel=\"noreferrer noopener\">wordpress.org\/download<\/a><\/li>\n<\/ul>\n\n\n\n<p>That&#8217;s it. No additional tools or software are required. A stable internet connection and ten to fifteen minutes are all you need.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Step 1: Create a MySQL Database and Database User in cPanel<\/h2>\n\n\n\n<p>WordPress stores all of its content \u2014 posts, pages, user accounts, comments, and settings \u2014 in a MySQL database. Before installing the CMS, you need to create both the database and a user who can access it.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">1.1. Open the MySQL Database Wizard<\/h3>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Log into your cPanel dashboard.<\/li>\n<li>Scroll to the <strong>Databases<\/strong> section and click <strong>MySQL Database Wizard<\/strong>.<\/li>\n<li>This tool walks you through database creation, user creation, and privilege assignment in a single flow.<\/li>\n<\/ol>\n\n\n\n<h3 class=\"wp-block-heading\">1.2. Name the Database and Create the User<\/h3>\n\n\n\n<p>In the wizard&#8217;s first step, enter a database name. cPanel prefixes it with your account username and an underscore \u2014 for example, <code>youruser_wp_site<\/code>. Keep it descriptive but short.<\/p>\n\n\n\n<p>On the next screen, create a database user. Choose a strong password \u2014 ideally 16+ characters mixing uppercase, lowercase, digits, and symbols. You can use the built-in password generator and copy it somewhere safe.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">1.3. Assign Privileges<\/h3>\n\n\n\n<p>The final wizard step asks you to set user privileges. Check the <strong>All Privileges<\/strong> box and click <strong>Next Step<\/strong>. WordPress needs full read and write access to the database to function correctly. Write down the three values you&#8217;ll need during installation:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Database name (e.g., <code>youruser_wp_site<\/code>)<\/li>\n<li>Database username (e.g., <code>youruser_wp_admin<\/code>)<\/li>\n<li>Database password (the strong password you created)<\/li>\n<\/ul>\n\n\n\n<p>Keep these handy \u2014 you&#8217;ll enter them during the WordPress setup screen.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Step 2: Download WordPress and Upload the Files<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">2.1. Get the Latest WordPress Package<\/h3>\n\n\n\n<p>Visit <a href=\"https:\/\/wordpress.org\/download\/\" target=\"_blank\" rel=\"noreferrer noopener\">wordpress.org\/download<\/a> and download the latest version as a <code>.zip<\/code> file. The file is typically around 20\u201325 MB. Do not unzip it yet \u2014 uploading the zip to your server and extracting it there is faster than uploading individual files.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">2.2. Upload via cPanel File Manager<\/h3>\n\n\n\n<ol class=\"wp-block-list\">\n<li>In cPanel, click <strong>File Manager<\/strong> under the <strong>Files<\/strong> section.<\/li>\n<li>Navigate to <code>public_html<\/code> (or the document root folder for your domain). If you&#8217;re installing on a subdomain, navigate to <code>public_html\/subdomain<\/code> or the subdomain&#8217;s dedicated folder.<\/li>\n<li>Click <strong>Upload<\/strong> in the toolbar and select the <code>wordpress.zip<\/code> file from your computer.<\/li>\n<li>Wait for the upload to complete (typically 5\u201315 seconds on a decent connection).<\/li>\n<li>Once uploaded, close the upload dialog and return to the File Manager.<\/li>\n<\/ol>\n\n\n\n<h3 class=\"wp-block-heading\">2.3. Extract the Archive<\/h3>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Right-click the <code>wordpress.zip<\/code> file in File Manager and select <strong>Extract<\/strong>.<\/li>\n<li>A dialog box confirms the extraction path \u2014 it should default to the current directory. Click <strong>Extract File(s)<\/strong>.<\/li>\n<li>After extraction completes, you&#8217;ll see a new folder called <code>wordpress<\/code> containing all the CMS files.<\/li>\n<\/ol>\n\n\n\n<h3 class=\"wp-block-heading\">2.4. Move Files to the Document Root<\/h3>\n\n\n\n<p>If you want WordPress to load directly at <code>yourdomain.com<\/code> rather than <code>yourdomain.com\/wordpress\/<\/code>, you need to move the extracted files:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>In File Manager, navigate into the <code>wordpress<\/code> folder.<\/li>\n<li>Select all files inside (not the folder itself \u2014 use Select All in the toolbar).<\/li>\n<li>Click <strong>Move<\/strong> and set the destination to <code>public_html\/<\/code> (or just <code>..\/<\/code> to go up one level).<\/li>\n<li>Click <strong>Move File(s)<\/strong>. All WordPress core files now live directly in your domain root.<\/li>\n<li>Optionally, delete the empty <code>wordpress<\/code> folder and the <code>wordpress.zip<\/code> archive to keep things tidy.<\/li>\n<\/ol>\n\n\n\n<h2 class=\"wp-block-heading\">Step 3: Run the WordPress Installation Script<\/h2>\n\n\n\n<p>With the files in place and the database ready, it&#8217;s time to run the installer.<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Open a browser and navigate to <code>https:\/\/yourdomain.com\/wp-admin\/install.php<\/code>.<\/li>\n<li>You&#8217;ll see the WordPress language selector. Choose your language and click <strong>Continue<\/strong>.<\/li>\n<li>WordPress checks that your server meets the minimum PHP and MySQL requirements. If everything is green, click <strong>Let&#8217;s go!<\/strong><\/li>\n<li>On the database configuration screen, enter the three values from Step 1:\n<ul class=\"wp-block-list\">\n<li><strong>Database Name:<\/strong> <code>youruser_wp_site<\/code><\/li>\n<li><strong>Username:<\/strong> <code>youruser_wp_admin<\/code><\/li>\n<li><strong>Password:<\/strong> the password you created<\/li>\n<li><strong>Database Host:<\/strong> almost always <code>localhost<\/code> for cPanel setups<\/li>\n<li><strong>Table Prefix:<\/strong> Change <code>wp_<\/code> to something unique like <code>wp5s_<\/code> for added security<\/li>\n<\/ul>\n<\/li>\n<li>Click <strong>Submit<\/strong>. If the credentials are correct, you&#8217;ll see a success message. Click <strong>Run the installation<\/strong>.<\/li>\n<li>The final screen asks for your site information:\n<ul class=\"wp-block-list\">\n<li><strong>Site Title:<\/strong> Your website&#8217;s name<\/li>\n<li><strong>Username:<\/strong> The admin username (avoid &#8220;admin&#8221; for security)<\/li>\n<li><strong>Password:<\/strong> Use the strong auto-generated password or create your own<\/li>\n<li><strong>Your Email:<\/strong> The admin email address for password resets and notifications<\/li>\n<li><strong>Search Engine Visibility:<\/strong> Leave unchecked unless you want to block search indexing while building the site<\/li>\n<\/ul>\n<\/li>\n<li>Click <strong>Install WordPress<\/strong>. Within seconds, you&#8217;ll see a success screen with a login button.<\/li>\n<\/ol>\n\n\n\n<h2 class=\"wp-block-heading\">Step 4: Post-Installation Security and Configuration Tips<\/h2>\n\n\n\n<p>Before announcing your site to the world, take a few minutes to lock things down:<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">4.1. Set Correct File Permissions<\/h3>\n\n\n\n<p>In cPanel File Manager, right-click each WordPress folder and select <strong>Change Permissions<\/strong>. Recommended defaults:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>All folders: <code>755<\/code> (drwxr-xr-x)<\/li>\n<li>All files: <code>644<\/code> (-rw-r&#8211;r&#8211;)<\/li>\n<li><code>wp-config.php<\/code>: <code>600<\/code> or <code>640<\/code> (restrictive, since it contains database credentials)<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">4.2. Enable AutoSSL in cPanel<\/h3>\n\n\n\n<p>Under the <strong>Security<\/strong> section in cPanel, click <strong>SSL\/TLS Status<\/strong> and then <strong>Run AutoSSL<\/strong>. This provisions a free Let&#8217;s Encrypt certificate for your domain so your site serves over HTTPS. A secure connection is essential for login forms, payment pages, and SEO rankings.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">4.3. Install an SSL Plugin and Enable Updates<\/h3>\n\n\n\n<p>Log into your WordPress admin dashboard and check that automatic updates are enabled under <strong>Dashboard \u2192 Updates<\/strong>. Install a security plugin like Wordfence or Sucuri for firewall and malware scanning \u2014 many shared cPanel hosts benefit from this extra layer of protection.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Step 5: Troubleshooting Common Manual Installation Issues<\/h2>\n\n\n\n<p>Even with careful steps, things can go wrong. Here are the most common issues and how to fix them:<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">&#8220;Error Establishing a Database Connection&#8221;<\/h3>\n\n\n\n<p>This usually means the database name, username, or password in <code>wp-config.php<\/code> is incorrect. Open File Manager, edit <code>wp-config.php<\/code>, and verify all three values match what you created in the MySQL Database Wizard. Also confirm the database user has been assigned to the database with all privileges.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">&#8220;Headers Already Sent&#8221; Warnings<\/h3>\n\n\n\n<p>This error points to whitespace or extra characters in <code>wp-config.php<\/code> \u2014 usually after the closing <code>?&gt;<\/code> PHP tag. Open the file and delete any blank lines or spaces at the very end. Better yet, simply remove the <code>?&gt;<\/code> at the end, as it&#8217;s optional in PHP files and leaving it out prevents this class of errors.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">404 Errors on Inner Pages (Permalink Issue)<\/h3>\n\n\n\n<p>After installation, your homepage might load fine but inner pages return 404s. Log into the WordPress admin, go to <strong>Settings \u2192 Permalinks<\/strong>, select any option (e.g., &#8220;Post name&#8221;), and click <strong>Save Changes<\/strong>. This rebuilds the <code>.htaccess<\/code> rewrite rules. If the file is unwritable, you&#8217;ll see a code snippet \u2014 copy that into a new <code>.htaccess<\/code> file in your <code>public_html<\/code> folder via File Manager.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Key Takeaways<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Manual WordPress installation in cPanel gives you complete control over database credentials, file locations, and pre-install configuration \u2014 useful for multisite networks and custom setups.<\/li>\n<li>Always create the MySQL database and user <em>before<\/em> uploading WordPress files, using cPanel&#8217;s MySQL Database Wizard for a guided experience.<\/li>\n<li>Upload the whole WordPress zip and extract it on the server via File Manager \u2014 it&#8217;s faster than transferring hundreds of individual files over FTP.<\/li>\n<li>Set strong, unique passwords for both the database user and the WordPress admin account to reduce the risk of automated attacks.<\/li>\n<li>After installation, configure AutoSSL, correct file permissions (755 for folders, 644 for files), and a security plugin before promoting the site.<\/li>\n<li>If you encounter a database connection error on first run, double-check the credentials in <code>wp-config.php<\/code> \u2014 a single typo is the most common cause.<\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>Learn how to install WordPress manually in cPanel with this step-by-step guide. Covers database setup, file uploads, wp-config, and post-installation security tips.<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"","ping_status":"","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[83],"tags":[275,274,277,276,278],"class_list":["post-104","post","type-post","status-publish","format-standard","hentry","category-wordpress-management","tag-cpanel-wordpress-setup","tag-manual-wordpress-installation","tag-mysql-database-cpanel","tag-wordpress-cpanel-guide","tag-wordpress-installation-steps"],"_links":{"self":[{"href":"https:\/\/cpanelreview.com\/index.php\/wp-json\/wp\/v2\/posts\/104","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/cpanelreview.com\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/cpanelreview.com\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/cpanelreview.com\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/cpanelreview.com\/index.php\/wp-json\/wp\/v2\/comments?post=104"}],"version-history":[{"count":0,"href":"https:\/\/cpanelreview.com\/index.php\/wp-json\/wp\/v2\/posts\/104\/revisions"}],"wp:attachment":[{"href":"https:\/\/cpanelreview.com\/index.php\/wp-json\/wp\/v2\/media?parent=104"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/cpanelreview.com\/index.php\/wp-json\/wp\/v2\/categories?post=104"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/cpanelreview.com\/index.php\/wp-json\/wp\/v2\/tags?post=104"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}