laravel 5.2内部服务器错误

时间:2016-03-23 12:42:15

标签: php laravel-5 web-hosting laravel-5.2 shared-hosting

我的laravel项目在@Html.ActionLink推荐的localhost中工作得很好。 现在我正试图在网络主机上托管它。 我在artisan serve下上传了我的项目并复制了public_html文件夹中的所有文件,我还编辑了public app.php以显示错误。

我编辑index.php

'debug' => env('APP_DEBUG', true),

但它仍然会返回500内部服务器错误。

我也尝试另一种方式, 将我的项目上传到除require __DIR__.'/bootstrap/autoload.php'; $app = require_once __DIR__.'/bootstrap/app.php'; 文件夹以外的根目录,并将public文件夹上传到public目录。 我将public_html编辑为

index.php

我找不到我的代码有什么问题。 我如何将我的laravel 5.2项目部署到网络托管中。?

1 个答案:

答案 0 :(得分:0)

否否。您需要通过一些改进来实现第二种选择。让我向你解释一下。 laravel应用程序如下所示:

app/
config/
public/
public/index.php
.env
composer.json
artisan

右?好的,现在网络主机的结构如下:

/home/user/
/home/user/public_html/

但上面的结构不符合我们的需求,因为public/文件夹应该被访问而不是public_html/。所以..第一步是上传您的项目,比如说:

/home/user/home/project/app/
/home/user/project/config/
/home/user/project/.env
/home/user/project/composer.json
/home/user/project/public/index.php

下一步是决定您是希望将项目作为主域还是子域。

  1. 如果您的laravel项目将作为主域名,请编辑apache的配置文件httpd.conf并设置以下规则:

    DocumentRoot" / home / user / project / public" ...

  2. 如果您希望将项目作为子域投影,只需编辑apache的配置文件httpd.conf并添加如下虚拟服务器:

    Listen 80
    <VirtualHost *:80>
        DocumentRoot "/home/user//project/public"
        ServerName my-project.example.com
    
        # Other directives here
    </VirtualHost> 
    

    使用此指令,您可以告诉apache Hey! when people visits my-project.example.com show them the content of my site under /home/user/site/public

      

    如果您使用的是cpanel,只需创建一个子域并将其指向/home/user/site/public

  3. 就是这样,你不需要破解像index.php这样的任何项目文件,这是一种不好的做法。