Incrementally updating a remote joomla web site? - joomla

I have a Joomla 1.5 site on my localhost. It's hosted on a public hosting server as well.
I was wondering what is the best way to do incremental updates to the site? I mean I don't want to update the whole site, if I just changed one source file (html, php, images, etc) or made changes to the database. I understand, to be safe I'd have to update the database every time (export from local and import in remote), but I'm sure we can avoid unnecessary uploads of unchanged files.
I've seen https://www.akeebabackup.com and it doesn't offer what I need. One option is to use an ftp client (like Filezilla) which does folder synchronizations, but I'm not sure they work very well.

For database you could use master-master replication, which is quite easy to set up but you need GRANT privileges in MySQL, which most likely won't be possible on a shared hosting. I'd also suggest connection both machines via VPN to make it more secure.
The other easy way to sync databases is "Synchronisation" tool if you're using phpmyadmin.
If not, look at any MySQL planning software like MySQL Workbench, which also has this feature built-in.
You didn't tell what privileges you have to access the public hosting server.
If you're an admin you can have SVN admin installed and configured to sync files with your local data.
You can also have a GIT repository to do exactly the same, or LDAP set-up via VPN to keep your files in sync.
If you're not an admin just see or ask your hosting company what's of the above is available, I'm sure they'll be able to help you. Nowadays, hosting companies have SVN or GIT installed, which should be what you need.
I often use SVN tools built-in PHP Designer 8, but you can have SVN, GIT and many more also in NetBeans.

Related

Transfer a Joomla website to another server

We had a company that developed a website for us, for a large amount of money. When the site was done we wanted to put it up on GoDaddy's hosting and the company said that it wouldn't work on GoDaddy and that we would have to leave it on their hosting servers at a cost of $300/mo, they say that because they have custom-built software that allows the customer to edit the website, that looks just like Joomla's editor. I am about 90% sure that the website was built with Joomla. I have built many websites, none with Joomla, so my question is, I want them to just give us the website files and database that we paid for, so we can go to another hosting company with our website that is a lot cheaper $25/mo. So what files do I ask the company for that developed the website to make sure we have all the correct files to transfer the website to another hosting company?
They are being very difficult to work with so I just want to make sure I know what files to ask for.
Any help on this would be greatly appreciated.
A Joomla install consists of files and the database so you need to ask for the files (probably as a zip file or similar) and an export of the database.
You can then restore the files and database on the destination server.
You will need to update the configuration.php file with the new database host, database name, database user and database password once you have restored the files to the destination host.
Alternatively you could ask for an Akeeba Backup file if they are using Akeeba Backup (which most Joomla website owners do). Akeeba backups up files and the database into one convenient compressed backup file which makes it easy to restore to the destination using the free Kickstart install tool.
Browsing certain urls can help verify if they are using Joomla. For example:
/administrator/manifests/files/joomla.xml
/index.php?option=com_content
/index.php?option=com_users&view=login
/index.php?option=com_search&view=search

SSH Command in my FTP dev folder?

Intro:
I have 2 folder on my ftp, one for my main website and one for the dev website.
Question:
If I run a ssh command into my magentoroot\dev\shell folder, should I worry about consequences on my main website?
thx
Not really. Unless the two site use the same database
Please, note in case you need to work on development website. You need a separate database and file system. If database in common there must be possibility of configuration change while working in admin or while performing operations and installation of new extension. So, always try different database for staging and production website

Download large files using SFTPor HTTPS

We have an application that generate many files with size of (2GB-10GB) we want to save these files in a server and allow specific customers to download them. The system will delete these files in 30 days (we have around 30 customers) .
From your experience which download method should we use SFTP or HTTPS and why?
And do you have any suggestion how to grantee download Security?
Depends on who downloads what.
If it is customers downloading the files, then make things as easy as possible: offer https and advise one or two download managers you have tested that allow to pickup a broken download again.
For internal use (backup and the like) I strongly suggest to use rsync via ssh. Much easier to use, since you can do incremental downloads, so only those files are downloaded that do not exist locally or have changed remotely. That means you can simply trigger synchronization on a daily bases and the files will comulate locally over time just as they are created remotely.
When using sftp or rsync via ssh: the ssh server should be configured not to accept passwords but only keys for authentication as this is more secure.

