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

Deploy Laravel 5 using only FTP in a shared hosting

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

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

我只能通过 ftp 访问,并且只能访问名为 www.mycustomerweb.com 的文件夹。这意味着我无法在 www.mycustomerweb.com 文件夹的同一级别创建目录。只在里面(我觉得叫shared hosting)。

一年前,我这样部署了一个用Laravel 4做的项目:

  1. 删除了 public 文件夹,将其内容移动到根文件夹并更新 index.php 和 bootstrap.php
  2. 在本地主机中完成整个项目(Xampp)
  3. 已通过 ftp.
  4. 将所有文件上传到 www.myclientweb.com

我的问题是:

  1. 我在 laravel 4 项目上做的一切都好吗?我可能陷入了安全问题(我的意思是网站安全吗)?

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

现在,我已经在本地主机上设置了 Laravel 5 的全新安装,然后我通过 ftp:

将所有文件上传到 www.myclientweb.com 文件夹

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

我在网络和 Whosebug 上搜索了很长时间,但没有成功。

非常感谢任何帮助。

感谢阅读。

L4 和 L5 没有区别,所以做与 L4 相同的事情。

如果您正在尝试 运行 Laravel 5.1 进入共享主机 space 或者您正在尝试将 laravel 5/5.1 放入共享主机上的子目录托管以便您可以像这样访问它:

http://mywebsite.com/mylaravel/

所以这个答案是给你的,首先确保你满足

Laravel 5.1 要求:

- PHP 5.5
- PHP extension Mcrypt
- PHP extension Mbstring
- PHP extension OpenSSL

这里有两个教程供您参考:

Link 1

Link 2

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


上一个答案:
那些几乎不检查评论的人, @Andrew F. 已经给出了答案。
但他错过了一些其他文件,如 composer 和 package.
格式化的答案是:

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

  1. 我创建了一个名为 "protected"
  2. 的新文件夹
  3. 将 "public" 文件夹以外的所有文件夹移至 "protected" 文件夹
  4. 将 "public" 文件夹内的所有内容移动到根目录
  5. 在根文件夹(来自 public 文件夹)中编辑 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';