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

Posted

技术标签:

【中文标题】将 laravel 项目部署到 Cpanel 时如何解决错误 404?【英文标题】:How to solve Error 404 when deploying laravel project to Cpanel? 【发布时间】:2021-01-27 16:28:11 【问题描述】:

我正在尝试将我的 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';

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

【问题讨论】:

检查公用文件夹中的.htaccess 文件,如果不存在则上传。 根据您的文件结构,它将起作用dmaiin.com/public 将是您更改文件夹结构所需的网址 勾选,它还在公用文件夹中 你的网址是什么?我可以给你看这个 我的网址是 emglabvn.com.vn, 【参考方案1】:

在 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

【讨论】:

评论不用于扩展讨论;这个对话是moved to chat。【参考方案2】:

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

然后,您需要为应用程序内公共目录中的所有内容创建符号链接。这个符号链接应该放在你的 public_html 中。

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

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

【讨论】:

以上是关于将 laravel 项目部署到 Cpanel 时如何解决错误 404?的主要内容,如果未能解决你的问题,请参考以下文章

如何将laravel项目从本地部署到服务器

如何将 Laravel 5.5 应用部署到 Godaddy cPanel 共享主机

如何在 cPanel 共享主机上上传 laravel 项目?

如何使用 git 将我的 Laravel 项目部署到 Hostinger 的根文件夹?

Cpanel 共享主机中的 Laravel 5.5 错误 500

Laravel文档阅读笔记-How to deploy Laravel 8 project on Cpanel shared hosting