{"id":186540,"date":"2020-04-09T03:14:49","date_gmt":"2020-04-09T03:14:49","guid":{"rendered":"https:\/\/premium.wpmudev.org\/blog\/?p=186540"},"modified":"2022-03-15T22:35:17","modified_gmt":"2022-03-15T22:35:17","slug":"wordpress-local-development-introduction","status":"publish","type":"post","link":"https:\/\/wpmudev.com\/blog\/wordpress-local-development-introduction\/","title":{"rendered":"Building in Peace: An Introduction To WordPress Local Development"},"content":{"rendered":"<p>You\u2019ve purchased your domain and you\u2019ve secured your hosting. You\u2019re halfway through your new kick-ass homepage, but you can\u2019t shake the feeling that you\u2019re being watched. That\u2019s because your site is live, so who knows who might be looking over your shoulder\u2026<\/p>\n<p>At WPMU DEV, many of our members use local environments for a variety of tasks, including building a new site from scratch, major overhauls of existing sites, and developing plugins.<\/p>\n<p>But for those who are yet to venture into local development or are looking for a refresher, we bring you this guide.<\/p>\n<p>Here&#8217;s a look at what we\u2019ll be covering:<\/p>\n<ul>\n<li><a href=\"#what\">What is a Local Environment?<\/a><\/li>\n<li><a href=\"#how-it-works\">How Does a Local Environment Work?<\/a><\/li>\n<li>An Insight Into the Two Main Types of Local Environment &#8211; <a href=\"#server-stacks\">Server Stacks<\/a> and <a href=\"#virtual-machines\">Virtual Machines<\/a>.<\/li>\n<li><a href=\"#flywheel\">How to Set Up a Local Environment Using Local.<\/a><\/li>\n<li><a href=\"#migrate\">How to Migrate a Locally Developed Site to Live Hosting.<\/a><\/li>\n<li><a href=\"#simple\">A Super Simple Way to Migrate an Existing Site<\/a><\/li>\n<\/ul>\n<p>So let&#8217;s get to it and start at the beginning&#8230;<\/p>\n<h2 id=\"what\">What is a Local Environment?<\/h2>\n<p>Local environments come in a variety of shapes and sizes, however, they all share the same purpose &#8211; to allow you to develop WordPress sites or plugins in a safe and secure space.<\/p>\n<p>The average WordPress user starts their site-building process by purchasing a domain and then choosing a hosting service &#8211; which they then log into and begin to create their site.<\/p>\n<p>However, this means that whilst you\u2019re building your site, it\u2019s live on the net and Google is free to start its indexing procedures.<\/p>\n<p>The last thing you want is someone stumbling across your site when you\u2019re in the process of building it. Also, when still in construction, your site is especially vulnerable to cyber attacks.<\/p>\n<p>Developing in a local environment relieves you of these worries, as you get the same features and functionalities of WordPress &#8211; but it\u2019s all tightly secured within your very own computer.<\/p>\n<p>There are no servers or clouds involved, no chance of anyone who isn\u2019t on your pc gaining access, and no extra cost.<\/p>\n<p>You can develop your site for free and away from prying eyes &#8211; total bliss!<\/p>\n<figure id=\"attachment_186564\" class=\"wp-caption aligncenter\" data-caption=\"true\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-186564 size-full\" src=\"https:\/\/wpmudev.com\/blog\/wp-content\/uploads\/2020\/04\/Dev_Man_Running_With_Monitor.jpg\" alt=\"Cartoon of Dev man running with his PC.\" width=\"600\" height=\"300\" \/><figcaption class=\"wp-caption-text\">Dev Man isn&#8217;t aware that he can show his friends his locally hosted site without leaving the house &#8211; luckily this article will explain how!<\/figcaption><\/figure>\n<p>There are a few other ways to achieve privacy when building a site, such as <a href=\"https:\/\/wpmudev.com\/blog\/wordpress-coming-soon-page-plugins\/\" target=\"_blank\" rel=\"noopener\">under-construction themes and plugins<\/a> and <a href=\"https:\/\/wpmudev.com\/blog\/benefits-of-staging-environments-in-wordpress-development\/\" target=\"_blank\" rel=\"noopener\">staging environments<\/a> &#8211; but since they still involve your site being hosted somewhere on the net, there\u2019s no peace of mind quite like a local environment.<\/p>\n<h2 id=\"how-it-works\">How Does a Local Environment Work?<\/h2>\n<p>WordPress is made up of three core elements: PHP, SQL and JavaScript, and in-turn can be hosted locally on software that supports these elements.<\/p>\n<p>The first method is on a server stack.<\/p>\n<h3 id=\"server-stacks\">Using Server Stacks For Local Development<\/h3>\n<p>Local server stacks take the form of an Nginx or Apache server, along with a database (usually in the form of <a href=\"https:\/\/www.mysql.com\/\" rel=\"noopener\" target=\"_blank\">MySQL<\/a> or <a href=\"https:\/\/mariadb.org\/\" rel=\"noopener\" target=\"_blank\">MariaDB<\/a>) and a platform for managing everything, such as <a href=\"https:\/\/www.phpmyadmin.net\/\" rel=\"noopener\" target=\"_blank\">phpMyAdmin<\/a>.<\/p>\n<p>But, what <em>is<\/em> a server, I hear you ask!<\/p>\n<p>Well, it\u2019s essentially a place to store all the content that makes up a website (application data, text, images, etc), and once someone requests access by visiting the URL, the server delivers the goods.<\/p>\n<p>All sites need to be stored on a server, whether that be a local one such as included with the software stacks mentioned above, or secured through a hosting provider.<\/p>\n<p>If your website is live and you pay a hosting subscription, it\u2019s still hosted on a server, just on someone else\u2019s computer.<\/p>\n<figure id=\"attachment_186542\" class=\"wp-caption aligncenter\" data-caption=\"true\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-186542\" src=\"https:\/\/wpmudev.com\/blog\/wp-content\/uploads\/2020\/04\/relationship-between-server-and-pc.png\" alt=\"Showing the relationship between the server and web browser with the HTTP response and request passing betweenn\" width=\"600\" height=\"175\" \/><figcaption class=\"wp-caption-text\">The HTTP request and response passes the information between the server and browser.<\/figcaption><\/figure>\n<p>It may sound complicated at this stage, but luckily you can download everything you need in a neat little package.<\/p>\n<p>Two of the most popular server stacks are <a href=\"https:\/\/www.mamp.info\/en\/windows\/\" rel=\"noopener\" target=\"_blank\">MAMP<\/a> and <a href=\"https:\/\/www.apachefriends.org\/index.html\" rel=\"noopener\" target=\"_blank\">XAMPP<\/a>.<\/p>\n<p>MAMP is technically for use on Mac (however you can run it on Windows &#8211; I\u2019ve done this myself in the past) and XAMPP can be used across Windows, Mac, and Linux.<\/p>\n<p>Whilst actually using WordPress when it\u2019s hosted on an apache server stack is quite a simple and pleasant experience, the <a href=\"https:\/\/wpmudev.com\/blog\/setting-up-xampp\/\" target=\"_blank\" rel=\"noopener\">installation and setup process for XAMPP\/MAMP<\/a> isn\u2019t as straight forward.<\/p>\n<p>You need to install the download from either the XAMPP or MAMP website, as well as manually downloading and installing WordPress (which does involve some manual moving around of files on your hard drive) configuring your database, and then linking it to your WordPress site.<\/p>\n<p>Once you have the server up and running, you create a WordPress account and then log in to get to the dashboard.<\/p>\n<p>You do all this through your browser so you get the same look and feel as though you were on a live site.<\/p>\n<p>But don\u2019t worry &#8211; if all this sounds a bit daunting, you\u2019ll be pleased to know that there\u2019s an easier option.<\/p>\n<h3 id=\"virtual-machines\">Using Virtual Machines For Local Development<\/h3>\n<p>The other branch of local development environment (and most would argue, the easiest) comes in the form of virtual machines.<\/p>\n<p>If you aren\u2019t familiar with virtual machines, a virtual machine is a partition created on your PC that basically acts as a separate computer.<\/p>\n<p>It comes with its own operating system and is usually accessed in a window like a normal computer program, but is detached from the rest of your software.<\/p>\n<p>This makes it a handy place to carry out any risky experimentation, as anything you do is isolated from the rest of the computer; meaning you can\u2019t do any damage to your main operating system.<\/p>\n<p>The virtual machine is just a place to host your website in our case. You won\u2019t need to have any interaction with the separate operating system as you manage your sites through the dashboard of your local environment.<\/p>\n<p>A popular local environment choice that utilizes virtual machines is <a href=\"https:\/\/localwp.com\/\" rel=\"noopener\" target=\"_blank\">Local by Flywheel.<\/a><\/p>\n<p>The reason that it\u2019s such a great option is that it does all the legwork for you behind the scenes.<\/p>\n<p>You install it just as you would any other program, and you\u2019re greeted with a simple dashboard that allows you to manage your sites.<\/p>\n<p>You can add multiple sites in just a few clicks, whereas with MAMP\/XAMPP you have to create a separate WordPress folder and database for each site and manage them separately.<\/p>\n<p>It\u2019s clear from what we\u2019ve learned so far that an environment like Local is going to be an easier option for those new to local development.<\/p>\n<p>Server stacks might be the route of choice for advanced developers who want more functionality, however, for the purpose of building a site and a safe, offline space, Local is a fantastic choice.<\/p>\n<p>Okay, enough tooting Local\u2019s horn&#8230; let&#8217;s really find out how easy it is to use.<\/p>\n<p>Here\u2019s a simple guide:<\/p>\n<h2 id=\"flywheel\">Installing and Using Local<\/h2>\n<p>First of all, you\u2019ll need to go to <a href=\"https:\/\/localwp.com\/\" rel=\"noopener\" target=\"_blank\">Local\u2019s website<\/a> and download the software.<\/p>\n<figure id=\"attachment_186543\" class=\"wp-caption aligncenter\" data-caption=\"true\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-186543\" src=\"https:\/\/wpmudev.com\/blog\/wp-content\/uploads\/2020\/04\/Local-download.png\" alt=\"Screenshot of the Local website\" width=\"600\" height=\"494\" \/><figcaption class=\"wp-caption-text\">Choose your platform and follow the simple instructions.<\/figcaption><\/figure>\n<p>It\u2019s super easy to install (it\u2019s literally just like any other program you download from the internet), so I\u2019ll refrain from teaching you how to suck eggs.<\/p>\n<p>Once you\u2019ve installed and opened the program, you\u2019ll be met with this screen:<\/p>\n<figure id=\"attachment_186544\" class=\"wp-caption aligncenter\" data-caption=\"true\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-186544\" src=\"https:\/\/wpmudev.com\/blog\/wp-content\/uploads\/2020\/04\/Local-after-download.png\" alt=\"Showing the first screen of Local after installation\" width=\"600\" height=\"426\" \/><figcaption class=\"wp-caption-text\">Now we\u2019re ready to create our first site.<\/figcaption><\/figure>\n<p>You then need to give your site a name.<\/p>\n<p>One of the best things about Local is that you can create as many sites as you need, and they\u2019re all super easy to access and switch between &#8211; so try and keep the names practical.<\/p>\n<figure id=\"attachment_186545\" class=\"wp-caption aligncenter\" data-caption=\"true\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-186545\" src=\"https:\/\/wpmudev.com\/blog\/wp-content\/uploads\/2020\/04\/Local-name-site.png\" alt=\"Screenshot of the screen where you name your site.\" width=\"624\" height=\"416\" \/><figcaption class=\"wp-caption-text\">It has a very simple interface and is so quick to get up and running.<\/figcaption><\/figure>\n<p>The domain is automatically populated when you name your site, and there\u2019s no need to change the site path at this stage.<\/p>\n<p>When it comes to choosing your environment, you can select preferred unless you have a specific reason for wanting to use a different type of database or version of PHP.<\/p>\n<figure id=\"attachment_186546\" class=\"wp-caption aligncenter\" data-caption=\"true\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-186546\" src=\"https:\/\/wpmudev.com\/blog\/wp-content\/uploads\/2020\/04\/Local-choose-environment.png\" alt=\"Showing where you can select your preferred version of PHP and database.\" width=\"600\" height=\"396\" \/><figcaption class=\"wp-caption-text\">If you just want to get set up and start building, you can select preferred and move to the next screen.<\/figcaption><\/figure>\n<p>You then need to enter a username and password (you can use the same one across all of your test sites) and enter an email address.<\/p>\n<figure id=\"attachment_186547\" class=\"wp-caption aligncenter\" data-caption=\"true\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-186547\" src=\"https:\/\/wpmudev.com\/blog\/wp-content\/uploads\/2020\/04\/Local-setup-wordpress.png\" alt=\"Showing the setup screen where you choose a username, password and enter your email.\" width=\"600\" height=\"329\" \/><figcaption class=\"wp-caption-text\">It\u2019s important to use a valid email address in case you ever need to reset your password.<\/figcaption><\/figure>\n<p>One last click of <strong>\u2018continue\u2019<\/strong> and you\u2019re good to go!<\/p>\n<p>It takes a few minutes to set everything up and install WordPress, but as you can see, as far as local hosting environments go, this is one of the easiest to use.<\/p>\n<figure id=\"attachment_186548\" class=\"wp-caption aligncenter\" data-caption=\"true\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-186548\" src=\"https:\/\/wpmudev.com\/blog\/wp-content\/uploads\/2020\/04\/Local-site-details.png\" alt=\"Screenshot showing the site details including name, path, domain, database version and WordPress version.\" width=\"600\" height=\"581\" \/><figcaption class=\"wp-caption-text\">You can view all your site\u2019s details using the tabs here.<\/figcaption><\/figure>\n<p>The two main buttons you\u2019ll need are on the top left of your screen: <strong>\u2018Admin\u2019<\/strong> and <strong>\u2018View Site\u2019<\/strong>.<\/p>\n<p>Click on Admin to log into WordPress.<\/p>\n<figure id=\"attachment_186549\" class=\"wp-caption aligncenter\" data-caption=\"true\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-186549\" src=\"https:\/\/wpmudev.com\/blog\/wp-content\/uploads\/2020\/04\/Local-wordpress-login.png\" alt=\"Screenshot of the WordPress login page.\" width=\"600\" height=\"473\" \/><figcaption class=\"wp-caption-text\">You need to enter the login details you created when you set up your site in the Local dashboard.<\/figcaption><\/figure>\n<p>Once you\u2019re logged in, you\u2019re free to use WordPress as you would with any other hosting method.<\/p>\n<h3>But That\u2019s Not All, Folks<\/h3>\n<p>If all you want is a nice, quiet space to develop your website, the guide above should do the trick.<\/p>\n<p>Since your entire WordPress site is installed on your own computer, it means you can even build your site without internet, which is great for those long train journeys.<\/p>\n<p>However, Local does offer a host of other features.<\/p>\n<p>Some of these are best suited to advanced users, and there are a few that may come in useful for those new to local environments as well.<\/p>\n<p>Below I\u2019ll give you a brief overview of some of my favorite aspects of Local.<\/p>\n<h3>Let Someone Take A Little Peek&#8230;<\/h3>\n<p>One of the main benefits of developing locally is that no one will be able to see your half-finished work.<\/p>\n<p>Whilst this is usually advantageous if you want to create a new site, or make large-scale changes to an existing one in peace, it does mean that if you encounter problems, or just want a second pair of eyes, you can\u2019t just send your site URL to a friend or colleague and ask for their advice.<\/p>\n<p>Local has a useful tool that allows you to create a temporary live link to your site, and it\u2019s as simple as one click of the mouse.<\/p>\n<p>This is a fab little add-on from <a href=\"https:\/\/ngrok.com\/\" rel=\"noopener\" target=\"_blank\">ngrok<\/a> and is completely free to use.<\/p>\n<figure id=\"attachment_186550\" class=\"wp-caption aligncenter\" data-caption=\"true\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-186550\" src=\"https:\/\/wpmudev.com\/blog\/wp-content\/uploads\/2020\/04\/Local-live-link.png\" alt=\"Showing the live link option before the link is produced.\" width=\"600\" height=\"53\" \/><figcaption class=\"wp-caption-text\">Just click enable and a temporary link will be created.<\/figcaption><\/figure>\n<figure id=\"attachment_186551\" class=\"wp-caption aligncenter\" data-caption=\"true\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-186551\" src=\"https:\/\/wpmudev.com\/blog\/wp-content\/uploads\/2020\/04\/Local-live-link-enable.png\" alt=\"Showing the live link option with the link you can now copy after enabling it.\" width=\"600\" height=\"50\" \/><figcaption class=\"wp-caption-text\">Copy the link and send away!<\/figcaption><\/figure>\n<p>You can send this link to anyone you\u2019d like to view your site in its current state.<\/p>\n<p>The link will stop working when you exit Local &#8211; or you can manually disable it using the button next to it.<\/p>\n<p>If you want them to access the site again, you\u2019ll need to re-enable Live Link, which will mean that a new link is created.<\/p>\n<p>This is handy if you need someone\u2019s opinion but don\u2019t want to risk them popping back in future by revisiting the link. You\u2019re building your site locally for a reason &#8211; it\u2019s fine to want a little privacy!<\/p>\n<h3>If It\u2019s Not Broken, Don\u2019t Fix It<\/h3>\n<p>If you tend to use the same set of plugins when you build your sites (<a href=\"https:\/\/wpmudev.com\/free-plugins\/\" target=\"_blank\" rel=\"noopener\">our free plugins are a great starting point<\/a>) or have the same theme or menu and page setup, you can save a site as a \u2018blueprint\u2019 and use it as a base for future sites.<\/p>\n<p>If the same site setup works for you then that\u2019s absolutely fine, and luckily Local makes it easy to reuse the same template.<\/p>\n<p>All you have to do is right-click the site you want to use and click <strong>\u2018Save as Blueprint.\u2019<\/strong><\/p>\n<figure id=\"attachment_186552\" class=\"wp-caption aligncenter\" data-caption=\"true\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-186552\" src=\"https:\/\/wpmudev.com\/blog\/wp-content\/uploads\/2020\/04\/Local-blueprint-save.png\" alt=\"Showing the option to save as a blueprint.\" width=\"600\" height=\"499\" \/><figcaption class=\"wp-caption-text\">You could even save multiple blueprints &#8211; one for each style or type of site you create.<\/figcaption><\/figure>\n<p>Now when you create a new site, you\u2019ll have the option to start from your blueprint rather than from scratch. Handy, right?!<\/p>\n<h3>Your Files, Your Way<\/h3>\n<p>Editing your WordPress site\u2019s files isn\u2019t always the easiest thing to do (especially for beginners).<\/p>\n<p>If your site is live and hosted externally, it will involve either using a plugin such as File Manager, or an SFTP client with an SSH connection.<\/p>\n<p>These platforms allow you to access your WordPress files, which are stored on the host\u2019s server, so that you can make changes to them.<\/p>\n<p>Different hosting providers allow different levels of access to your files. However, when you\u2019re developing locally, you have full access and full control.<\/p>\n<p>With Local, it\u2019s super easy to access these files. They\u2019re stored on your computer, so you don\u2019t need to initiate any kind of connection to gain access.<\/p>\n<p>If you\u2019re a skilled developer, you can still use an SSH connection and WP-CLI commands to edit your files and make changes to your site, however, when you\u2019re working on a site locally, you can click one little button to get access to your files directly.<\/p>\n<figure id=\"attachment_186553\" class=\"wp-caption aligncenter\" data-caption=\"true\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-186553\" src=\"https:\/\/wpmudev.com\/blog\/wp-content\/uploads\/2020\/04\/Local-access-files.png\" alt=\"Showing where you can access your files from.\" width=\"600\" height=\"92\" \/><figcaption class=\"wp-caption-text\">Just click the little arrow, and you\u2019ll be able to access your WordPress files.<\/figcaption><\/figure>\n<figure id=\"attachment_186554\" class=\"wp-caption aligncenter\" data-caption=\"true\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-186554\" src=\"https:\/\/wpmudev.com\/blog\/wp-content\/uploads\/2020\/04\/Local-files-in-explorer.png\" alt=\"Showing the WordPress site's file in your explorer menu.\" width=\"600\" height=\"139\" \/><figcaption class=\"wp-caption-text\">I\u2019m using Windows, so my WordPress files pop straight up in an Explorer window.<\/figcaption><\/figure>\n<p>Just click the little arrow, and you\u2019ll be able to access your WordPress files.<\/p>\n<p>This is a really useful way to get to know the WordPress folder layout and become familiar with some of the key elements of a WordPress site.<\/p>\n<p>From here, you can make changes to your style sheet, create a child theme, or even venture into some of the more complex files.<\/p>\n<p>The beauty of it is that if you change something that creates an issue, you\u2019re free to scrap that site and start a new one.<\/p>\n<p>It allows you to experiment without needing to worry about doing irreversible damage to a live site.<\/p>\n<h3>Learn Your Acronyms<\/h3>\n<p>A local environment can also be a great place to get familiar with using WP-CLI through an SSH connection.<\/p>\n<p>WP-CLI stands for WordPress Command Line Interface and is a way of completing tasks by typing commands &#8211; similar to the way you can use your in-built command prompt.<\/p>\n<p>SSH (Secure SHell) connections are usually initiated between multiple computers &#8211; they create a secure connection on an unsecured network.<\/p>\n<p>You may only be communicating with the virtual computer inside your own pc, however, you still need to issue commands through this connection.<\/p>\n<p>Our article showing <a href=\"https:\/\/wpmudev.com\/blog\/wordpress-development-wp-cli\/\" target=\"_blank\" rel=\"noopener\">how to speed up your WordPress development using WP-CLI<\/a> is a great starting point if you\u2019re new to this.<\/p>\n<p>You can easily access the interface by right-clicking on your site and selecting <strong>\u2018Open Site Shell\u2019<\/strong><\/p>\n<figure id=\"attachment_186555\" class=\"wp-caption aligncenter\" data-caption=\"true\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-186555\" src=\"https:\/\/wpmudev.com\/blog\/wp-content\/uploads\/2020\/04\/Local-open-ssh.png\" alt=\"Showing how to access 'open site shell' to connect to initiate the SSH connection.\" width=\"600\" height=\"415\" \/><figcaption class=\"wp-caption-text\">Initiating the SSH connection is simple &#8211; your entire site is on your own computer after all.<\/figcaption><\/figure>\n<p>You can then experiment with different commands.<\/p>\n<p>I typed in \u2018wp user\u2019 which shows a list of commands centered around changing user permissions and settings.<\/p>\n<figure id=\"attachment_186556\" class=\"wp-caption aligncenter\" data-caption=\"true\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-186556\" src=\"https:\/\/wpmudev.com\/blog\/wp-content\/uploads\/2020\/04\/Local-wp-cli.png\" alt=\"A screenshot of WP-CLI\" width=\"600\" height=\"369\" \/><figcaption class=\"wp-caption-text\">You can make many types of admin-y changes through the interface.<\/figcaption><\/figure>\n<p>You can find <a href=\"https:\/\/developer.wordpress.org\/cli\/commands\/\" rel=\"noopener\" target=\"_blank\">a list of WP-CLI commands<\/a> on the WordPress website.<\/p>\n<p>These commands are often utilized by developers to make speedy changes to a WordPress site &#8211; a local environment is a great place to get to grips with them.<\/p>\n<h2 id=\"migrate\">How To Migrate From a Local WordPress Installation To a Live Server<\/h2>\n<p>Now your site&#8217;s not going to be much good to anyone sitting on your hard drive (unless you&#8217;d prefer to keep it that way!). So the next step is moving from a local installation to a live server.<\/p>\n<p>There are a couple of different ways to do this:<\/p>\n<ol>\n<li><strong>The manual method<\/strong> &#8211; Check out this in-depth breakdown of <a href=\"https:\/\/torquemag.io\/2016\/02\/move-wordpress-from-localhost-to-live-server\/\" rel=\"noopener\" target=\"_blank\">moving WordPress from Local to a live server<\/a> by Torque.<\/li>\n<li><strong>The plugin method<\/strong> &#8211; We also have our own guide on <a href=\"https:\/\/wpmudev.com\/blog\/guide-to-migrating-localhost-wordpress-to-live-site\/\" target=\"_blank\" rel=\"noopener\">migrating from local to a live site using the Duplicator plugin\u00a0<\/a> &#8211; or if you&#8217;re one of our awesome members, you can use our <a href=\"https:\/\/wpmudev.com\/project\/shipper-pro\/\" target=\"_blank\" rel=\"noopener\">Shipper Pro<\/a> plugin instead ;)<\/li>\n<\/ol>\n<p>Of course, you&#8217;ll still need somewhere to host your live site. It&#8217;s advisable to <a href=\"https:\/\/wpmudev.com\/blog\/shared-vps-dedicated-or-cloud-wordpress-hosting\/\" target=\"_blank\" rel=\"noopener\">research the different types of hosting<\/a> and perhaps even <a href=\"https:\/\/wpmudev.com\/wpmu-dev-hosting-vs\/\" target=\"_blank\" rel=\"noopener\">compare a few different hosting plans<\/a> before your site is ready to launch.<\/p>\n<p>You\u2019ve put in all that work after all so you need to choose your hosting provider carefully!<\/p>\n<p>I know of <a href=\"https:\/\/wpmudev.com\/hosting\/\" target=\"_blank\" rel=\"noopener\">a company that does some really great hosting<\/a>, you should check them out.<\/p>\n<p>OK, it\u2019s us, WPMU DEV, but I promise you our hosting is top notch. If you do allow us the privilege of hosting your website for you (we\u2019ll take good care of it, I swear).<\/p>\n<h2 id=\"simple\">We&#8217;ve Also Made it Super Simple To Migrate An Existing Site!<\/h2>\n<p>You can also easily migrate your existing site using our WordPress site management tool &#8211; <a href=\"https:\/\/wpmudev.com\/blog\/manage-all-your-wordpress-sites-with-the-hub\/\" target=\"_blank\" rel=\"noopener\">The Hub<\/a><em>.<\/em><\/p>\n<p>All you&#8217;ll need is the SFTP username and password of your existing site. You can typically locate these credentials <a href=\"https:\/\/blogvault.net\/working-with-ftp\/\" rel=\"noopener\" target=\"_blank\">via your host&#8217;s control panel.<\/a><\/p>\n<p>Some hosts will automatically create an SFTP user for you, while others (like <a href=\"https:\/\/wpmudev.com\/hosting\/\" target=\"_blank\" rel=\"noopener\">WPMU DEV hosting<\/a>), will allow you to create one yourself.<\/p>\n<p>For example, here&#8217;s how WPMU DEV users can <a href=\"https:\/\/wpmudev.com\/blog\/ftp-wordpress\/\" target=\"_blank\" rel=\"noopener\">create their own SFTP credentials.<\/a><\/p>\n<p>Once you&#8217;ve located your credentials, your site can then be migrated and launched in a couple of steps.<\/p>\n<figure id=\"attachment_186557\" class=\"wp-caption aligncenter\" data-caption=\"true\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-186557\" src=\"https:\/\/wpmudev.com\/blog\/wp-content\/uploads\/2020\/04\/Local-WPMU-DEV-migration.png\" alt=\"Showing the WPMU DEV website migration options.\" width=\"600\" height=\"644\" \/><figcaption class=\"wp-caption-text\">Migration in a few simple clicks &#8211; heaven!<\/figcaption><\/figure>\n<p>Let\u2019s not pretend that migration is always a walk in the park though. Many migrations go smoothly, but some come with a whole host (pardon the pun) of problems.<\/p>\n<p>If you do run into issues when migrating to our servers, you have the peace of mind of having a bunch of WordPress experts at your beck and call. They\u2019re <a href=\"https:\/\/wpmudev.com\/get-support\/\" target=\"_blank\" rel=\"noopener\">on hand 24\/7<\/a>, ready to solve any problems you encounter.<\/p>\n<p>If you choose to go with a different hosting provider, we\u2019d recommend migrating using our <a href=\"https:\/\/wpmudev.com\/project\/shipper-pro\/\" target=\"_blank\" rel=\"noopener\">Shipper plugin<\/a>.<\/p>\n<a class=\"general_big_button\" href=\"https:\/\/wpmudev.com\/blog\/wordpress-host-test-results\/\"><span class=\"text\">Oct 2020: We tested all the best WordPress hosts! Find out how we compare.<\/span><span class=\"button-a-b\">View Results<\/span><\/a>\n<h2>So What\u2019s Next?<\/h2>\n<p>Your site\u2019s all grown up now &#8211; you\u2019ve helped it develop from one simple \u2018Hello World\u2019 to (hopefully) an attractive and functioning site.<\/p>\n<p>You can now use WordPress \u2018as normal\u2019 through your hosting service and update your site as and when needed.<\/p>\n<p>The local environment you used can always be called upon if you want to test out any major changes or wanted a safe space to play whilst you expand your WordPress knowledge.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>You\u2019ve purchased your domain and you\u2019ve secured your hosting. You\u2019re halfway through your new kick-ass homepage, but you can\u2019t shake the feeling that you\u2019re being watched. That\u2019s because your site is live, so who knows who might be looking over your shoulder\u2026 At WPMU DEV, many of our members use local environments for a variety [&hellip;]<\/p>\n","protected":false},"author":801248,"featured_media":186541,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"blog_reading_time":"","wds_primary_category":0,"wds_primary_tutorials_categories":0,"footnotes":""},"categories":[557,263],"tags":[],"tutorials_categories":[],"class_list":["post-186540","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-development","category-tutorials"],"_links":{"self":[{"href":"https:\/\/wpmudev.com\/blog\/wp-json\/wp\/v2\/posts\/186540","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wpmudev.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/wpmudev.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/wpmudev.com\/blog\/wp-json\/wp\/v2\/users\/801248"}],"replies":[{"embeddable":true,"href":"https:\/\/wpmudev.com\/blog\/wp-json\/wp\/v2\/comments?post=186540"}],"version-history":[{"count":43,"href":"https:\/\/wpmudev.com\/blog\/wp-json\/wp\/v2\/posts\/186540\/revisions"}],"predecessor-version":[{"id":207469,"href":"https:\/\/wpmudev.com\/blog\/wp-json\/wp\/v2\/posts\/186540\/revisions\/207469"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/wpmudev.com\/blog\/wp-json\/wp\/v2\/media\/186541"}],"wp:attachment":[{"href":"https:\/\/wpmudev.com\/blog\/wp-json\/wp\/v2\/media?parent=186540"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wpmudev.com\/blog\/wp-json\/wp\/v2\/categories?post=186540"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wpmudev.com\/blog\/wp-json\/wp\/v2\/tags?post=186540"},{"taxonomy":"tutorials_categories","embeddable":true,"href":"https:\/\/wpmudev.com\/blog\/wp-json\/wp\/v2\/tutorials_categories?post=186540"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}