如何将 Laravel 项目部署到共享托管服务器:500 内部服务器错误

时间:2021-04-23 15:35:12

标签: laravel server

我在将 Laravel 部署到共享托管服务器时遇到问题。

这是目录在服务器中的样子。

|-Laravel(contents of Laravel project folders and files except public folder)  
|
|-public_html  
       |  
       |-example.com(default subfolder))  
             |  
             |-contents of Laravel public folder

我在 public_html 文件夹所在的同一级别创建了一个名为“Laravel”的文件夹,并将所有 Laravel 项目文件夹和文件(公共文件夹除外)放入其中。然后我把 public 文件夹中的所有东西都放在 public_html 的子文件夹中。

接下来我像图片中一样更改了 index.php 文件。 index.php

我也更改了 .env 文件(APP_ENV=production 和 APP_URL)。

此时,我认为我应该能够在访问 http://www.example.com/ 时看到一些内容,但我收到了 500 内部服务器错误。

我的 Laravel 版本是 7.15.0。

如果您能告诉我我做错了什么或我应该做什么,我将不胜感激。任何帮助将不胜感激,因为我尝试了多种方法但没有成功。

提前致谢。

2 个答案:

答案 0 :(得分:0)

在 index.php 文件中,在定义 $app 之后,添加以下行

$app->bind('path.public`, function() {
   return __DIR__;
})

答案 1 :(得分:0)

通常,在共享主机中,您必须将 Laravel 项目的 public 目录符号链接为服务器中的 public_html

您可以将项目部署到服务器中的任何文件夹,包括公共文件夹。然后只需使用 public_html linux 命令将公共目录符号链接为 ln -s

ln -s <PATH TO THE ORIGINAL PUBLIC FOLDER> <PATH TO public_html/example.com>
<块引用>

请注意,在创建符号链接之前,您应该 rm -rf public_html/example.com 目录