{"id":4236,"date":"2020-01-28T11:12:45","date_gmt":"2020-01-28T17:12:45","guid":{"rendered":"https:\/\/wpengine.com\/blog\/wordpress-dev-environment\/"},"modified":"2020-01-28T11:12:45","modified_gmt":"2020-01-28T17:12:45","slug":"wordpress-dev-environment","status":"publish","type":"post","link":"https:\/\/wpengine.com\/blog\/wordpress-dev-environment\/","title":{"rendered":"Setting Up a WordPress Development Environment"},"content":{"rendered":"<p>Beginning development on a new website requires a lot of careful planning. For example, you\u2019ll want to decide how to approach the \u2018under construction\u2019 stage of the project. You\u2019ll likely need to shield potential visitors from seeing your website when it\u2019s still in progress.&nbsp;<\/p>\n\n\n\n<p>This is where development environments can come in handy. This kind of environment gives you a place to do all the design and programming work on your new site, without anyone accidentally seeing it. Then, you can push it live when it\u2019s fully ready.<\/p>\n\n\n\n<p>In this article, we\u2019ll take a look at two different kinds of development environments. We\u2019ll also show you how to get started with both options. If you\u2019re ready, let\u2019s dive right in!&nbsp;<\/p>\n\n\n\n\n\n<h2 id=\"toc-what-is-a-wordpress-development-environment\" class=\"wp-block-heading\">What Is a WordPress Development Environment?<\/h2>\n\n\n\n<p>A&nbsp;WordPress development environment&nbsp;is essentially a private, contained workspace set up specifically for building, testing, and modifying WordPress websites without affecting a live, public-facing site. Think of it as a sandbox or workshop where developers can safely experiment with code, themes, plugins (making it a perfect&nbsp;WordPress plugin development environment), and updates. There are primarily two types: a&nbsp;<em>local environment<\/em>, which runs entirely on your own computer (offline access is a key benefit), and a&nbsp;<em>remote or&nbsp;online WordPress development environment<\/em>, hosted on a server but kept private. Both differ from a&nbsp;<em>staging environment<\/em>&nbsp;(like WP Engine\u2019s staging sites), which is typically a clone of the live site used for final testing before deployment. Using a dedicated&nbsp;WordPress environment&nbsp;offers significant advantages, including privacy during development, often faster performance since it\u2019s not serving public traffic, the ability to break things without consequence to the live site, and better version control opportunities, especially when coordinating the&nbsp;WordPress development and production environment&nbsp;workflow. WP Engine integrates smoothly with local tools like Local via WP Engine Connect and provides robust staging and production environments as part of its managed hosting platform, facilitating a complete&nbsp;WordPress development setup.<\/p>\n\n\n\n<h2 id=\"toc-local-versus-remote-development-environments\" class=\"wp-block-heading\">Local Versus Remote Development Environments<\/h2>\n\n\n\n<p>There are two main kinds of development environments that you might want to explore when creating a WordPress website. Keep in mind that whether you choose to use a local or remote environment for development, however, both will require all the software WordPress needs to function properly. This includes database applications and code libraries, for example.&nbsp;<\/p>\n\n\n\n<p><a data-analytics-action-type=\"link\" data-analytics-link-location=\"Post Content\" data-analytics-link-type=\"internal\" href=\"https:\/\/wpengine.com\/blog\/local-development-in-wordpress\/\">Developing locally<\/a> means that all of your WordPress plugin and theme files will be stored on your own machine, along with the WordPress core files. You\u2019ll be able to view your development work in a browser, just as if you were accessing a website on the internet. However, the files will be called in from your computer, instead of your site\u2019s hosting server.&nbsp;<\/p>\n\n\n\n<p>A remote development environment is essentially the same thing, but all of those important website files will be stored and retrieved from a remote location. This means you\u2019ll need to set up or purchase storage space. In contrast to regular website hosting, however, this remote file location will only be accessible to you or your team.&nbsp;<\/p>\n\n\n\n<p>One of the primary benefits of using local development for WordPress is that you don\u2019t need to be connected to the internet in order to work on your website. While remote development does require a connection, however, it\u2019s the better choice if you want the option to access your work from any computer.&nbsp;<\/p>\n\n\n\n<h2 id=\"toc-advantages-of-a-remote-development-environment\" class=\"wp-block-heading\">Advantages of a Remote Development Environment<\/h2>\n\n\n\n<p>As we mentioned, a remote development environment enables you to access your projects from anywhere. You don\u2019t even have to use a specific computer to do your work \u2013 all you need is a connection to the internet and your login information.<\/p>\n\n\n\n<p>Additionally, you may be able to implement version control features, depending on which remote environment application you decide to use. This means you\u2019re less likely to run into issues when developing with a team.&nbsp;<\/p>\n\n\n\n<h2 id=\"toc-how-to-set-up-a-remote-development-environment\" class=\"wp-block-heading\">How to Set Up a Remote Development Environment<\/h2>\n\n\n\n<p>Setting up a remote development environment can be a little more involved than creating a local environment. With that being said, it\u2019s not out of reach by any means. There are several options when it comes to remote environments, and many come with all the tools you\u2019ll need right out of the box.&nbsp;<\/p>\n\n\n\n<h3 id=\"toc-step-1-choose-and-configure-a-remote-development-application\" class=\"wp-block-heading\">Step 1: Choose and Configure a Remote Development Application<\/h3>\n\n\n\n<p>There are a number of remote development tools you can use. What you\u2019re looking for is a virtual storage space where you can store all of your website\u2019s files and applications, as well as the software needed to make your website run. This is where you can work through each of your development stages, without pushing the site to a live, production status until you\u2019re ready.<\/p>\n\n\n\n<p>To do this, you can use a product like <a data-analytics-action-type=\"link\" data-analytics-link-location=\"Post Content\" data-analytics-link-type=\"outbound\" href=\"https:\/\/www.digitalocean.com\/\">DigitalOcean<\/a> or <a data-analytics-action-type=\"link\" data-analytics-link-location=\"Post Content\" data-analytics-link-type=\"outbound\" href=\"https:\/\/code.visualstudio.com\/docs\/remote\/remote-overview\">Visual Studio<\/a>.<\/p>\n\n\n\n<p>These differ in what they offer, but ultimately accomplish the same task. For example, with Visual Studio Code you\u2019re getting a sophisticated code editor that becomes a development environment through your choice of <a data-analytics-action-type=\"link\" data-analytics-link-location=\"Post Content\" data-analytics-link-type=\"outbound\" href=\"https:\/\/code.visualstudio.com\/docs\/remote\/remote-tutorials\">remote extensions<\/a>.&nbsp;<\/p>\n\n\n\n<p>You can also use <a data-analytics-action-type=\"link\" data-analytics-link-location=\"Post Content\" data-analytics-link-type=\"outbound\" href=\"https:\/\/aws.amazon.com\/ec2\/\">Amazon Elastic Compute Cloud (Amazon EC2)<\/a> for remote development.<\/p>\n\n\n\n<p>Alternatively, you can look at our own <a data-analytics-action-type=\"link\" data-analytics-link-location=\"Post Content\" data-analytics-link-type=\"internal\" href=\"https:\/\/wpengine.com\/support\/about-dedicated-development-environments\/\">dedicated development environments<\/a>. Once you\u2019ve selected your virtual environment or cloud-based solution, you\u2019ll need to make sure it\u2019s configured for supporting WordPress development.&nbsp;<\/p>\n\n\n\n<h3 id=\"toc-step-2-install-any-necessary-tools-and-plugins\" class=\"wp-block-heading\">Step 2: Install Any Necessary Tools and Plugins<\/h3>\n\n\n\n<p>Regardless of the remote development environment you choose, there is a specific stack of applications you\u2019ll need in order to set up WordPress. These include:&nbsp;<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a data-analytics-action-type=\"link\" data-analytics-link-location=\"Post Content\" data-analytics-link-type=\"outbound\" href=\"https:\/\/www.linux.org\/\"><strong>Linux<\/strong><\/a>. This the Operating System (OS) that is ideally needed to run WordPress. We\u2019ll get into the specifics later when we talk about local development environments, but suffice it to say that if the following three items are in place, they can work with other OSs like Mac and Windows just as well.&nbsp;<\/li>\n\n\n\n<li><a data-analytics-action-type=\"link\" data-analytics-link-location=\"Post Content\" data-analytics-link-type=\"outbound\" href=\"https:\/\/www.apache.org\/\"><strong>Apache<\/strong><\/a><strong>. <\/strong>With a live website, the web server layer is where browser requests are fulfilled and returned to your website\u2019s users. In a development environment, this is also true. The only difference is that your server is not pointing to a live domain.&nbsp;<\/li>\n\n\n\n<li><a data-analytics-action-type=\"link\" data-analytics-link-location=\"Post Content\" data-analytics-link-type=\"outbound\" href=\"https:\/\/www.mysql.com\/\"><strong>MySQL<\/strong><\/a>. MySQL is the most popular and free database solution. This is essential to your WordPress development environment, since it\u2019s where all the data your website needs is stored.&nbsp;<\/li>\n\n\n\n<li><a data-analytics-action-type=\"link\" data-analytics-link-location=\"Post Content\" data-analytics-link-type=\"outbound\" href=\"https:\/\/www.php.net\/\"><strong>PHP<\/strong><\/a>. All of the other elements in the stack need a \u2018voice\u2019, and that\u2019s where PHP comes in. Hypertext Preprocessor (PHP) is a language that is needed for WordPress to function.&nbsp;<\/li>\n<\/ul>\n\n\n\n<p>These applications are referred to as the \u2018<a data-analytics-action-type=\"link\" data-analytics-link-location=\"Post Content\" data-analytics-link-type=\"outbound\" href=\"https:\/\/www.liquidweb.com\/kb\/what-is-a-lamp-stack\/\">LAMP stack<\/a>\u2019, and they can be added to remote development environments in a number of ways. For example, if you\u2019re using DigitalOcean, you\u2019ll work with <a data-analytics-action-type=\"link\" data-analytics-link-location=\"Post Content\" data-analytics-link-type=\"outbound\" href=\"https:\/\/www.digitalocean.com\/products\/droplets\/\">Droplets<\/a> to create the LAMP stack for WordPress.<\/p>\n\n\n\n<p>If you\u2019re using Amazon EC2, the setup for WordPress development is a bit more manual, but can still be done in <a data-analytics-action-type=\"link\" data-analytics-link-location=\"Post Content\" data-analytics-link-type=\"outbound\" href=\"https:\/\/crunchify.com\/setup-wordpress-amazon-aws-ec2\/\">around five minutes<\/a>.<\/p>\n\n\n\n<p>Regardless of the environment you choose, you\u2019ll need the LAMP stack in order to get your WordPress development started. Fortunately, many remote development options come with LAMP as an easy installation option, saving you a lot of time and trouble.<\/p>\n\n\n\n<h3 id=\"toc-step-3-access-your-environment\" class=\"wp-block-heading\">Step 3: Access Your Environment<\/h3>\n\n\n\n<p>The most common way to access your development environment is through a <a data-analytics-action-type=\"link\" data-analytics-link-location=\"Post Content\" data-analytics-link-type=\"internal\" href=\"https:\/\/wpengine.com\/support\/ssh-keys-for-shell-access\/\">Secure Shell (SSH)<\/a>. This is how you can connect to your server from any computer, and leverage the \u2018remote\u2019 aspect of this approach to WordPress development.&nbsp;<\/p>\n\n\n\n<p>The specifics of how you connect will depend on the product you choose. For example, here at WP Engine, we have an <a data-analytics-action-type=\"link\" data-analytics-link-location=\"Post Content\" data-analytics-link-type=\"internal\" href=\"https:\/\/wpengine.com\/support\/getting-started-ssh-gateway\/\">SSH Gateway option<\/a> for developers.<\/p>\n\n\n\n<h2 id=\"toc-advantages-of-a-local-development-environment\" class=\"wp-block-heading\">Advantages of a Local Development Environment<\/h2>\n\n\n\n<p>One of the biggest advantages of using a local development environment is that you don\u2019t have to be connected to the internet to access it. You can work on your site from anywhere, and you won\u2019t be held back by connectivity issues.<\/p>\n\n\n\n<p>Additionally, local development enables you to work in a more secure environment. You\u2019ll be able to keep your projects truly under wraps until you\u2019re ready to go live.<\/p>\n\n\n\n<h2 id=\"toc-setting-up-a-local-wordpress-environment\" class=\"wp-block-heading\">Setting Up a Local WordPress Environment<\/h2>\n\n\n\n<p>Setting up a local WordPress environment is fairly simple. There are several local development applications, such as <a data-analytics-action-type=\"link\" data-analytics-link-location=\"Post Content\" data-analytics-link-type=\"outbound\" href=\"https:\/\/localbyflywheel.com\/\">Local by Flywheel<\/a>, that make the setup process incredibly easy.<\/p>\n\n\n\n<p>Keep in mind that local development for WordPress still requires a LAMP stack. However, some solutions will use terms such as WAMP or <a data-analytics-action-type=\"link\" data-analytics-link-location=\"Post Content\" data-analytics-link-type=\"outbound\" href=\"https:\/\/www.mamp.info\/en\/\">MAMP<\/a> instead, as they are designed for use with Windows or Mac OS rather than Linux.<\/p>\n\n\n\n<h3 id=\"toc-step-1-choose-and-configure-your-local-development-application\" class=\"wp-block-heading\">Step 1: Choose and Configure Your Local Development Application<\/h3>\n\n\n\n<p>There are several excellent local development applications to choose from. We\u2019ve mentioned Local by Flywheel already, but <a data-analytics-action-type=\"link\" data-analytics-link-location=\"Post Content\" data-analytics-link-type=\"outbound\" href=\"https:\/\/varyingvagrantvagrants.org\/\">Varying Vagrant Vagrants (VVV)<\/a> is another WordPress-recommended local development tool to consider. If you already have a plan here at WP Engine, you can also check out <a data-analytics-action-type=\"link\" data-analytics-link-location=\"Post Content\" data-analytics-link-type=\"internal\" href=\"https:\/\/wpengine.com\/local\/\">Local<\/a> for a local development solution.&nbsp;<\/p>\n\n\n\n<p>Once you\u2019ve set up your chosen solution, you\u2019ll be able to start development from scratch or import an existing website to work on. For example, with Local by Flywheel, you can use a <em>.zip<\/em> file of your downloaded website <a data-analytics-action-type=\"link\" data-analytics-link-location=\"Post Content\" data-analytics-link-type=\"outbound\" href=\"https:\/\/localbyflywheel.com\/help-docs\/how-to-import-a-wordpress-site-into-local\/\">to get started<\/a>. If you\u2019re starting from scratch and designing a new website, most local applications have one-click installation solutions for setting up the environment for use with WordPress.&nbsp;<\/p>\n\n\n\n<h3 id=\"toc-step-2-select-a-text-editor\" class=\"wp-block-heading\">Step 2: Select a Text Editor<\/h3>\n\n\n\n<p>Once your local environment is set up, you\u2019ll need to pick a text editor. This is where you\u2019ll edit and debug your WordPress code. These solutions range from simple text applications, to enhanced interfaces with built-in tools for optimizing your workflow.&nbsp;<\/p>\n\n\n\n<p>WordPress has some recommended text editors for development that include <a data-analytics-action-type=\"link\" data-analytics-link-location=\"Post Content\" data-analytics-link-type=\"outbound\" href=\"https:\/\/atom.io\/\">Atom<\/a>, <a data-analytics-action-type=\"link\" data-analytics-link-location=\"Post Content\" data-analytics-link-type=\"outbound\" href=\"https:\/\/www.sublimetext.com\/\">Sublime Text<\/a>, and <a data-analytics-action-type=\"link\" data-analytics-link-location=\"Post Content\" data-analytics-link-type=\"outbound\" href=\"https:\/\/www.jetbrains.com\/phpstorm\/\">PhpStorm<\/a>. There are other options as well, so you\u2019ll want to work with what is most comfortable and suited to your existing workflow.&nbsp;<\/p>\n\n\n\n<h3 id=\"toc-step-3-choose-a-developer-friendly-web-browser\" class=\"wp-block-heading\">Step 3: Choose a Developer-Friendly Web Browser<\/h3>\n\n\n\n<p>Since you\u2019ll still be viewing your locally-developed projects in a web browser, it\u2019s good practice to use a browser that\u2019s oriented to developers. Both <a data-analytics-action-type=\"link\" data-analytics-link-location=\"Post Content\" data-analytics-link-type=\"outbound\" href=\"https:\/\/www.google.com\/chrome\/\">Chrome<\/a> and <a data-analytics-action-type=\"link\" data-analytics-link-location=\"Post Content\" data-analytics-link-type=\"outbound\" href=\"https:\/\/www.mozilla.org\/en-US\/firefox\/\">Firefox<\/a> are incredibly popular browsers that come with useful developer toolkits. This can help you debug problems more easily, and optimize your web development.&nbsp;&nbsp;<\/p>\n\n\n\n<h2 id=\"toc-key-factors-when-choosing-a-local-development-tool\" class=\"wp-block-heading\">Key Factors When Choosing a Local Development Tool<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Operating System Compatibility:<\/strong>&nbsp;Ensure the tool works seamlessly with your OS (Windows, macOS, Linux). For instance, Local is available for Mac, Windows, and Linux, while MAMP historically focused on macOS but now supports Windows too.<\/li>\n\n\n\n<li><strong>Ease of Installation and Use:<\/strong>&nbsp;Consider how complex the setup local WordPress environment process is. Tools like Local offer a graphical interface and one-click WordPress installs, making them beginner-friendly, whereas VVV requires familiarity with Vagrant and the command line.<\/li>\n\n\n\n<li><strong>Built-in Server Components:<\/strong>&nbsp;Check if it includes necessary components like Apache or Nginx web servers, MySQL or MariaDB databases, and selectable PHP versions. XAMPP bundles Apache, MariaDB, PHP, and Perl, offering a complete stack.<\/li>\n\n\n\n<li><strong>SSL Support:<\/strong>&nbsp;Local SSL certificates are crucial for testing HTTPS functionality. Local provides simple one-click local SSL generation, while configuring it manually in XAMPP or VVV can be more involved.<\/li>\n\n\n\n<li><strong>Performance:<\/strong>&nbsp;Evaluate how resource-intensive the tool is. Docker-based environments can offer good performance but might have a steeper learning curve. Native solutions like Local or MAMP might feel faster on some systems.<\/li>\n\n\n\n<li><strong>Collaboration Features:<\/strong>&nbsp;Some tools offer features for sharing your local site with others. Local\u2019s Live Links feature tunnels your local site to a publicly accessible URL, useful for client previews.<\/li>\n\n\n\n<li><strong>WP Engine Integration:<\/strong>&nbsp;If you host with WP Engine, tools like Local offer direct integration, allowing easy pushing and pulling of sites between your local machine and WP Engine environments (Development, Staging, Production). This simplifies the WordPress development and production environment workflow.<\/li>\n<\/ul>\n\n\n\n<h2 id=\"toc-side-by-side-comparison-of-popular-local-solutions\" class=\"wp-block-heading\">Side-by-Side Comparison of Popular Local Solutions<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Local (formerly Local by Flywheel):<\/strong>\n<ul class=\"wp-block-list\">\n<li><em>Pros:<\/em>&nbsp;Very user-friendly GUI, one-click WordPress installs, easy SSL, PHP version switching, MailHog for email testing, Live Links sharing, direct WP Engine Connect integration. Ideal for a streamlined WordPress development setup.<\/li>\n\n\n\n<li><em>Cons:<\/em>&nbsp;Can be resource-intensive on some systems.<\/li>\n\n\n\n<li><em>Ideal Use Case:<\/em>&nbsp;Beginners, designers, agencies, WP Engine users looking for the easiest setup local WordPress environment experience.<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>Varying Vagrant Vagrants (VVV):<\/strong>\n<ul class=\"wp-block-list\">\n<li><em>Pros:<\/em>&nbsp;Highly customizable, mirrors production environments closely, excellent for complex projects and contributing to WordPress core\/plugins. Manages multiple projects easily.<\/li>\n\n\n\n<li><em>Cons:<\/em>&nbsp;Requires command-line knowledge (Vagrant, VirtualBox\/Parallels), steeper learning curve, can consume significant system resources.<\/li>\n\n\n\n<li><em>Ideal Use Case:<\/em>&nbsp;Experienced developers, contributors to WordPress core, those needing a highly configurable WordPress development environment.<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>Docker (with configurations like WP Local Docker):<\/strong>\n<ul class=\"wp-block-list\">\n<li><em>Pros:<\/em>&nbsp;Lightweight containers, highly flexible and scalable, excellent environment parity, version controllable configurations.<\/li>\n\n\n\n<li><em>Cons:<\/em>&nbsp;Requires learning Docker concepts and commands, setup can be complex initially, potential volume mapping performance issues on macOS\/Windows.<\/li>\n\n\n\n<li><em>Ideal Use Case:<\/em>&nbsp;Developers comfortable with containerization, teams needing consistent environments, complex application stacks.<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>XAMPP\/MAMP:<\/strong>\n<ul class=\"wp-block-list\">\n<li><em>Pros:<\/em>&nbsp;Long-standing solutions, bundle Apache, MySQL, PHP together, relatively simple setup for a basic WordPress environment.<\/li>\n\n\n\n<li><em>Cons:<\/em>&nbsp;Less WordPress-specific focus, managing multiple sites can be clumsy, SSL setup is manual, version switching can be difficult compared to tools like Local. MAMP Pro (paid) adds more features.<\/li>\n\n\n\n<li><em>Ideal Use Case:<\/em>&nbsp;General PHP development, developers already familiar with these tools, simple single-site projects.<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>Recommendation Matrix:<\/strong>\n<ul class=\"wp-block-list\">\n<li><em>Beginners\/Designers:<\/em>&nbsp;Start with&nbsp;<strong>Local<\/strong>&nbsp;for its ease of use and WP Engine integration.<\/li>\n\n\n\n<li><em>Agencies\/WP Engine Users:<\/em>&nbsp;<strong>Local<\/strong>&nbsp;is highly recommended due to WP Engine Connect and collaboration features.<\/li>\n\n\n\n<li><em>Advanced Developers\/WP Contributors:<\/em>&nbsp;Consider&nbsp;<strong>VVV<\/strong>&nbsp;or&nbsp;<strong>Docker<\/strong>&nbsp;for maximum control and customization.<\/li>\n\n\n\n<li><em>General PHP Devs\/Simple Needs:<\/em>&nbsp;<strong>XAMPP\/MAMP<\/strong>&nbsp;remain viable options.<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n\n\n\n<h2 id=\"toc-frequently-asked-questions-about-development-environments\" class=\"wp-block-heading\">Frequently Asked Questions About Development Environments<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Do I need coding knowledge to use a local WordPress development environment?<\/strong>&nbsp;No, tools like Local are designed with a user-friendly interface allowing you to install WordPress, manage sites, and even push\/pull to hosting without writing code. Basic understanding helps, but deep coding knowledge isn\u2019t required for basic setup and usage.<\/li>\n\n\n\n<li><strong>How is a local site pushed to WP Engine staging or production?<\/strong>&nbsp;If using Local, you can utilize the WP Engine Connect feature. After linking your WP Engine account, you can directly \u2018push\u2019 your local site files and database to your chosen WP Engine environment (Development, Staging, or Production) with a few clicks.<\/li>\n\n\n\n<li><strong>Will search engines like Google see my local development site?<\/strong>&nbsp;No, your local WordPress environment runs only on your computer and is not accessible via the public internet by default. Search engines cannot crawl or index sites that are not publicly hosted.<\/li>\n\n\n\n<li><strong>How do I switch PHP versions in my local environment?<\/strong>&nbsp;Most modern local development tools make this easy. In Local, for example, you can select different PHP versions (along with web server and MySQL versions) when creating a site or change it later via the site\u2019s configuration panel.<\/li>\n\n\n\n<li><strong>Can I use a local environment for WordPress plugin development?<\/strong>&nbsp;Absolutely. A local WordPress plugin development environment is ideal for writing, testing, and debugging plugins safely without affecting a live site. You have full access to files and databases for thorough development.<\/li>\n\n\n\n<li><strong>Is an online WordPress development environment the same as a staging site?<\/strong>&nbsp;Not exactly. An online or remote development environment is a private, cloud-based workspace (like those offered via DigitalOcean or VS Code Remote), often used early in development. A staging site (like WP Engine\u2019s staging environment) is typically a direct clone of the live site used for final testing before deploying changes, bridging the gap between the WordPress development and production environment.<\/li>\n<\/ul>\n\n\n\n<h2 id=\"toc-develop-something-amazing-with-wp-engine\" class=\"wp-block-heading\">Develop Something Amazing With WP Engine<\/h2>\n\n\n\n<p>Web development can take many shapes and forms. Whether you\u2019re working with a local or remote environment, having the best <a data-analytics-action-type=\"link\" data-analytics-link-location=\"Post Content\" data-analytics-link-type=\"outbound\" href=\"https:\/\/developer.wordpress.org\/\">developer resources<\/a> on hand can help you streamline your workflow.&nbsp;<\/p>\n\n\n\n<p>Check out our <a data-analytics-action-type=\"link\" data-analytics-link-location=\"Post Content\" data-analytics-link-type=\"internal\" href=\"https:\/\/wpengine.com\/plans\/\">plans<\/a> and development solutions, and let our excellent<a data-analytics-action-type=\"link\" data-analytics-link-location=\"Post Content\" data-analytics-link-type=\"internal\" href=\"https:\/\/wpengine.com\/wordpress-hosting\/\" target=\"_blank\" rel=\"noreferrer noopener\"> hosting for WordPress<\/a> be the foundation on which you create something amazing!&nbsp;<\/p>\n\n\n\n<p><\/p>","protected":false},"excerpt":{"rendered":"<p>Beginning development on a new website requires a lot of careful planning. For example, you\u2019ll want to decide how to approach the \u2018under construction\u2019 stage of the project. You\u2019ll likely need to shield potential visitors from seeing your website when it\u2019s still in progress.&nbsp; This is where development environments can come in handy. This kind [&hellip;]<\/p>\n","protected":false},"author":49,"featured_media":0,"comment_status":"","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"mediapress_draft_name":"","_mediapress_is_draft_copy":false,"footnotes":""},"audience":[],"blog-category":[121],"buyer-stage":[],"company-and-culture":[],"content-type":[54],"location":[],"persona":[],"product":[],"topic":[95],"use-cases":[],"class_list":["post-4236","post","type-post","status-publish","format-standard","hentry","blog-category-best-practices","content-type-blog","topic-development"],"time_to_read":13,"acf":{"hero_image_alt_text":"","display_author_bio":false,"featured_on_hub_page":false,"featured_on_tag_page":false,"featured_on_category_page":false,"wp_engine_pick":false,"taxonomy_selector":{"":null,"taxonomy-audience":false,"taxonomy-buyer-stage":false,"taxonomy-company-and-culture":false,"taxonomy-content-type":[54],"taxonomy-location":false,"taxonomy-persona":false,"taxonomy-product":false,"taxonomy-topic":[95],"taxonomy-use-cases":false}},"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.4 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Setting Up a WordPress Development Environment | WP Engine\u00ae<\/title>\n<meta name=\"description\" content=\"Setting up a WordPress development environment can not only make your life easier, but it can make your site better too! Learn all about dev environments with WP Engine\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/wpengine.com\/blog\/wordpress-dev-environment\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Setting Up a WordPress Development Environment | WP Engine\u00ae\" \/>\n<meta property=\"og:description\" content=\"Setting up a WordPress development environment can not only make your life easier, but it can make your site better too! Learn all about dev environments with WP Engine\" \/>\n<meta property=\"og:url\" content=\"https:\/\/wpengine.com\/blog\/wordpress-dev-environment\/\" \/>\n<meta property=\"og:site_name\" content=\"WP Engine\u00ae\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/wpengine\/\" \/>\n<meta property=\"article:published_time\" content=\"2020-01-28T17:12:45+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/wpengine.com\/wp-content\/uploads\/2025\/09\/WPE-IMG-Thumbnail-1200x630-1.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"1200\" \/>\n\t<meta property=\"og:image:height\" content=\"630\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Scott Amerman\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@wpengine\" \/>\n<meta name=\"twitter:site\" content=\"@wpengine\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Scott Amerman\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"13 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/wpengine.com\\\/blog\\\/wordpress-dev-environment\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/wpengine.com\\\/blog\\\/wordpress-dev-environment\\\/\"},\"author\":{\"name\":\"Scott Amerman\",\"@id\":\"https:\\\/\\\/wpengine.com\\\/#\\\/schema\\\/person\\\/0aa6307a0d5cfae7fbb07fd2ea5afc31\"},\"headline\":\"Setting Up a WordPress Development Environment\",\"datePublished\":\"2020-01-28T17:12:45+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/wpengine.com\\\/blog\\\/wordpress-dev-environment\\\/\"},\"wordCount\":2639,\"publisher\":{\"@id\":\"https:\\\/\\\/wpengine.com\\\/#organization\"},\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/wpengine.com\\\/blog\\\/wordpress-dev-environment\\\/\",\"url\":\"https:\\\/\\\/wpengine.com\\\/blog\\\/wordpress-dev-environment\\\/\",\"name\":\"Setting Up a WordPress Development Environment | WP Engine\u00ae\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/wpengine.com\\\/#website\"},\"datePublished\":\"2020-01-28T17:12:45+00:00\",\"description\":\"Setting up a WordPress development environment can not only make your life easier, but it can make your site better too! Learn all about dev environments with WP Engine\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/wpengine.com\\\/blog\\\/wordpress-dev-environment\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/wpengine.com\\\/blog\\\/wordpress-dev-environment\\\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/wpengine.com\\\/blog\\\/wordpress-dev-environment\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/wpengine.com\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Setting Up a WordPress Development Environment\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/wpengine.com\\\/#website\",\"url\":\"https:\\\/\\\/wpengine.com\\\/\",\"name\":\"WP Engine\u00ae\",\"description\":\"Managed Hosting for WordPress\",\"publisher\":{\"@id\":\"https:\\\/\\\/wpengine.com\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/wpengine.com\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/wpengine.com\\\/#organization\",\"name\":\"WP Engine\",\"url\":\"https:\\\/\\\/wpengine.com\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/wpengine.com\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/wpengine.com\\\/wp-content\\\/uploads\\\/2025\\\/09\\\/WPEngine_OGImage-1.webp\",\"contentUrl\":\"https:\\\/\\\/wpengine.com\\\/wp-content\\\/uploads\\\/2025\\\/09\\\/WPEngine_OGImage-1.webp\",\"width\":1200,\"height\":630,\"caption\":\"WP Engine\"},\"image\":{\"@id\":\"https:\\\/\\\/wpengine.com\\\/#\\\/schema\\\/logo\\\/image\\\/\"},\"sameAs\":[\"https:\\\/\\\/www.facebook.com\\\/wpengine\\\/\",\"https:\\\/\\\/x.com\\\/wpengine\",\"https:\\\/\\\/www.instagram.com\\\/wpengine\\\/\",\"https:\\\/\\\/www.linkedin.com\\\/company\\\/wpengine\\\/\",\"https:\\\/\\\/www.youtube.com\\\/channel\\\/UCJeAEAxX69v24CUBZ0WBYSg\"]},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/wpengine.com\\\/#\\\/schema\\\/person\\\/0aa6307a0d5cfae7fbb07fd2ea5afc31\",\"name\":\"Scott Amerman\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/a68a600a02d43afb0f472786bd1954b86216dab0fc78f8a3fb7f6f1bcbeb4823?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/a68a600a02d43afb0f472786bd1954b86216dab0fc78f8a3fb7f6f1bcbeb4823?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/a68a600a02d43afb0f472786bd1954b86216dab0fc78f8a3fb7f6f1bcbeb4823?s=96&d=mm&r=g\",\"caption\":\"Scott Amerman\"},\"url\":\"https:\\\/\\\/wpengine.com\\\/blog\\\/author\\\/scott-amerman\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Setting Up a WordPress Development Environment | WP Engine\u00ae","description":"Setting up a WordPress development environment can not only make your life easier, but it can make your site better too! Learn all about dev environments with WP Engine","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:\/\/wpengine.com\/blog\/wordpress-dev-environment\/","og_locale":"en_US","og_type":"article","og_title":"Setting Up a WordPress Development Environment | WP Engine\u00ae","og_description":"Setting up a WordPress development environment can not only make your life easier, but it can make your site better too! Learn all about dev environments with WP Engine","og_url":"https:\/\/wpengine.com\/blog\/wordpress-dev-environment\/","og_site_name":"WP Engine\u00ae","article_publisher":"https:\/\/www.facebook.com\/wpengine\/","article_published_time":"2020-01-28T17:12:45+00:00","og_image":[{"width":1200,"height":630,"url":"https:\/\/wpengine.com\/wp-content\/uploads\/2025\/09\/WPE-IMG-Thumbnail-1200x630-1.jpg","type":"image\/jpeg"}],"author":"Scott Amerman","twitter_card":"summary_large_image","twitter_creator":"@wpengine","twitter_site":"@wpengine","twitter_misc":{"Written by":"Scott Amerman","Est. reading time":"13 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/wpengine.com\/blog\/wordpress-dev-environment\/#article","isPartOf":{"@id":"https:\/\/wpengine.com\/blog\/wordpress-dev-environment\/"},"author":{"name":"Scott Amerman","@id":"https:\/\/wpengine.com\/#\/schema\/person\/0aa6307a0d5cfae7fbb07fd2ea5afc31"},"headline":"Setting Up a WordPress Development Environment","datePublished":"2020-01-28T17:12:45+00:00","mainEntityOfPage":{"@id":"https:\/\/wpengine.com\/blog\/wordpress-dev-environment\/"},"wordCount":2639,"publisher":{"@id":"https:\/\/wpengine.com\/#organization"},"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/wpengine.com\/blog\/wordpress-dev-environment\/","url":"https:\/\/wpengine.com\/blog\/wordpress-dev-environment\/","name":"Setting Up a WordPress Development Environment | WP Engine\u00ae","isPartOf":{"@id":"https:\/\/wpengine.com\/#website"},"datePublished":"2020-01-28T17:12:45+00:00","description":"Setting up a WordPress development environment can not only make your life easier, but it can make your site better too! Learn all about dev environments with WP Engine","breadcrumb":{"@id":"https:\/\/wpengine.com\/blog\/wordpress-dev-environment\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/wpengine.com\/blog\/wordpress-dev-environment\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/wpengine.com\/blog\/wordpress-dev-environment\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/wpengine.com\/"},{"@type":"ListItem","position":2,"name":"Setting Up a WordPress Development Environment"}]},{"@type":"WebSite","@id":"https:\/\/wpengine.com\/#website","url":"https:\/\/wpengine.com\/","name":"WP Engine\u00ae","description":"Managed Hosting for WordPress","publisher":{"@id":"https:\/\/wpengine.com\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/wpengine.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/wpengine.com\/#organization","name":"WP Engine","url":"https:\/\/wpengine.com\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/wpengine.com\/#\/schema\/logo\/image\/","url":"https:\/\/wpengine.com\/wp-content\/uploads\/2025\/09\/WPEngine_OGImage-1.webp","contentUrl":"https:\/\/wpengine.com\/wp-content\/uploads\/2025\/09\/WPEngine_OGImage-1.webp","width":1200,"height":630,"caption":"WP Engine"},"image":{"@id":"https:\/\/wpengine.com\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/wpengine\/","https:\/\/x.com\/wpengine","https:\/\/www.instagram.com\/wpengine\/","https:\/\/www.linkedin.com\/company\/wpengine\/","https:\/\/www.youtube.com\/channel\/UCJeAEAxX69v24CUBZ0WBYSg"]},{"@type":"Person","@id":"https:\/\/wpengine.com\/#\/schema\/person\/0aa6307a0d5cfae7fbb07fd2ea5afc31","name":"Scott Amerman","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/a68a600a02d43afb0f472786bd1954b86216dab0fc78f8a3fb7f6f1bcbeb4823?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/a68a600a02d43afb0f472786bd1954b86216dab0fc78f8a3fb7f6f1bcbeb4823?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/a68a600a02d43afb0f472786bd1954b86216dab0fc78f8a3fb7f6f1bcbeb4823?s=96&d=mm&r=g","caption":"Scott Amerman"},"url":"https:\/\/wpengine.com\/blog\/author\/scott-amerman\/"}]}},"mediapress_workflow_parent_id":null,"_links":{"self":[{"href":"https:\/\/wpengine.com\/wp-json\/wp\/v2\/posts\/4236","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wpengine.com\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/wpengine.com\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/wpengine.com\/wp-json\/wp\/v2\/users\/49"}],"replies":[{"embeddable":true,"href":"https:\/\/wpengine.com\/wp-json\/wp\/v2\/comments?post=4236"}],"version-history":[{"count":0,"href":"https:\/\/wpengine.com\/wp-json\/wp\/v2\/posts\/4236\/revisions"}],"wp:attachment":[{"href":"https:\/\/wpengine.com\/wp-json\/wp\/v2\/media?parent=4236"}],"wp:term":[{"taxonomy":"audience","embeddable":true,"href":"https:\/\/wpengine.com\/wp-json\/wp\/v2\/audience?post=4236"},{"taxonomy":"blog-category","embeddable":true,"href":"https:\/\/wpengine.com\/wp-json\/wp\/v2\/blog-category?post=4236"},{"taxonomy":"buyer-stage","embeddable":true,"href":"https:\/\/wpengine.com\/wp-json\/wp\/v2\/buyer-stage?post=4236"},{"taxonomy":"company-and-culture","embeddable":true,"href":"https:\/\/wpengine.com\/wp-json\/wp\/v2\/company-and-culture?post=4236"},{"taxonomy":"content-type","embeddable":true,"href":"https:\/\/wpengine.com\/wp-json\/wp\/v2\/content-type?post=4236"},{"taxonomy":"location","embeddable":true,"href":"https:\/\/wpengine.com\/wp-json\/wp\/v2\/location?post=4236"},{"taxonomy":"persona","embeddable":true,"href":"https:\/\/wpengine.com\/wp-json\/wp\/v2\/persona?post=4236"},{"taxonomy":"product","embeddable":true,"href":"https:\/\/wpengine.com\/wp-json\/wp\/v2\/product?post=4236"},{"taxonomy":"topic","embeddable":true,"href":"https:\/\/wpengine.com\/wp-json\/wp\/v2\/topic?post=4236"},{"taxonomy":"use-cases","embeddable":true,"href":"https:\/\/wpengine.com\/wp-json\/wp\/v2\/use-cases?post=4236"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}