6

Maybe this is a silly question, but I would like to know how you deal the update of an online website. I'll explain me better.

Suppose there's this website with daily added articles, comments, forum posts and so on. I would like to update the template, but this involves moving modules, changing titles, etc, etc...

And the template must be tested and personalized and this requires days, not hours. So in the meantime the website has changed. I cannot simply back it up locally, do the changes and update files via FTP and the database. I would lose data!

So far I've always done the work "twice": I take a backup, I do the changes and annotate every step I take, then (when I'm satisfied with the local version) I replicate the operation in the online website (hoping to spend the minimum time possible).

Is there a way to improve this procedure and be more productive?
Like a "work in progress" version of the website, better if accessible only to some users and that is kept synchronized with the "stable" version?
Then, the "work in progress" version should be "stabilized" in moments, like with a "one-click" operation.

3 Answers 3

5

If I'm not mistaken, moving changes from your localhost/dev-environment to the live site should be pretty straight forward.

Before doing anything, keep a backup of your site live.


As I'm sure you're aware, all settings (apart from the global config) are stored in the database, so if you've made any HTML changes, simply copy all the directories (administrator, modules, components, etc) to the live server.

Note: DO NOT copy any of the files from the root directory (configuration.php, .htaccess, web.config.txt, etc)


Once you've changed module positions, template settings and so on, export your database from phpMyAdmin, but when exporting, make sure the function to use when dumping is not INSERT, but UPDATE instead.

enter image description here


Then import the database.

1
  • Thank you. This should work, but requires to backup the website locally. Then, I have to work on localhost and I can't present the changes to the customer/teammate easily. Have a "work in progress" version online is useful in my scenario.
    – ufo
    May 17, 2016 at 10:06
4

I haven't try it myself. It's a recent discovery of mine in JED, it is called StageIt and it looks promising. StageIt claims it is the ideal staging environment solution for Joomla, making the headache of site updates and development workflow go away.

http://extensions.joomla.org/extension/stageit

This taken from the extension's description in JED.

Here's how it works

StageIt takes all the drama out of updating Joomla!

Step 1: Create a new staging envinronment, which is perfectly matched to your existing site and sits 'on top' of your site.

Step 2: Make all the changes you like on the staging environment, without any change affecting the live site.

Step 3: If you want to show your client a new feature or some work you've done, so they (or their legal team) can sign off the new content, simply show them the staging environment.

Step 4: When you're happy with the changes, simply click a single 'Sync with Live' button to sync the staging and live sites, and make all your changes live!

What is included?

  • Create a staging environment in seconds
  • Develop on the staging environment with zero risk to your live site
  • Make any changes you like - update extensions, delete content etc.
  • StageIt supports ALL third party extensions
  • Sync the staging environment with the live site at any time
  • Visual button allows you to instantly switch between environments
  • Automatic backups allow you to restore your live site to any sync point
  • Configure to work with a range of servers - even GoDaddy! ...

Note1: I am not affiliate in any way with this extension.
Note2: It is a paid download.

1
  • Seems too beautiful to be true! I'll give a try and let you know if it's what I'm looking for! Thank you.
    – ufo
    May 17, 2016 at 10:11
3

For advanced website staging, you could look into Akeeba UNiTE:

UNiTE is an automated, unattended backup archive restoration tool. It is software written in PHP, designed to restore and customise Joomla! and WordPress websites from ZIP, JPA and JPS files created primarily with the Akeeba Backup or Akeeba Solo software suite. It's main mission is to do so without needing your attention, in a sort of fire-and-forget manner. To this end, it relies on a CRON script running at a predefined interval, allowing UNITE to process new site definitions.

Typically, UNiTE is used for the following tasks:

Provisioning of new Joomla! and WordPress websites. You only need to supply an XML file which describes how the new site will be configured and a backup archive. At the end of the UNiTE run you'll have a configure Joomla! website, ready for use.

Demo sites. Demo sites need to be restored from a known good backup on predefined intervals. Akeeba UNiTE can easily be used for this task.

Dev-to-staging or staging-to-live transfer automation. Some setups require that before anything goes on the live site it should first go through a dev server (where all active development takes place) and a staging server (where user experience tests are conducted) before hitting the live site. UNiTE can be used to automatically backup the dev site and restore to the staging site, or even backup the staging site and restore it to the live site.

It's worth noting that this is not a regular Joomla extension, but a command-line application, and it uses CRON jobs. The documentation contains more details.

1
  • Thank you, but StageIt (look @FFrewin answer) seems better!
    – ufo
    May 17, 2016 at 10:14

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.