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


Deploy Laravel 5 using only FTP in a shared hosting

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

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

我只能通过ftp访问,并且只能访问名为www.mycustomerweb.com的文件夹。这意味着我不能创建与www.mycustomer web.com文件夹级别相同的目录。只在里面(我认为这叫做共享托管)。

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

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

我的问题是:

  1. 我在laravel 4项目上做得好吗?我可能遇到了安全问题(我的意思是,网站安全吗)?

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

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

  • 我可以在http://www.myclientweb.com/public.
  • 我在看不到任何东西http://www.myclientweb.com/
  • 我也可以在http://www.myclientweb.com/.env

这肯定不是正确的方式。。。

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

真的很感激任何帮助。

感谢阅读。

  1. 我创建了一个名为"protected"的新文件夹
  2. 将除"公用"文件夹外的所有文件夹移到"受保护"文件夹中
  3. 将"公用"文件夹中的所有内容移动到根目录
  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';

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


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

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

L4和L5之间没有区别,所以执行与L4相同的操作。

如果您试图将Laravel 5.1运行到共享主机空间中,或者您试图将您的Laravel 5/5.1放入共享主机上的子目录中,这样您就可以访问它:

http://mywebsite.com/mylaravel/

所以这个答案是给你的,首先要确保你遇到

Laravel 5.1要求:

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

这里有两个教程给你:

链路1

链路2