首页 文章

将Laravel Project上载到Web Server

提问于
浏览
49

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

这是我的Web服务器的结构 - >
WebServer Structure

我是否正确地说我需要将所有laravel文件上传到public_html?

这是我的Laravel项目的目录:

Laravel Project Directory

编辑:我现在已经将所有文件添加到根文件夹中,并将public添加到public_html中,但是我的路线似乎都没有工作 . (它们在localhost上完美运行) . 一切都抛出404

6 回答

  • 40

    不,但你有几个选择:

    最简单的方法是将您拥有的所有文件上传到您所在的目录(即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 以指向正确的公共目录 .

    另一种解决方案,如果您仍然在根目录中,然后编辑路径以正常工作 . 但是,您仍然需要将 public 的内容放在 public_html 中,这次编辑 public_html/index.php 以正确引导应用程序 . 你的文件夹结构会更加整齐(尽管由于更多地混淆了框架的设计结构,可能会有一些令人头疼的路径):

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

    我相信 - 您的Laravel文件/文件夹不应放在根目录中 .

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

    • 在公共html中复制所有文件和文件夹(包括公用文件夹)

    • 复制公用文件夹的所有内容并将其粘贴到文档根目录中(即public_html)

    • 删除公用文件夹

    • 打开bootstrap / paths.php,然后将 'public' => __DIR__.'/../public', 更改为 'public' => __DIR__.'/..',

    • 最后在index.php中,

    Change

    require __DIR __ . '/ .. / bootstrap / autoload.php';

    $ app = require_once __DIR __ . '/ .. / bootstrap / start.php';

    into

    require __DIR __ . '/ bootstrap / autoload.php';

    $ app = require_once __DIR __ . '/ bootstrap / start.php';

    您的Laravel应用程序现在应该可以使用 .

  • 7

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

    Hosting Laravel on shared hosting #1

    Hosting Laravel on shared hosting #2

    如果您想要PHP 5.4将此行添加到您的 .htaccess 文件或致电您的托管服务提供商 .

    AddType application/x-httpd-php54 .php

  • 5

    您的所有Laravel文件都应位于一个位置 . Laravel将其 public 文件夹暴露给服务器 . 该文件夹代表整个应用程序的某种前端控制器 . 根据您的服务器配置,您必须将服务器路径指向该文件夹 . 我可以看到你的照片上有 www 网站 . www 是Unix / Linux机器上的默认根目录 . 最好查看服务器配置并搜索根目录位置 . 正如您所看到的,Laravel已经有一个名为 .htaccess 的文件,其中包含一些现成的Apache配置 .

  • 1

    也有这个问题,并发现最简单的方法是将您的域指向公共文件夹,并以其他方式保留其他所有内容 .

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

  • 1

    在Laravel 5.x中没有 paths.php

    所以你应该编辑 public/index.php 并更改这一行,以便提示你的 bootstrap 目录:

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

    有关更多信息,请阅读this文章 .

相关问题