繁体   English   中英

laravel 5.2内部服务器错误

[英]laravel 5.2 internal server error

我的laravel项目在artisan serve在localhost工作良好,值得推荐。 现在,我正在尝试将其托管在虚拟主机上。 我上传我的项目下public_html复制所有文件public文件夹我还编辑app.php 'debug' => env('APP_DEBUG', true),用于显示错误。

我编辑index.php

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

但它仍会返回500 Internal server error。

我也尝试了另一种方式,上传我的项目到根目录以外public文件夹和上传public文件夹到public_html目录。 我将index.php编辑为

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

我找不到我的代码有什么问题。 我如何将laravel 5.2项目部署到虚拟主机中?

否否否。您需要对第二个选项进行一些改进。 让我向您解释。 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 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

就是这样,您不需要黑客入侵任何项目的文件,例如index.php,这是一个坏习惯。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM