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

2022-08-30 21:10:30

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

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

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

一年前,我部署了一个使用Laravel 4制作的项目:

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

我的问题是:

  1. 我在 laravel 4 项目中做完了吗?我可能陷入了安全问题(我的意思是,该网站是否安全)?

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

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

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

我在网络和Stackoverflow上搜索了很长时间,但没有运气。

真的很了解任何帮助。

感谢您的阅读。


答案 1
  1. 我创建了一个名为“受保护”的新文件夹
  2. 将除“公共”文件夹之外的所有文件夹都移动到“受保护”文件夹中
  3. 将“公共”文件夹中的所有内容移动到根目录
  4. 编辑根文件夹中的索引.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';


答案 2

更新
这是一个有风险的过程。通过使用此功能,您可以授予恶意用户查找 Bug 的权限。就像,http://project-url/storage/logs/laravel.log 仍然开放。


以前的答案:
那些几乎不检查评论的人,@Andrew F.已经给出了答案。
但他错过了其他一些文件,如作曲家和包。
格式化的答案是:

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

推荐