cpanel 托管中的 laravel 服务器错误 500

问题描述 投票:0回答:6

我在我的 cpanel 中托管 laravel 5.1,但它总是出现错误。我尝试了每种方法(htaccess、chmod 644 和存储给出或 r+W),但它在我的 cpanel 中不起作用,但是当我从索引中删除以下行时公共文件夹的 .php 它可以访问 index.php 文件:

$kernel = $app->make(Illuminate\Contracts\Http\Kernel::class);

$response = $kernel->handle(
    $request = Illuminate\Http\Request::capture()
);

$response->send();

$kernel->terminate($request, $response);

这样它就可以访问我的文件夹。有谁能够帮助我?会不会是cpanel的php版本导致的?

server laravel-5.1
6个回答
10
投票

将此代码粘贴到将位于公共文件夹中的index.php文件的顶部:

ini_set('display_errors', '1');
ini_set('display_startup_errors', '1');
error_reporting(E_ALL);

然后访问您项目的 URL,您将看到问题,因为哪个 laravel 引发了此错误。


2
投票

对于 Laravel,这些是必需的,请确认这一点

PHP >= 5.5.9
OpenSSL PHP Extension
PDO PHP Extension
Mbstring PHP Extension
Tokenizer PHP Extension

1
投票

如何在任何共享主机上托管 Laravel 5.1.* 应用程序的过程:

  1. 打开 Filezilla 或任何您喜欢的 FTP 客户端。
  2. 登录并进入您的托管帐户的主目录。
  3. 在共享主机帐户主目录中创建名为
    laravel-app
    的目录或任何您想要的内容。
  4. 将除
    public
    目录之外的所有内容从应用程序的根目录复制到新创建的文件夹中。在这种情况下
    laravel-app
  5. 现在将
    public
    目录的内容复制到您的
    public_html
    目录中。
  6. 上传所有内容后,在您喜欢的任何文本编辑器中打开位于
    index.php
    目录中的
    public_html
    文件。

更改以下行:

require __DIR__.'/../bootstrap/autoload.php';

require __DIR__.'/../../laravel-app/bootstrap/autoload.php';

并更改以下行:

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

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

上传前:

请确保您已启用 Laravel 应用程序所需的所有插件。而且您正在使用 PHP >= 5.5.* 。如果您不知道如何查看默认启用了哪些插件。

请按照以下步骤操作:

  1. 从浏览器登录您的 cPanel 帐户。
  2. 向下滚动到底部,他们说选择 PHP 版本。点击它。
  3. 从下拉列表中选择 PHP 5.5.6 或您选择的任何版本,但必须是 PHP >= 5.5.*
  4. 下拉列表下方有一个可以安装的 PHP 扩展列表。您可以保留原样或选择您想要安装的扩展。例如,如果您的应用程序具有文件上传功能,那么您需要通过选中标记该扩展并单击按钮
    fileinfo
    来安装
    Save
    扩展。

完成。您的 Laravel 应用程序位于共享托管帐户上。

您可以访问 yourdomain.com 进行检查

希望这对您有帮助。快乐编码。干杯。


1
投票

谢谢大家..我解决了..在cpanel中有php选择器。所以我将其更改为 5.6 并上传供应商的所有文件夹,而不是授予 ech 文件夹和文件正确的权限..


0
投票

检查以下步骤:

  1. 检查根域或子域上的 .htaccess 文件
  2. 如果将 public 文件移动到 root => 将 index.php 内容 /../ 更改为 /
  3. 检查 php 版本(在 loravel 5+ 上我使用 php7.2 并解决了问题)
  4. 检查.env文件

0
投票

按照上述答案之一,我在公共文件夹的index.php文件的开头编写了这段代码(

public/index.php
):

ini_set('display_errors', '1');
ini_set('display_startup_errors', '1');
error_reporting(E_ALL);

重新加载网站后,我发现问题来自供应商文件夹。意味着 Composer 文件夹尚未更新。我在 CPANEL 的Terminal中运行了这些命令:

cd laravelfolder //public_html or your code root directory
composer update
© www.soinside.com 2019 - 2024. All rights reserved.