Jump to content

Migrating ProcessWire from localhost to web host


tinacious
 Share

Recommended Posts

Hello everyone!

I'm just about finished developing my site on my localhost (MAMP) with ProcessWire and I'm wondering what I need to do to migrate my site off my local server onto my hosted server. I want to make sure I know all the steps before I start in case I miss something.

The database name has changed as the server automatically names databases and users—they differ from ones I've originally created—so I'll need to change any instances of the database name and user. I'm guessing I modify the config.php file to match the new credentials. Is that it? Are there anymore instances I need to worry about, e.g. in the SQL file?

Other than modifying the config.php file, re-uploading all the files and importing the SQL file, is there anything that I'm missing?

From what I've read in other posts, it seems that migrating ProcessWire should be easier than WordPress. I just wanted to confirm steps before I start in case I run into problems later on for doing it wrong now.

Thank you for your help!

Tina

  • Like 2
Link to comment
Share on other sites

Hi Tina,

Your steps cover most of the process.

A few notes:

  1. Make sure that the files/folders in the assets folder are writable
  2. Make sure to copy the the .htaccess file to the root of your website (some FTP programs hide this file by default)
  3. I prefer to delete the contents of the /site/assets/cache folder, but I am not sure if it's needed. You can do this before uploading the site, just to safe time.
  4. If you are going to use a new sql database, you can change the name and the user in the site/config.php file.
    For future use, for example if you want to copy the production database to your local mamp installation, make sure you add "drop tables" to your export, otherwise you will get errors about existing tables.

That's all I can think of now. And if something should go wrong.... these forums are here to help you. 8)

/Jasper

  • Like 6
Link to comment
Share on other sites

I've found the Profile Exporter module a nice way to move sites between servers (like from local to web host).

You create the export profile using the module, copy the files to the new server, then go through the PW install process again. It will check all the permissions and install into an empty database you define. No need to mess with any SQL import / export.

https://github.com/ryancramerdesign/ProcessExportProfile

  • Like 5
Link to comment
Share on other sites

I actually am so lazy I have following in my config.php:

switch ($_SERVER['HTTP_HOST']){
case 'www.domain.com': case 'domain.com':
	define('DEV_ENVIROMENT', 'LIVE'); break;
case 'beta.domain.com': case 'staging.domain.com':
	define('DEV_ENVIROMENT', 'STAGING'); break;
case 'www.domain.local': case 'domain.local': case '10.0.2.2': default:
	define('DEV_ENVIROMENT','LOCALHOST'); break;
}

on the top, and then on the bottom I have groups of configuration from the original generated config.php (well, one is generated, rest is copy-paste-change) in ifs:

if ('LOCALHOST' === DEV_ENVIROMENT):

This way, I only ddeploy database & code and everything is running like nothing ever changed :3

Of course, deployment strategies differ, when you need to sync data back and forth-for instance, on this one system I prepare and test any new stuff (even in db), import live (changed db) and recreate the db part of the new stuff (already programmed and tested) and push it back to production (or staging).

Edited by adamkiss
Note: the '10.0.2.2' is localhost from inside of VirtualBox :)
  • Like 3
Link to comment
Share on other sites

  • 2 months later...

Thanks for the question @tinacious and answers @all, it's a reminder for me to do this stuff before I go live, can't have too many of them...

Thanks for the list @formmailer, the only two I would add are:

  • don't forget that you can have two config files, one to control your local (MAMP XAMP etc) environment (inc' db credentials etc) and another for the live/remote, see Maintaining a separate development configuration file. This is not really a thing to do at go-live time, but seemed worth noting in this context
  • once you have two config files, for your local file only, enable "$config->debug = true;" — I have just started doing this and already it uncovered something slightly dirty in my PHP for me to tidy up.

This ability to maintain local and remote configs is for me yet another differentiator for PW where something small yet really useful in the real-world has made it into production, a testament to the thought and care gone in to this product.

PS: UPDATE: I just remembered that assuming you use the above dual config files setup you need to configure your FTP client to not transfer a file called config-dev.php or the remote env' thinks it is a dev env ;) I just tripped myself over with that.

  • Like 4
Link to comment
Share on other sites

  • 3 weeks later...

@tinacious [i'm not sure this explains anything you don't already know but]: I still need to export/import dbs (assuming I am developing locally then moving to a live host) it's just that when FTP up files as long as I don't include config-dev.php (I keep that local only) then the remote db credentials etc work immediately without having to go and edit a config file as the local settings are overridden by config-dev.php and the remote ones are setup in config.php.

Link to comment
Share on other sites

  • 1 year later...

Thanks Tina for this post / question. I've used the Export Profile Module before, which is easy to use. Unfortunately it didn't export the roles, users, etc. This time i simply copied the files, exported + re-imported the databases into the new server, changed some permissions and the config file and that was it. Really mirrored my development site.

Although i still would prefer using a module that does all the work if possible.

  • Like 2
Link to comment
Share on other sites

@Alxndre': as far as I know, the (old) SiteExport-Profile in the modules directory still works with PW 2.4.0, but only for sites that do not use multilanguage fields. (and it does not export users / roles )

Link to comment
Share on other sites

  • 6 years later...
On 3/19/2012 at 2:15 AM, Michael Murphy said:

I've found the Profile Exporter module a nice way to move sites between servers (like from local to web host).

You create the export profile using the module, copy the files to the new server, then go through the PW install process again. It will check all the permissions and install into an empty database you define. No need to mess with any SQL import / export.

https://github.com/ryancramerdesign/ProcessExportProfile

I was using this  method very recently, its very easy method to migrate from/to live + server. But recently, this method started to show some error, I posed a query here

Is it possible, because of the latest version, this module no longer works ? 

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...