上传Laravel项目到Web服务器上

我正尝试将我的Laravel项目上传到我的Web服务器上,但是我过去的两次尝试都没有成功。 我相信我没有上传文件到正确的位置。

这是我的networking服务器的结构 – > WebServer结构

我是否正确地说我需要将所有的laravelfile upload到public_html?

这是我的Laravel项目的目录:

Laravel项目目录

编辑:我现在已经将所有文件添加到根文件夹,并公开到public_html,但是我的路线似乎没有任何工作。 (他们在本地主机上完美工作)。 一切都抛出404

不,但你有几个select:

最简单的方法是把你所有的file upload到你所在的目录(比如cPanel用户主目录),然后把public的内容放到public_html中。 这样你的目录结构将是这样的(稍微凌乱,但它的工作原理):

/ .composer/ .cpanel/ ... app/ <- your laravel app directory etc/ bootstrap/ <- your laravel bootstrap directory mail/ public_html/ <- your laravel public directory vendor/ artisan <- your project's root files 

您可能还需要编辑bootstrap/paths.php来指向正确的公共目录。

另一个解决scheme是,如果你不喜欢把所有这些文件放在那个“根目录”目录下,就把它们放到自己的根目录下(也许是'laravel'),然后编辑这个path来正常工作。 不过,您仍然需要将public的内容放在public_html ,而这次编辑public_html/index.php以正确引导应用程序。 这样你的文件夹结构将会变得更加整洁(尽pipe可能会因为与框架的devise结构混淆而导致一些头痛的问题):

 / .composer/ .cpanel/ ... etc/ laravel/ <- a directory containing all your project files except public app/ bootstrap/ vendor/ artisan mail/ public_html/ <- your laravel public directory 

如果您尝试在共享主机上托pipe您的Laravel应用程序,这可能对您有所帮助。

在共享托pipe#1上托pipeLaravel

在共享主机#2上托pipeLaravel

如果你想PHP 5.4添加这行到您的.htaccess文件或调用您的托pipe服务提供商。

AddType application/x-httpd-php54 .php

我相信 – 您的Laravel文件/文件夹不应放置在根目录中。

例如,如果你的域被指向public_html目录,那么所有的内容应该放在该目录中。 怎么样 ? 让我告诉你

  1. 复制public html中的所有文件和文件夹(包括公共文件夹)
  2. 复制公用文件夹的所有内容,并将其粘贴到文档根目录(即public_html)
  3. 删除公用文件夹
  4. 打开你的bootstrap / paths.php,然后把'public' => __DIR__.'/../public',改为'public' => __DIR__.'/..',

  5. 最后在index.php中,

    更改

 require __DIR__.'/../bootstrap/autoload.php'; $app = require_once __DIR__.'/../bootstrap/start.php'; 

 require __DIR__.'/bootstrap/autoload.php'; $app = require_once __DIR__.'/bootstrap/start.php'; 

你的Laravel应用程序现在应该工作。

你所有的Laravel文件应该在一个位置。 Laravel将其公用文件夹暴露给服务器。 该文件夹代表整个应用程序的某种前端控制器。 根据您的服务器configuration,您必须将您的服务器path指向该文件夹。 正如我所看到的,你的照片上有www网站。 www是Unix / Linux机器的默认根目录。 最好看看你的服务器configuration和search根目录的位置。 正如你所看到的,Laravel已经有了一些叫做.htaccess的文件,并且有一些准备好的Apacheconfiguration。

也有这个问题,并发现最简单的方法是将您的域指向公用文件夹,并保持其他所有方式。

请确保使用正确的PHP版本。 节省自己一些压力:)

在Laravel 5.x中没有paths.php

所以你应该编辑public/index.php并改变这些行以便bootstrap到你的bootstrap目录:

 require __DIR__.'/../bootstrap/autoload.php'; $app = require_once __DIR__.'/../bootstrap/app.php'; 

欲了解更多信息,你可以阅读这篇文章。