部署laravel项目到Cpanel时出现404错误如何解决?

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

我正在尝试将我的 Laravel(Laravel Framework 7.28.3)部署到 Cpanel,但出现 404 错误。 我将项目上传到 /public_html,修改了 index.php 文件以指向正确的文件(如下所示)。 我认为index.php 文件中一定有一些错误,但无法弄清楚。 这是我第一次问我的问题(经过多次搜索),所以希望我能得到答案!

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

这是我在文件管理器中的文件结构:

php laravel cpanel
3个回答
3
投票

更新(2023)简单方法

如果您有权访问终端,则可以运行此命令

ln -s /laravel/public/* public_html

这是我在 2023 年发现的简单方法


在Cpanel中部署laravel应用程序

  • 设置 1:- 将文件上传到 Cpanel root 目录 – 而不是 public_html

  • 设置 2:- 打开该文件夹并将公共文件夹的内容移动到 cpanel 的 public_html .

  • 设置 3:- 导航至 public_html 文件夹并找到

    index.php
    文件。右键单击它并从菜单中选择代码编辑器。

并更改此行

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

注意:- folderName 这里位于 Laravel 应用程序所在的根目录中

现在您的所有请求都将进入 public_html 文件夹

index.php
并且此文件将包含
require __DIR__.'/../folderName/vendor/autoload.php;
并运行 laravel 应用程序


文件夹结构如下所示

/laravel
/public_html/index.php

内侧

index.php

require __DIR__.'/../laravel/vendor/autoload.php';;
$app = require_once __DIR__.'/../laravel/bootstrap/app.php'; // here laravel is folder name

2
投票

在您的 public/.htaccess 文件中替换下面给出的代码。确保您将项目上传到根 public_html 文件夹中。

<IfModule mod_rewrite.c>
<IfModule mod_negotiation.c>
    Options -MultiViews
</IfModule>

RewriteEngine On

RewriteCond %{REQUEST_FILENAME} -d [OR]
RewriteCond %{REQUEST_FILENAME} -f
RewriteRule ^ ^$1 [N]

RewriteCond %{REQUEST_URI} (\.\w+$) [NC]
RewriteRule ^(.*)$ public/$1

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ server.php

1
投票

您需要确保您的应用程序位于 public_html 之外的文件夹中。

然后您需要对应用程序内公共目录中的所有内容建立一个符号链接。该符号链接应放置在您的 public_html 中。

这样您的业务逻辑就无法从外部获得,只能从您自己的应用程序获得。

实际上,建议使用 git 克隆您的应用程序,然后按照文档中的步骤安装它。 (https://laravel.com/docs/7.x/installation

© www.soinside.com 2019 - 2024. All rights reserved.