Support » Localhost Installs » How to Copy WordPress Site to Local Test Server

  • Resolved BobRoberts123

    (@bobroberts123)


    Notice I use the word “copy” and not “move” – it’s only for test purposes and I want the current site to keep running for now.

    I assume I should go into PHPMyAdmin and import the SQL script from the WordPress site. One important question I have, is, before doing this, can I open the *.sql file up in Wordpad and do a global change on the “http://hostingurl.com/customwebsite” and set it to my local site? Will that work? And if it will work, what should I change the URL to in order to get it to work as a local test site? I’ve unzipped the entire WordPress site into a folder called “C:\Program Files\BitNami WordPress Stack\apps\testapp”. Would I, for example, change the *.SQL file for the URL to read “http://localhost/testapp”?

    Keep in mind this is a Windows 7 PC. It currently is running IIS, and if I would type in “http://localhost” into my web browser, then it would run the default site registered under IIS. So I guess that leads to another important question – how is this WordPress site on my PC “registered” to run under the Bitnami Apache web server. I can’t find any specific documentation that lists exactly what you have to do to type in a local URL in your browser and have it run your WordPress test site. Thanks in advance for consideration of these issues.

Viewing 15 replies - 1 through 15 (of 33 total)
  • Hi Bob,

    You shouldn’t have to edit the .SQL file. You will want to change the wp-config.php file of your test copy. Here’s the full instructions on making a development copy of your site:

    http://codex.wordpress.org/Running_a_Development_Copy_of_WordPress

    Hope this helps!

    Thread Starter BobRoberts123

    (@bobroberts123)

    Thanks for your replies. I’m having a serious problem with the documentation I’ve read – it’s either not specific enough, too incomplete (lacks context), or doesn’t apply to my situation. The “Running_a_Development_Copy…” says, “your develoment site might be “http://localhost/example.com/blog”. Not “might” but “must”. I must get this WordPress site registered with Apache so that I can at least run it in a browser, but nowhere can I find detailed instructions on how to do that – they aren’t there. I installed BitNami and it created a structure “\program files\BitNami WordPress Stack\apps\wordpress” – OR – “\program files\BitNami WordPress Stack\apps\phpmyadmin” For example, the sample WordPress site can be called up in my browser by typing in “http://localhost:81/WordPress

    within “\program files\BitNami\WordPress Stack\apps\…” there are folders called “conf” and “htdocs”. The “conf” holds a file called (in the case of the sample WordPress site) wordpress.conf. The “htdocs” folder appears to hold what you would call the WordPress site itself – it has folders called, “wp-admin, wp-content, and wp-includes”, as well as other files, such as “wp-config”. I have created a folder equivalent to these two containing the test WordPress site (not a blog – a site) I was given in a zip. I have modified everything I can see, including just now, as suggested, modifying the “wp-config.php” with these two lines:
    define(‘WP_SITEURL’, ‘http://localhost:81/testsite’);
    define(‘WP_HOME’,’http://localhost:81/testsite);

    However, when I type http://localhost:81/testsite into my browser, it still gives a “the webpage cannot be found” error. Though I’ve created a new database, I haven’t yet run the *.sql script I was given to construct the site’s database – I had questions about doing that (see prior post) – and I haven’t modifed the wp-config.php for the new database name, or login information. Would that explain why the browser can’t even begin to find the test site – or is it something else? Somehow I think it’s something else.

    Getting back to the “Running_a_Development_Copy…”, all it gives is a SELECT statement with no detailed explanation or context – it doesn’t say where or how to run it – and even what database to run it on. I checked the *.sql file that constructs the WordPress test database and nowhere in it is it creating a table called “wp_options”, so I’m completely stumped at what this “full” documentation is trying to say – except for a general comment about “your development site might be” and a contextless SELECT statement, it says absolutely nothing about how to “run a development copy of WordPress”. And the “simple hack” – God am I tired of reading the word “simple” in this documentation – none of the examples even apply to the version of my site – 3.2.1 Besides, I am not trying to “run 2 copies of WordPress” and I am not trying to setup a second “a second blog installation using the same database.”

    I’m sure if people were standing over my shoulder they could quickly see my issues and be able to tell me how to get it all to work – but words, either reading them or writing them – people just can’t deal with them.

    Hi BobRoberts123,
    I personally use wamp but I can give you 10 easy to follow steps as the principle of transfering the site should be the same. Here are the steps to copy a wordpress site to your local installation

    Before we start lets define a few things for this example:

    1. The hosted version address we will refer to as: http://www.hostedversion.com (This is the web address of the hosted wordpress site)
    2. The local version address we will refer to as: http://localhost/testsite (This is the web address of the local host folder you want to transfer your site to)

    STEP 1:
    Copy your files from your webhost to your local server folder.

    STEP 2:
    On your webhost login to phpmyadmin and export your database (By Selecting your database and selecting the export tab and downloading to your computer)

    STEP 3:
    Log into your local phpmyadmin, create a new database and import the sql database into it by selecting the import tab and uploading your file.

    STEP 4:
    Once Uploaded we want to modify the database to reflect the new blog location being on the localhost. So we run the following SQL (Select the SQL tab and paste the following code):

    UPDATE wp_options SET option_value = replace(option_value, 'http://www.hostedversion.com', 'http://localhost/testsite') WHERE option_name = 'home' OR option_name = 'siteurl';

    STEP 5:
    We now want to fix the urls of posts and pages. So we run the following SQL:

    UPDATE wp_posts SET guid = replace(guid, 'http://www.hostedversion.com','http://localhost/testsite');

    STEP 6:
    If you have linked internally within blog posts or pages with absolute URLs, these links will point to wrong locations after you move the blog location. So we run the following SQL to fix this issue:

    UPDATE wp_posts SET post_content = replace(post_content, 'http://www.hostedversion.com', 'http://localhost/testsite');

    STEP 7:
    We want to now modify our wp-config.php file in our local server. Honestly, the easiest way to do this is to delete the wp-config.php file in your local server and then visit http://localhost/testsite in a browser.

    STEP 8:
    With the dialog message that comes up click the ‘Create a Configuration File’ button. Then click the ‘Lets Go’ button on the next screen.

    STEP 9:
    Fill in all of the fields:
    Database Name: This is the name of the database in your local phpmyadmin
    Username: This is your phpmyadmin username (usually root)
    Password: This is your phpmyadmin username’s password
    Database Host: This is usually localhost
    Database Prefix: normally is wp_ unless someone has changed it manually.

    STEP 10:
    Click Submit, the wp-config file will be created and everything should work on the local host.

    I hope this helps.

    Sunny

    Thread Starter BobRoberts123

    (@bobroberts123)

    Sunny, thank you for your response – I feel I’m finally getting somewhere. Step 1 and 2 have effectively been done – and I assume that it doesn’t matter where I put the files (step 1), though as I explained I created a folder called “testsite” below the “C:\Program Files\BitNami WordPress Stack\apps” folder that BitNami created. Is that ok?

    I was able to run step 3 without an error, a definite sign of progress. However, I have a question about your advice on steps 4, 5, and 6. For my example, I have called my site “testsite” but that isn’t what it’s really called. Let’s say it’s called “wordpresssite”. What I want to point out is that in the *.sql file given to me that was exported from the actual site, this string of characters appears: “http://www.hostedversion.com/wordpresssite”. And on my local test server I have downloaded the files to “C:\Program Files\BitNami WordPress Stack\apps\wordpresssite”. So I’m not sure what to put in the SQL code for, let’s say, step 4. Keep in mind I think my local URL is “http://localhost:81”.

    Following your instructions literally, the UPDATE statement would read …replace(option_value, ‘http://www.hostedversion.com’, ‘http://localhost:81/wordpresssite’) WHERE…” But that would yield a URL of “http://localhost:81/wordpresssite/wordpresssite”. The name of the site would be doubled. Are you sure it shouldn’t be: …replace(option_value, ‘http://www.hostedversion.com’, ‘http://localhost:81’) WHERE…” It’s important that I know which it should be, since I don’t think I should continue beyond this point until I find out.

    Also, as I mentioned earlier, there does not appear to be a “wp_options” table in the database I created and imported the *.sql file into. There is, howerver, a “wordpresssite_options” table. Should I use that name instead of “wp_options” in your instructions 4 – 6?

    Hi BobRoberts123,
    Based on what you have just told me here are some amendments to the dteps above.

    NEW STEP 4:
    Once Uploaded we want to modify the database to reflect the new blog location being on the localhost. So we run the following SQL (Select the SQL tab and paste the following code):

    UPDATE wordpresssite_options SET option_value = replace(option_value, 'http://www.hostedversion.com/wordpresssite', 'http://localhost:81/wordpresssite') WHERE option_name = 'home' OR option_name = 'siteurl';

    NEW STEP 5:
    We now want to fix the urls of posts and pages. So we run the following SQL:

    UPDATE wordpresssite_posts SET guid = replace(guid, 'http://www.hostedversion.com/wordpresssite','http://localhost:81/wordpresssite');

    NEW STEP 6:
    If you have linked internally within blog posts or pages with absolute URLs, these links will point to wrong locations after you move the blog location. So we run the following SQL to fix this issue:

    UPDATE wordpresssite_posts SET post_content = replace(post_content, 'http://www.hostedversion.com/wordpresssite', 'http://localhost:81/wordpresssite');

    NEW STEP 7:
    We want to now modify our wp-config.php file in our local server. Honestly, the easiest way to do this is to delete the wp-config.php file in your local server and then visit http://localhost:81/wordpresssite in a browser.

    Then just cary on with the steps described above. The bitnami set up seems ok. The reason that you cant find the wp_options table is because the database prefix ‘wp_’ which is normally the default has been changed by the person that had set up this site (which is good for security purposes). But just follow the steps and you should be good!

    Sunny

    Thread Starter BobRoberts123

    (@bobroberts123)

    Thank you so much, Sunny, I was able to run steps 4 – 6, so that is more progress. However, trying to run step 7, I’m back to the orignal and fundamental problem I originally posted about. When I type in “http://localhost:81/wordpressite” in a browser, it says “Not Found – the requested URL was not found on this server”. Keep in mind that the real folder the wordpress site resides in is “C:\Program Files\BitNami WordPress Stack\apps\wordpresssite\htdocs” This is where the wp-admin, wp-content, and wp-includes folders are, as well as the wp-config.php file before I deleted it.

    I’m familiar with Windows IIS, and you always have to “register” your site by associating the actual folder where the site exists (physical path) with the URL localhost/sitename (virtual path). But that’s a bit of information that’s missing here – how does my browser know when I type in “http://localhost:81/wordpressite” that the site is actually located in “C:\Program Files\BitNami WordPress Stack\apps\wordpresssite\htdocs”?

    Keep in mind I put it there because there was an example “wordpress” site that BitNami installed already under apps with the same structure, so I tried to duplicate what they’re doing. Besides, all the general instructions I’ve read make it seem that it doesn’t matter where you put the wordpress site – somehow it’s magically (simply, easily) supposed to be found by the browser.

    I want to mention that if I type in “http://localhost:81” into the browser, it brings up the BitNami Welcome! – Access BitNami WordPress Stack page, which appears to actually be located here: C:\Program Files\BitNami WordPress Stack\apps\wordpress\htdocs

    I dont know if it was a typo in your last post: http://localhost:81/wordpressite You seemed to have missed an extra s out of the url. Try visiting this url: http://localhost:81/wordpresssite and let me know what happens.

    Also in answer to your question Bitnami automatically creates the association to localhost for you so as long as you set up your new stack and place the files in the htdocs folder you should be good. You dont need to worry about creating any associations. Hope that helps

    Sunny

    Thread Starter BobRoberts123

    (@bobroberts123)

    No, I had just neglected to type in the third “s”. When I in fact go to http://localhost:81/wordpresssite, I get “The webpage cannot be found”.

    I might add that in the sample wordpress site that installs with Bitnami, along with the “htdocs” folder there is also a “conf” folder, which contains a file called wordpress.conf. It contains:
    ===========================================
    Alias /wordpress/ “C:/Program Files/BitNami WordPress Stack/apps/wordpress/htdocs/”
    Alias /wordpress “C:/Program Files/BitNami WordPress Stack/apps/wordpress/htdocs”

    <Directory “C:/Program Files/BitNami WordPress Stack/apps/wordpress/htdocs”>
    Options Indexes MultiViews +FollowSymLinks
    AllowOverride All
    Order allow,deny
    Allow from all
    RewriteEngine On
    RewriteBase /wordpress/
    RewriteRule ^index\.php$ – [L]
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule . /wordpress/index.php [L]
    </Directory>

    # Uncomment the following lines to see your application in the root
    # of your URL. This is not compatible with more than one application.
    #RewriteEngine On
    #RewriteRule ^/$ /wordpress/ [PT]
    ==============================================
    When I created the wordpresssite and put it under “C:\Program Files\BitNami WordPress Stack\apps”, and I copied the contents of the exported zip into the “htdocs” folder. And I also created the above-menioned conf folder. I copied the wordpress.conf file in, renamed it to wordpresssite.conf, and then modified it to look like this:
    ====================================
    Alias /wordpresssite/ “C:/Program Files/BitNami WordPress Stack/apps/wordpresssite/htdocs/”
    Alias /wordpresssite “C:/Program Files/BitNami WordPress Stack/apps/wordpresssite/htdocs”

    <Directory “C:/Program Files/BitNami WordPress Stack/apps/wordpresssite/htdocs”>
    Options Indexes MultiViews +FollowSymLinks
    AllowOverride All
    Order allow,deny
    Allow from all
    RewriteEngine On
    RewriteBase /wordpresssite/
    RewriteRule ^index\.php$ – [L]
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule . /wordpresssite/index.php [L]
    </Directory>

    # Uncomment the following lines to see your application in the root
    # of your URL. This is not compatible with more than one application.
    #RewriteEngine On
    #RewriteRule ^/$ /wordpresssite/ [PT]
    ==================================================
    But, unfortunately that does not get rid of the page not found. I even tried deleting the conf folder, and it had no effect on the error.

    I did try something that had an interesting result. I deleted the contents of “”C:/Program Files/BitNami WordPress Stack/apps/wordpress/htdocs/”
    and replaced it with the contents of “C:/Program Files/BitNami WordPress Stack/apps/wordpresssite/htdocs/”

    I then typed http://localhost:81/wordpress into the IE9 browser.

    The browser then displayed a page that said: “There doesn’t seem to be a wp-config.php file. I need this before we can get started. Need more help? We got it. You can create a wp-config.php file through a web interface, but this doesn’t work for all server setups. The safest way is to manually create the file.

    Create a Configuration File” I filled out the form with the new database information and hit Submit.

    A tab then opened up in the brower called “Localhost” and the progress indicator just kept turning. If I hover the mouse over the tab, the tooltip says, “http://localhost:81/wordpress/wp-admin/setup-config.php?step=1&#8221;

    The wp-config.php never gets created.

    If I restore the wp-config.php file back and edit it manually for the database information, and type in “http://localhost:81/wordpress&#8221; in the browser, it just gets hung up trying to open it, but doesn’t open anything up.

    Thread Starter BobRoberts123

    (@bobroberts123)

    Just to reiterate what I’ve done lately, I copied the contents of C:\Program Files\BitNami WordPress Stack\apps\wordpresssite\htdocs” into C:\Program Files\BitNami WordPress Stack\apps\wordpress\htdocs”. Keep in mind that http://localhost:81/wordpress was working, displaying their example site. I then ran the three scripts (steps 4, 5, and 6)in PHPMyAdmin on the database associated with the site, for example:

    UPDATE wordpresssite_options SET option_value = replace(option_value, ‘http://localhost:81/wordpresssite&#8217;, ‘http://localhost:81/wordpress&#8217;) WHERE option_name = ‘home’ OR option_name = ‘siteurl’;

    After doing that, when I type in “http://localhost:81/wordpress&#8221; in Firefox, it shows a tab up at the top saying “Connecting…” and below shows the message “Waiting for localhost…” But it never opens up any page – the page remains blank.

    Then I double-checked the wp-config.php file, and noticed this line:
    define(‘DB_HOST’, ‘localhost:81’);

    I decided to change it to: define(‘DB_HOST’, ‘localhost’);

    removing the port, reasoning that it was connecting not to the web server but to the database, and maybe it didn’t need port 81. I was right – and it now opens up the test wordpress site, but it doesn’t look exactly like the current production one, almost as if the style sheet is not the same. I’ll try to reverse it all out and see if I can get the test site to function in its own folder structure.

    Well, I was not able to get the site to function within a new, independent folder structure in BitNami – it acts like it can’t find the localhost:81 URL. I can get it to work by cannibalizing the existing wordpress application and folder structure installed under BitNami.

    Hi BobRoberts123,
    Although you have the site partly functioning, you seem to be having alot of trouble with bitnami and also its not the ideal set up as you may want to set up multiple websites on localhost at the same time. I recommend uninstalling everything i.e bitnami and iis, downloading and installing wamp http://www.wampserver.com/en/? and following my initial steps from 1 -10.

    It is so easy to create a new site in wamp. All you have to is go to C:\wamp\www and create a new subfolder which will be a whole new site. Then just follow my steps from 1-10 and you will be good! Let me know if you need further assistance.

    Sunny

    Thread Starter BobRoberts123

    (@bobroberts123)

    Thanks, Sunny, I will try wamp. Not sure if I want to uninstall IIS though – I’ll see if I can get by with running them both.

    Thread Starter BobRoberts123

    (@bobroberts123)

    Problem. After installing wamp and going into phpMyAdmin, I noticed that it didn’t ask for a username and password, even to create the wordpress mySQL database, which I was able to do. So then what am I supposed to put for the database username and password in the wp-config.php file? In order to give it something, I entered this in phpMyAdmin:

    GRANT ALL PRIVILEGES ON newwordpressdb.* TO ‘root’@’localhost’ IDENTIFIED BY ‘pass12345’;

    Subsequently any time I try to run the phyMyAdmin or MySQL console, it gives this error:

    “#1045 – Access denied for user ‘root’@’localhost’ (using password: NO) phpMyAdmin tried to connect to the MySQL server, and the server rejected the connection. You should check the host, username and password in your configuration and make sure that they correspond to the information given by the administrator of the MySQL server.”

    In the MySQL console, it doesn’t even give you the opportunity to put in a password – only a username, and so doesn’t let you in there either. And, of course, in phpMyAdmin, it doesn’t ask for either a username or password.

    Thread Starter BobRoberts123

    (@bobroberts123)

    Uninstalled and reinstalled Wamp, and still getting the above error trying to go into MySQL.

Viewing 15 replies - 1 through 15 (of 33 total)
  • The topic ‘How to Copy WordPress Site to Local Test Server’ is closed to new replies.