仅在共享主机中使用FTP部署Laravel 5

And*_* F. 18 php ftp shared-hosting laravel laravel-5

我需要将laravel 5项目部署到客户端主机.

我的客户端的计划是基本托管:没有cpanel或类似的Linux + MySql(即没有管理面板).

我只能通过ftp访问,只能访问名为www.mycustomerweb.com的文件夹.这意味着我无法在www.mycustomerweb.com文件夹的同一级别创建目录.只在它里面(我认为它被称为共享主机).

一年前,我用这种方式部署了一个用Laravel 4制作的项目:

  1. 摆脱公共文件夹将其内容移动到根文件夹并更新index.php和bootstrap.php
  2. 在localhost中完成整个项目(使用Xampp)
  3. 通过ftp将所有文件上传到www.myclientweb.com.

我的问题是:

  1. 我用laravel 4项目做了一切吗?我是否已陷入安全问题(我的意思是,网站是否安全)?

  2. 如何将laravel 5项目部署到同一站点?在Laravel 5中,我无法像Laravel 4那样摆脱公共文件夹.

现在,我在localhost上设置了Laravel 5的全新安装,然后我通过ftp将所有文件上传到www.myclientweb.com文件夹:

当然这不是正确的方法......

我已经在网上和Stackoverflow上进行了长时间的搜索而没有运气.

真的很感激任何帮助.

谢谢阅读.

小智 10

  1. 我创建了一个名为"protected"的新文件夹
  2. 将"public"文件夹以外的所有文件夹移动到"protected"文件夹中
  3. 将"public"文件夹中的所有内容移动到root
  4. 在根文件夹中编辑index.php(从公共文件夹),

编辑require __DIR__.'/../bootstrap/autoload.php';require __DIR__.'/protected/bootstrap/autoload.php';

也编辑$app = require_once __DIR__.'/../bootstrap/app.php';$app = require_once __DIR__.'/protected/bootstrap/app.php';


ssi*_*nik 8

更新
这是一个冒险的过程.通过使用此功能,您可以为恶意用户提供查找错误的权限.比如, http://project-url/storage/logs/laravel.log仍然是开放的.


上一个答案:
那些几乎没有检查评论的人,@安德鲁F.已经给出了答案.
但他错过了其他一些文件,如作曲家和包.
格式化答案是:

  1. 将公共中的每个文件移动到父文件夹.
  2. 更新index.php中的路径.
  3. 将以下行添加到.htaccess:
    RewriteRule ^(server\.php|gulpfile\.js|\.env|composer.*|package.*) - [F,L,NC]


小智 2

L4 和 L5 之间没有区别,因此请执行与 L4 相同的操作。