PHP + MySQL Deployment

I'm just trying to find an easier way to deploy the site I'm working on. I work alone with a test production server, and now deploying means copying a subset of the database files and data to my computer and uploading it to the prod site. I am sure that there is a simple synchronization tool there, but so far I have not been able to find anything.

I really liked the application that I can run locally (on Windows) or something that I could install on my server in order to be able to deploy with one click. Any suggestions?

Thanks! Godwin

Edit
I decided now to go with GoodSync and Toad . Thanks for the suggestions.

+4
source share
7 answers

I use GoodSync http://www.goodsync.com/ for this kind of thing. This is really good. Works on Windows, can be synchronized between any combination of local (S) FTP files, windows, Linux shared lines, etc.

Then create a scheduled task / cronjob to start exporting the database to a synchronized folder and ask for import at the other end. Obviously, this process is one way.

+2
source

man scp

SCP (1) BSD General Commands Guide SCP (1)

NAME scp - safe copy (remote file copy program)

SYNTAX scp [-1246BCpqrv] [-c cipher] [-f ssh_config] [-i identity_file] [-l limit] [-o ssh_option] [-P port] [-S program] [[user @] host1:] file1 [...] [[user @] host2:] file2

DESCRIPTION scp copies files between hosts on a network. It uses ssh (1) to transfer data and uses the same authentication and provides the same security as ssh (1). Unlike rcp (1), scp will ask for passwords or passphrases if they are needed for authentication.

Any file name may contain a host and user specification to indicate that the file is to be copied to/from that host. Copies between two remote hosts are permitted. When copying a source file to a target file which already exists, scp will replace the contents of the target file (keeping the inode). If the target file does not yet exist, an empty file with the target file name is created, then filled with the source file contents. No attempt is made at "near-atomic" transfer using temporary files. The options are as follows: -1 Forces scp to use protocol 1. -2 Forces scp to use protocol 2. 

...

+4
source

http://www.phing.info/docs/guide/stable/

PHing is an automated build system created for PHP. Works with GIT, SVN, PHPUnit, etc.

You basically create XML files that give PHing instructions on what to do. Allows you to run test packages along with the creation of the assembly, create several different versions at once, copy files, as well as db and a bunch of other interesting functions.

In addition, it is independent of open and platform independent.

+2
source

We are using an FTP synchronizer, which seems to work very well. I do not know which of the good free people.

Example: http://www.ftpsynchronizer.com/

+1
source

What do you use for version control? Some tools, such as Git and SVN, have ready-made methods for this kind of thing. See here for a quick git solution.

+1
source

Depends on what type of server you are using, but you can run SVN (Subversion). There is a plugin for Eclipse, Aptana and Zend Studio if you use this for development.

Essentially, you can have a development repository that resides on the server. You will pull your code into your local environment and return it after the changes. You can then set up another repository, which is your live data or products that are associated with your development repository.

If you want to update the data in real time, you just update it, so if you encounter any problems, you can cancel this code without having to roll back the development code. Once you succeed, you can begin to fork and tag your projects.

I personally use SVN and Git, but I prefer Git because it works much better. Although, if you use Windows, the command line tools just don't match linux.

+1
source

I would take care of advice on Git / SVN, but I would put a strong version for Git through GitHub . Use GitHub as your "central" Git repository. Your local Git repository will click on GitHub and your production server will pull out GitHub.

There is some overhead for learning Git / GitHub, but in fact, in the described situation (one engineer and two servers), Git is no more complicated than SVN (or CVS or something else).

+1
source

All Articles