Deploy Laravel 5 using only FTP in a shared hosting

Andrew F. picture Andrew F. · Apr 2, 2015 · Viewed 28.4k times · Source

I need to deploy a laravel 5 project to a client host.

The plan of my client is basic hosting: Linux + MySql without cpanel or similar (i.e. no admin panel).

I have access only via ftp and only to a folder named www.mycustomerweb.com. It means I can not create a directory at the same level of www.mycustomerweb.com folder. Only inside it (I think it is called shared hosting).

One year ago, I deployed a project made with Laravel 4 this way:

  1. got rid of public folder moving its content to root folder and updating index.php and bootstrap.php
  2. finished whole project in localhost (with Xampp)
  3. uploaded all files to www.myclientweb.com via ftp.

My questions are:

  1. Did I do everything all right with laravel 4 project? May I have fallen into security issues (I mean, is the site safe)?

  2. How do I deploy a laravel 5 project to the same site? In Laravel 5 I can not get rid of public folder as I did with Laravel 4.

Right now, I have set up a fresh installation of Laravel 5 on localhost and then I have uploaded all files to www.myclientweb.com folder via ftp:

Surely this is not the right way...

I've had a long searching through the web and Stackoverflow with no luck.

Really apprecite any help.

Thanks for reading.

Answer

Agung Kessawa picture Agung Kessawa · Nov 4, 2015
  1. I create a new folder named "protected"
  2. Move all except "public" folder into "protected" folder
  3. Move all inside "public" folder to root
  4. Edit index.php in root folder(from public folder),

edit require __DIR__.'/../bootstrap/autoload.php'; into require __DIR__.'/protected/bootstrap/autoload.php';

also edit $app = require_once __DIR__.'/../bootstrap/app.php'; into $app = require_once __DIR__.'/protected/bootstrap/app.php';