A really sweet WordPress development environment

I’m always trying to figure out a more efficient way to do development. I’ve tried more than a dozen different applications to develop in: Notepad, Notepad++, Dreamweaver, FrontPage, Aptana, and so on.

Whichever application you end up using it still only solves some of the problems. So this post will divulge my development environment for some projects. This isn’t the ‘end all, be all’ and it will evolve, but its evolved to this point over years and years and I finally have something I really enjoy.

Most of the content in this tutorial is applicable to any operating system, but it is written for Windows users and some parts will need to be amended for Mac users.

Table of Contents

  1. Local environment
    1. Install Apache, MySQL, & PHP
    2. Configure MySQL
    3. Configure Apache
    4. Install WordPress
  2. Code editor
  3. Source control
    1. SVN Setup
    2. Checkout locally
    3. Deployment

Local Environment

I used to hate local development. It makes sharing your work so much more difficult, configuring a local server isn’t always easy, and there’s so many things to change once you move to production. Not anymore.

Install Apache, MySQL, and PHP

First of all, for any local development you’ll need WAMP, XAMPP, or MAMP. These set up an environment that allows you to run a website on your machine. I use WAMP on a Windows machine. All of these programs will install Apache, MySQL, and PHP along with some helper applications like phpMyAdmin.

Choose which one you like the most and install.

Configure MySQL

After you’ve installed your server environment you need to create a database for your WordPress site.

Open phpMyAdmin or another bundled database application. From the homepage of phpMyAdmin you’ll be able to easily type the name of a new database and save it.

Configure Apache

There are two steps to allowing your computer to act as the server for a website using a real domain. Our intention is to setup example.com to run off of the local computer (rather than from the internet).

Use your real domain

One of the most annoying things about local development is that most tutorials have you setup http://localyourdomin/. That means when its time for production you have to find and replace all occurrences of that in your database and files. Lots of room for error there. So let’s just use your real domain: http://example.com (obviously, replace all instances of example.com with your domain).

1. Edit your HOSTS file

In Windows, use Notepad to open C:\Windows\System32\drivers\etc (be sure to “Run as administrator”) .

Add to the bottom of the file:

# 127.0.0.1 example.com #local
# 123.4.5.6 example.com #production
  • The # (pound sign) denotes a comment. So everything following the pound sign is ignored. So this example won’t change anything once you add it to the file.
  • 127.0.0.1 is the IP address of your machine. Replace 123.4.5.6 with the IP address of your remote server (the one your website is hosted on).
  • #local and #production are just comments to signify which server goes where.

Now, if you un-comment the local server when you try going to example.com your browser will look to your local machine.

NOTE: You can get browser extensions to quickly switch between hosts. Since I do most of my development in Firefox I use HostAdmin.

2. Edit Apache’s httpd.conf

Your computer now knows that example.com is hosted on your machine, but your server needs to know where your local website is located.

Open up httpd.conf (varies depending on which software you installed, but in WAMP its in C:\wamp\bin\apache\Apache2.2.17\conf).

Add to the bottom of the file:

<VirtualHost 127.0.0.1>
 ServerName example.com
 DocumentRoot "C:/wamp/www/example_com"
 ServerAdmin you@example.com

<Directory C:/wamp/www/example_com>
 Order Allow,Deny
 Allow from all
 </Directory>
 </VirtualHost>

Save.

Install WordPress

Download the latest version of WordPress, unzip it, and put its contents into C:\wamp\www\example_com.

Go to example.com and you should see the WordPress installation screen. Follow the wizard. The database name is the one you created earlier. The username (by default) is “root” and the password is blank (null).

Code Editor

You may use Notepad to do all of your development. Pat yourself on the back; you’re hardcore. You’re also missing out.

Finding the right software is hard. Some are ugly, featureless, slow, or dead. A couple years ago I found Aptana. Its an IDE, which basically means that it does way more than edit files.

