So I started using Git together with this workflow to make a personal website (mostly for testing and to learn Git) and I am developing it locally on my laptop using Xampp.
But now I would like to make this website public and upload it to my webserver. Problem is, I use a shared hosting plan which means I only have FTP access to my website directory. Can't use SSH or install Git or anything..
I would like to deploy the website and any updates to that webserver, but I was wondering if that was possible with Git with only FTP access? And if not, what would be an advisable way to update my website? Manually drag an dropping files through Filezilla can get a bit tedious.
If you have no SSH access to the remote server and the hosting provider doesn't offer a git deploy feature, you won't be able to deploy directly using git.
However, it's always a good idea to track your source code regardless the remote options.
In your case, a good alternative to automate the release process would be to create a simple deploy script in your favorite programming language (Ruby, Python, Bash...) that loads the list of changed files from your git repository and performs an upload via FTP of these files.
A simple search for git-ftp reveals that there are already two projects that seems to do what I suggested:
- ezyang/git-ftp
- git-ftp/git-ftp
If you are in a shared hosting plan, its not a good idea to host your own git server as you'll have both space and bandwidth limitations. You can look out for other options such as github or if you want to have a private hosting, there is bitbucket
I also have heard/read (but not yet tried) that git availability on shared hosts is resource-intensive and so the admins shy away from allowing...
But in case you do want to try...
http://joemaller.com/908/how-to-install-git-on-a-shared-host/#hosting
Maybe think about a different hosting set up?
- On a VPS you have more freedom but you need to set up everything yourself.
- On a cloud PaaS you will get great technology but pay a little more.
- As mentioned above: A private repo hoster with ftp deployment option might also work.
For me, best productivity is most important. Compare costs of web hosting with costs for web development.
If git is installed on the server (e.g <?php $last_line = system('git --version', $retval); ?>
), but you don't have SSH access, perhaps try php-git-bundle.
This question may be old but there is a shared web hosting which offers git deployment option and SSH access to git pull/push etc: githoster.com
Or there are some scripts you can search in google which will link your github account to your host with git hooks.