Moving one add on website to a new cPanel host

For several years now I have freely hosted several local organizations web pages at no cost. One of those organizations wishes to move to their own server that they manage with their own server provider (alas, not A Small Orange--a little too expensive for them).
They have
a couple add on domains/websites
advanced DNS records with Google Apps
several mailing lists
a database or two
and of course their hosting directory
I was just wondering if there is a way to just export that stuff, so it can be imported in another cPanel?
OPTION ONE: One by one move all the stuff to the new host. Create the mailing lists, manually import the databases, set up the DNSs, and upload the files.
OPTION TWO: I could export the entire site, download the entire site, go to the new provider and upload it, and then delete all my content.
OPTION THREE: Is it possible to export their parts of the site, and import that to the other hosts cPanel?
Or another option all together? No email, and I don't even need the hosting history to be there (but it would be nice).
if you are moving from cpanel hosting to another cpanel hosting then just create a full backup of the website that you want to move from WHM which will backed up emails , databases , SSLs , sub domains , addon domains , everything in .tar.gz file format. Download that back up file then upload it to the new servers and restore it from WHM from Restore backup option in WHM.
OR
You can do live migration from WHM itself with Copy Accounts function from WHM which will be easier option to move the websites and the stuff.
However after migration you will need to make sure that you have assigned dedicated IPs , have configured the name servers properly ( the DNS part ) etc..
I would suggest to hire an expert to do this migration in order to avoid any possible issues.

Setting up a collaborative environment for web application development

My office is growing and ive been tasked to build out the IT for our web development.
Whats the best tool/setup for doing web development in a group setting? The requirements are a centralized code repository, a location to test development code on, and finally a way to push tagged code out to a staging server. What im thinking is svn/redmine for code repo, each user has an account on a central development machine to allow for ssh access(eclipse over ssh) and their own virtual host on the dev server which gives everyone a centralized development sandbox. Code is written and tested on this dev box then checked back into svn and later tagged and pushed out to the staging server. Yeah? Thoughts comments or recommendations?
*Also, in a dev environment what is the best way to handle databases? Is it wise to pull from the production database? Also should each developer have his/her own db or work off a master db?
**We are building a magento application and also have some custom backoffice tools that run on cakePHP.
Although this subject is off-topic in StackOverflow and flagged so then you need to concentrate on following areas:
VERSION-CONTROL
GIT has all the glory and you don't need your own box for this as https://bitbucket.org/ offers unlimited data and private/public repos and you can set your codebase there. http://github.com is also powerful and de facto most popular version-control oriented tool out there although it comes for a small price
so your master branches live in your version control and your devs will checkout frpom there and commit to it as well
your deployment tools will deploy data to your live and staging environments from your master
ENVIRONMENTS
usually three are used LIVE, STAGE, DEV
LIVE is well live and only approved code gets deployed there
STAGE is pre-live environment and should be exact replica environment according to LIVE so all things can be tested there by merchant
DEV is cool to have exact replica but can as well be on developers local env and is ment for loose testing and experimenting
DATABASES AND DEPLOYMENT
mysql databases are pain in the ass to sync so you better have a script for it that syncs from live to others and prevent syncing from other environments to LIVE. This limitation also requires that all the configuration and content will be added from LIVE only and only then synced down the line. Every change to schema or permanent setting should be handled by update scripts (As we are talking MAGENTO CE , MAGENTO EE has migration built in)
for deployment I also suggest you to build a fabric or capistrano script that resets dev and staging environments, handles database reset and pull from LIVE DB, and imports code from central repository.
it's also a good idea to target the following everyday tasks:
clients needs to reset the stage for it's tests
project manager, developer or testers need to test so spawning a test clone should be oneclick action (take current db and code and make it live in some subfolder for specific test only) as well as deleting the test
3rd party devs might need access to specific test or dev environment (this is actual with magento as in average there are at least 10 external extensions installed in every magento store)

Resources