After trying so many methods, I have managed to deploy a Laravel 5.1 application to a shared hosting. Hope this will save you some time. The following steps are tried and tested in 1and1 dedicated hosting server.

You should have SSH access to the server to install composer and some artisan commands.

Installing composer:

Connect to your server via ssh.

1and1 instances have multiple versions of php installed. Laravel needs at least php version 5.5.29. So you can check the available php versions. php5.5 should be good enough for rest of the steps.

Now you can see a file composer.phar downloaded to the current directory. This should be used for all composer activities.

Upload the source code (or clone from repository) to this directory. (Don’t forget to modify your .env file)
Edit the artisan file and scripts part of composer.json file to change all references of php to php5.5