簡體   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