What does an IDE (and specifically Aptana) offer?

  • Remote FTP/SFTP file editing. Upload/download of files.
  • Code completion: PHP, CSS, HTML and more.
  • Real-time error/warning checking against W3C standards.
  • Local projects

After you install Aptana you can create a project.

  1. Go to “New” → “Project…”
  2. Name your project (maybe example.com)
  3. Uncheck “Use default location”.
  4. Browse to and choose C:\wamp\www\example_com
  5. Click Finish

Your project now contains all WordPress core files, themes, and plugins. Use the project explorer to view all of your files

You can also use Aptana to connect to FTP and remotely edit files. A better method may be to edit locally and use Aptana’s synchronization features to push the files live after you’ve tested locally.

Source Control

At this point you don’t need to go any further unless you’re interested in using source control. Everything we’ve done so far is good enough for a local environment and/or remote editing. But you can make things even beefier with source control…

Source control can be confusing and I’m not going to explain everything here. Instead I’m just going to layout how to use various tools to interact with SVN.

For those a little unfamiliar though, here’s some benefits of source control:

  • History of changes
  • Backup of code
  • Teams can work on the same code simultaneously

I use a few different repository systems, but my favorite is Beanstalk. A single feature makes Beanstalk amazing: deployment. More on this in a bit.

SVN setup

Repository structure is important to get right. There’s lots of ways to do it and you probably will need to tailor it to your project’s needs. But imagine you’re developing several themes and plugins. This is the organization I’m using for just that:


/
    /themes/
        /my-theme/
            /branches/
            /tags/
            /trunk/
                index.php
                style.css
    /plugins/
        /my-plugin/
            /branches/
            /tags/
            /trunk/
                my-plugin.php

This organization allows you to add multiple themes and plugins and keep them each separate from each other and allows you to tag a new version of the theme/plugin.

Create that structure in Beanstalk or whichever solution you’re using. Add a theme or plugin directory and put some files in its trunk directory.

Checkout locally

Now we want to checkout our theme/plugin locally and have it sit right inside the local WordPress installation we already setup.

  1. Install TortoiseSVN
    1. This allows you to do SVN actions within the Windows file system
  2. You’ll need to restart after you install. So tweet this post so you know how to get back to it ;)
  3. Navigate to C:\wamp\www\example_com\wp-content\themes
  4. Add a new directory with the name of your theme, my-theme
  5. Right click my-theme and choose “SVN Checkout…”
  6. Enter the URL of your repository
  7. Make sure your Checkout directory is the one you right clicked on
  8. Click OK

You’ll probably have to enter your SVN credentials as well.

Now you can login to your local WordPress and your theme/plugin will be visible (assuming you have the necessary files).

You can edit files and view the changes locally, then once you’re satisfied with your work you can commit it to the repository.

Deployment

Here’s the fun part (and we’re almost finished). Like I said at the start, it annoys me to have to manually upload and overwrite files via FTP. Its just an extra step and more room for error.

Deployment works like file syncing. Beanstalk keeps a revision record and puts it on each of your servers. This file tells it which other files you’ve made changes to, added, or deleted. Then it scours your server and syncs the files by making it identical to latest revision in your repository.

Using Beanstalk you can automatically deploy all commits to your remote server. I don’t suggest doing this exactly.

Staging server

Use Beanstalk to setup an automatic deployment every time you commit to your staging server. Pushing all of your commits to a staging server makes your latest revisions remotely accessible. This is handy for showing clients or for non-developers to see a working example (i.e. quality assurance, marketing, etc.). Its also a good idea to keep the staging server environment identical (or very similar) to what you’ll be pushing it to on production.

Production server

Finally this is your 100% publicly accessible live website. I use Beanstalk to manually deploy to this environment. Automatic deployment to production may work for you (especially on smaller, less critical sites) but you’ll need to be ready to roll back in the event of any problems.

After staging looks and works perfectly then I use a few clicks of the mouse inside of Beanstalk to manually deploy the latest version. Within seconds I’m confident that all production files are up to date.

Roll back

In the case that something goes horribly wrong, just manually deploy the previous revision. Its so easy!

Show Me Yours

I’d love to know how you have your environments setup. I’m willing and ready to improve mine. Streamlining the process just means I can spend more time paying attention to better code.

58 Comments

  1. Rarst
    Rarst June 23, 2011 at 8:20 am . Reply

    If you are looking for setups that WP developers use in practice be sure to check out this on WPSE http://wordpress.stackexchange.com/questions/324/software-for-wordpress-theme-and-plugin-development

  2. Sat'
    Sat' June 23, 2011 at 10:02 am . Reply

    I’ve set a server on a VM running on my desktop.
    The desktop is an Ubuntu client, the VM (VirtualBox) is an Ubuntu server, with Apache2, php, MySQL, phpMyadmin, ssh and svn.
    I store all the dev on the SVN, using almost the same folder structure as yours, and when I commit the last version to the repository, I upload as well with the FTP to the VM as staging server.
    If everything is OK, I push the files manually to the live webserver.

    1. Hammad
      Hammad November 29, 2011 at 2:28 am . Reply

      Hello Patrick and Sat

      Can you please tell me the how can i use the virtual machine as i wanted to setup a development environment. Or can you please send me the link of the website where everything is shown in details. I am developing a website and want to use virtual machine as a server. Any help would be greatly appreciated.

      Thank You

  3. Tiago Morena
    Tiago Morena June 23, 2011 at 10:33 am . Reply

    Amazing tutorial, thank you for that!!! I´ve been developing locally for some time and this will sure improve my workflow.

  4. blogjunkie
    blogjunkie June 23, 2011 at 10:51 am . Reply

    Great article Patrick! Thank you so much for sharing – I’ll be implementing some of these ideas into my own workflow.

    Question about the staging server – you (and your clients) won’t be able to access it via example.com right? How do you get around that?

  5. Justin Tadlock
    Justin Tadlock June 23, 2011 at 12:04 pm . Reply

    I used to be hardcore and use Notepad for everything. I’ve since gone a little soft though and was drawn in by a few pretty colors in Notepad++.

  6. Andrea_R
    Andrea_R June 23, 2011 at 12:14 pm . Reply

    Love the hosts file!

    For local sites, i tend to use example.dev. That way I know instantly which is the live site and which is development.

    1. Ozh
      Ozh June 23, 2011 at 12:39 pm . Reply

      The hosts tip is really neat. I’ve been using it lately because I needed to work on an IDN domain name like héhé.com and didn’t have any domain to play with :)

      2 thing I also use on my dev box are:
      - my “No Login” plugin to always bypass the login process and save a few seconds each time
      - a quick plugin to make the background of the admin area red or purple in my test site. Too many times I’ve forgotten I was in the test site and thought I was in the live site instead :)

  7. Cody Swann
    Cody Swann June 23, 2011 at 12:36 pm . Reply

    Great info. One step that is missing: Syncing the databases.

    For good or bad, a lot of logic for WordPress is in DB (plugin configs, widgets, etc)

    We use capistrano for deployment and an in-house DB sync tool to solve both problems.

  8. Cody Swann
    Cody Swann June 23, 2011 at 12:37 pm . Reply

    Also, one other thing, your host file doesn’t help when you deploy to staging. You’ll still need to find and replace. Something else a DB sync tool can do automatically.

  9. Erik Ford
    Erik Ford June 23, 2011 at 2:46 pm . Reply

    I’ve recently become a convert and advocate for version control in all of our work and Beanstalk is our app of choice. This includes designs. And though I know that it is common practice to develop websites locally before deploying to a server, I am finding it more and more useful to develop on a live server staging area with automatic deployments. When we are ready to deploy to a production server, we manually deploy to that environment.

    This is still a “work-in-progress” workflow for us but I am liking the results thus far. Thanks for sharing your insights.

  10. Rev. Voodoo
    Rev. Voodoo June 24, 2011 at 12:46 pm . Reply

    Thanks! Like my weekend wasn’t going to be busy enough….. Now I’ve got this to look forward to figuring out.

    Well written for sure!!

  11. Ján Bočínec
    Ján Bočínec June 27, 2011 at 4:32 pm . Reply

    Nice up to date article about WordPress development environment in a nutshell.

    I personally use Textmate + https://github.com/Gipetto/wordpress.tmbundle for code editor.

    When speaking about a source control and a deployment: “A single feature makes Beanstalk amazing: deployment.” I would like to add the combination of GitHub (+ GitHub app for Mac http://mac.github.com/ or http://www.git-tower.com/) + http://www.pagodabox.com/ (I have some invitations if needed) is also very good alternative for serious source controlling and deployment.

    1. Ján Bočínec
      Ján Bočínec June 27, 2011 at 5:15 pm . Reply

      For multiple databases you can use this tips http://markjaquith.wordpress.com/2011/06/24/wordpress-local-dev-tips/

  12. Neil Davidson
    Neil Davidson June 27, 2011 at 6:36 pm . Reply

    Awesome article. I generally leave my local host as localhost/web folder

    And, if I don’t want to navigate the database via phpmyadmin I can simply run the following script after installing wordpress:

  13. Neil Davidson
    Neil Davidson June 27, 2011 at 6:38 pm . Reply
  14. Daniel Wiener
    Daniel Wiener June 29, 2011 at 9:10 am . Reply

    Thanks for the tutorial. Like everyone, I like the hosts tip. I had been using it to check sites before DNS was pointed to them, but had not thought of using it for local sites. I believe you need to flush your cache though when you change your hosts file. On a mac write “dscacheutil -flushcache” in the terminal.

    I use Textmate with the WordPress bundle, css bundle, php bundle. And use git and github. I have not found an easy way for deployment. I have tried pagodabox.com and like it but it is too expensive for most of my sites and is not yet set up for hosting multi-sites.

    I don’t use MAMP but create virtual hosts for my dev sites. I have written a tutorial for beginners on creating virtual hosts on a Mac (It is a little old so things may have changed). http://www.danielwiener.com/is/tutorials/create_virtual_host_mac And since I don’t use MAMP I install what Mac OS has not installed already, which can be a pain in the neck (especially when upgrading the OS), though there are many tutorials on how to do it and packages that make installation easier (Marc Liyanage is often the main source for these. http://www.entropy.ch/software/macosx/ )

    I keep the Authentication Unique Keys and Salts and the logons the same between local and remote sites. And I have a clumsy way for syncing databases. I export the remote database using phpMyAdmin. Then I open the .sql file in my text editor and find “example.com” and replace all with “example.dev” and then import the modified .sql file into my local database with my local copy of phpMyAdmin. I “replace all” because the image url’s are hard-coded into the database. Naming the dev site with .com will alleviate this step.

    I have a question for Patrick. How do you set up your staging site? And do you keep your staging site synced with your production site? Thanks.

  15. Daniel Wiener
    Daniel Wiener June 29, 2011 at 9:42 am . Reply

    Thanks for your answer. I’ll try the Firefox add-on.

    But I was wondering about more of the basics for setting up a staging site. Do you create a separate folder (e.g. called “staging”) with a full WP install and synced files as your staging site? Do you use multi-site with one site as your staging site? I don’t mean to be dense but have not figured out a good way to do this. Thanks.

  16. Daniel Wiener
    Daniel Wiener June 29, 2011 at 10:05 am . Reply

    Thanks. Just what I wanted to know. (but can’t afford it right now). And the domain names are the same for both production and staging servers? If so how does the client check the staging site? Thanks (hopefully my last question).

  17. singh
    singh June 30, 2011 at 9:27 am . Reply

    Hi,

    Awesome Tutorials Thanks.

    I have a similar setup where I develop on my local machine (windows+wamp)
    Then I’ve my springloops account which acts as staging server
    then I’ve my production server.

    Changes made on local machine are pushed to the staging (springloops) where I’ve configured the auto deployment and added my production server’s credentials. So it takes only one click to push changes to the production server.

    Now My question is how can I sync DB from my local machine to production server?

    is there any tool that i can integrate with Springloops and my production server?

    Thanks again

  18. [...] may have ruined a weekend or two for me with this post. Check out really cool options for version control, etc while running a local development version [...]

  19. [...] for version control hosting and the easiest deployments this side of an FTP client.Patrick Daly’s guide to developing WordPress using Beanstalk’s Subversion hosting & deployment tools is a VERY thorough overview of some best practices for using version control to develop and deploy [...]

  20. Owen Conti
    Owen Conti July 7, 2011 at 6:48 pm . Reply

    So if I understand correctly, each theme &/or plugin will need it’s own repo?

    And do you include the /branches, /tags, and /trunk directories in your /my-theme folder on your production site?

    Thanks,

    Owen

  21. Sibby
    Sibby July 27, 2011 at 8:56 pm . Reply

    Great tutorial. Way too much for my simple knowledge and needs.

    I did come across RAMP, a new product from Alex King of Crowd Favorite:

    http://alexking.org/blog/2011/07/20/ramp-content-deploy-wordpress.

    Wondering if this takes away some of the pain with staging/live environments?

  22. designOdyssey
    designOdyssey July 31, 2011 at 12:14 am . Reply

    Patrick. Thanks a bunch for the hosts tip. Using localhost and then trying to deploy has been a real pain especially for a novice. It took some open and closing of XAMPP and even a Windows XP restart, but I got this part working. I’m doing everything under Netbeans which seems very good. SVN tomorrow.

  23. jeremyjared74
    jeremyjared74 August 7, 2011 at 12:04 pm . Reply

    Thanks for the info, I’ll try some of the suggestions.

    I just wanted to share my Code Editor (pc only). I used Notepad++ for years, but for some reason it started “scrambling” my code. It would look fine, but when uploaded to WordPress it would loose it’s line-breaks. This would cause problems if the code had single line comments. I read several posts on fixing the problem and made sure the encoding was correct, but the problem persisted.

    I tried almost 10 different editors before I found PHP Designer 7. I’ve been very pleased with the editor. It’s lightweight but has all the features I need. Some features include: Code completion suggestions, very easy code snippets saving, built in FTP, completely customizable syntax highlighting, and appearance. It has proven a great time saver.

    Link:
    http://www.mpsoftware.dk/phpdesigner.php

  24. boomboom
    boomboom August 9, 2011 at 2:01 am . Reply

    Excellent Article. I used to manually replace localhost to the actual domain in my database file. Your hosts trick is pretty neat.

  25. designOdyssey
    designOdyssey August 11, 2011 at 2:46 pm . Reply

    Sorry in advance for the long post.

    Goal:
    Local Development of WordPress 3.0 with:

    1. Easy subversion updating of core WordPress files, themes and plugins
    2. Using mysite.com instead of localhost for easier deployment

    I had number 2 working using the advice from http://devpress.com/blog/a-really-sweet-wordpress-development-environment/ and the httpd.conf and hosts file changes listed below. Then, I moved core WordPress files into a subdirectory based on the directory structure below and item 1 worked, but item 2 is now broken. See http://ottopress.com/2011/creating-a-wordpress-site-using-svn/ re: item 1. I’m sure it has something to do with the Virtual Host setup I have, but I don’t know how to fix it.

    Environment:
    Windows XP
    XAMPP 1.7.4
    Wordpress 3.2.1

    Directory Structure:
    In my xampp folder, I have
    /htdocs/mysite/
    Under this directory, I have:
    /wp_core (all wordpress files from svn with my modified .htaccess)
    /wp_content (exported from /wp_core with my added plugins/themes)
    wpconfig.php

    .htaccess
    # BEGIN WordPress

    RewriteEngine On
    RewriteBase /mysite/wp_core/
    RewriteRule ^index\.php$ – [L]
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule . /mysite/wp_core/index.php [L]

    # END WordPress

    httpd.conf

    ServerName mysite.com
    DocumentRoot “C:/xampp/htdocs/mysite/wp_core”
    ServerAdmin me@mysite.com

    Order Allow,Deny
    Allow from all

    wp-config.php
    /* Added definitions to move content location to subfolder */
    define( ‘WP_CONTENT_DIR’, $_SERVER['DOCUMENT_ROOT'] . ‘/mysite/wp_content’ );
    define( ‘WP_CONTENT_URL’, ‘http://localhost/mysite/wp_content’);

    Hosts file
    127.0.0.1 localhost
    127.0.0.1 mysite.com #local
    # 123.4.5.6 example.com #production

    Results I’m getting:
    With the setup above, I get a blank screen at mysite.com. I assume this is because for some reason it’s pointing to /htdocs/mysite where there is now no index.php.

    If I remove the Virtual Host code from the httpd.conf file, I get XAMPP setup by going to mysite.com which I assume is pointing to xampp/htdocs which has index.php for XAMPP. I can get to my WordPress site either by using mysite/wp_core or localhost/mysite/wp_core, but I can’t seem to get Virtual Host to resolve to mysite.com and see the site.

  26. designOdyssey
    designOdyssey August 12, 2011 at 4:16 am . Reply

    Patrick, Thanks. Well I solved my problem, but still kept the directory structure. It did require me to make changes to wpconfig, some settings in the settings table (via admin if I had done it correctly) and I used the vhost setup recommended by XAMPP. If it will help anyone else, the thread where I got this resolved is at http://www.apachefriends.org/f/viewtopic.php?f=16&t=47872

    I hear what you say about SVN, but it makes me curious why so many posts out there about moving wpcontent out of wpcore? Here’s the most recent one I based my work on http://ottopress.com/2011/creating-a-wordpress-site-using-svn/

    I’ve had some problems with TortoiseSVN if I have a folder that’s supposed to be external, but it’s got non-external files and folders in it. Not that much different that wpcore given .htaccess gets added.

    I’ll have to try it.

  27. Paul
    Paul August 12, 2011 at 8:24 pm . Reply

    wouldn’t a tool such as navicat take care of the DB synchronization?
    http://www.navicat.com/en/

  28. Bughunter
    Bughunter August 16, 2011 at 7:42 am . Reply

    I do not see how this helps with database sync – if you develop plugins or just install new plugins in dev and / or staging that do their own database stuff, how does this help? Not really. Deployment is still something else than configuration management – bringing this tip down it is just simple config file handling and copying files – your whole post totally ignores the databse – to say the truth writing about deployment and totally igbnoring database issues for an app like wordpress is not really an a-grade work – it is a fail!
    Of course you can just dump your database and reload it to live server – hopefully you have had no comments on the live side meanwhile… get it? There is a little bit more to it than just dumping db.
    These problems occur, because there is no real dev / staging / live cycle support built into wordpress itself – but for every major webapp you absolutely need a sane deployment toolset, one that goes far behind simple config file renaming / changing and rsyncing files to server.
    Seems like many wordpress devs, especially the advanced ones, should urgently take a few weeks trip into rails- or django-land to learn about these issues and which solutions already exist – an adaption back to wordpress-world based on these experiences would be very appreciated and a hug step for the whole wp community.
    To be constructive: read about git (hell, forget about svn!) , read about fabric (python) or capistrano (rails) and take a look on what migrations are.
    Then redesign wordpress database layer to support migrations in any way and built a sane deployment-cycle on top of this, with git and support for rollbacks, updates, different site settings etc. etc.

  29. [...] WordPress Development Environment. [...]

  30. Paul de Wouters
    Paul de Wouters September 27, 2011 at 7:29 pm . Reply

    I suggest checking out this cool plugin: http://code.google.com/p/deploymint/
    Dev/staging/production using Multisite.

  31. [...] This tutorial is from Patrick Daly of DevPress. Basically the tutorial assumes that you’ve already used WAMP, XAMPP, MAMP or the like to set up a local development environment. Then you’ll learn how to use your real domain and edit your HOSTS file and Apache’s httpd.conf. Patrick also points you in the right direction for source control and deployment. This may be the perfect staging environment for you. Read the tutorial at: A really sweet WordPress development environment [...]

  32. [...] This tutorial is from Patrick Daly of DevPress. Basically the tutorial assumes that you’ve already used WAMP, XAMPP, MAMP or the like to set up a local development environment. Then you’ll learn how to use your real domain and edit your HOSTS file and Apache’s httpd.conf. Patrick also points you in the right direction for source control and deployment. This may be the perfect staging environment for you. Read the tutorial at: A really sweet WordPress development environment [...]

  33. Mark
    Mark October 28, 2011 at 11:17 am . Reply

    Really interesting article and enjoyed reading this a lot. I am very new to Source Control and have created the free Beanstalkapp account to give it a try. However I am completely lost as to how to get this working.

    I would love a step by step tutorial on exactly how to set all of this up with screenshots or a screencast. I am sure there are others out there who want to take the next step with development and deployment but I just not sure how.

    I use a Mac but I am sure a Mac/Windows tutorial would be great.

  34. Daniel Restrepo
    Daniel Restrepo October 28, 2011 at 3:58 pm . Reply

    I just use Netbeans over a debian system, configuring the lamp server that you can install from the repositories (which gives me something as close as possible as the production server), also for source control and project management I’m using http://www.xp-dev.com; a nice agile tool. But regarding IDEs, I reckon is something about habits and also more about the “indian than the arrow” :D

  35. 9种搭建WordPress测试环境的方法
    9种搭建WordPress测试环境的方法 November 3, 2011 at 11:56 am .

    [...] 本教程出自DevPress。假设你已经在自己的电脑系统上搭建了WAMP, XAMPP, MAMP 并安装了WordPress,此教程会更深一层讲述如何在本地的WordPress上使用你的真实域名、如何编辑HOSTS 及 Apache服务器上的 httpd.conf 文件等。详细的教程请看这篇: A really sweet WordPress development environment. [...]

  36. commercial rainwater
    commercial rainwater November 28, 2011 at 12:45 am . Reply

    commercial rainwater and harvesting commercial services related to The management of Stormwater and recent with climate change creating unexpected rainfall events resulting in localised flooding. so hare you will get provide best services.

  37. Carlo
    Carlo December 1, 2011 at 10:44 am . Reply

    Should this workflow works also for multisite installation of wordpress?

  38. Quadland
    Quadland December 27, 2011 at 11:04 am . Reply

    Do you have any recommendations for on optimal VM production environment setup? I have Ubuntu, Apache2, MySQL, PHP5, SVN, SSH, etc. but I need to optimized the Apache client processes, Mods, etc. The threads keep locking up.

  39. Stephen Carroll
    Stephen Carroll December 31, 2011 at 2:35 pm . Reply

    You may wish to check into my DesktopServer project. It automates much of this (sans SVN) and it’s free. The premium version has a lot of neat features but the free version is also loaded and even includes a copy feature to jump start your projects. Designers using Dreamweaver may also like the enhanced support for Live View so that you can edit and view your themes directly, reducing a lot of the flipping back n’ forth to the root’s index.php.

    Getting Started with DesktopServer

  40. [...] A really sweet WordPress development environment [...]

  41. [...] WordPress Developer Environment – Share this:FacebookEmailShareRedditDiggStumbleUponPrint [...]

Post Comment