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

我正在使用 cPanel 为我的网站上传一个简单的订阅页面。我将文件上传到public_html,将文件从public文件夹中移出并修改index.php使其指向应用程序。我用来编写此应用程序的 PHP 版本是7.3,但我必须在主机中选择 7.2 版本,因为这是最新的可用版本。


当我加载我的网站时,出现此错误“此页面无法正常工作 bazzaar.net 目前无法处理此请求。HTTP 错误 500”


当我从 index.php 文件中删除所有内容并添加一个简单的回显时,页面加载。


我真的需要帮助。错误日志如下:


堆栈跟踪:


#0 /home3/bazzaar/public_html/vendor/symfony/http-foundation/Response.php(198): Symfony\Component\HttpFoundation\Response->setStatusCode(500)

#1 /home3/bazzaar/public_html/vendor/symfony/http-foundation/Response.php(214): Symfony\Component\HttpFoundation\Response->__construct('<!doctype html>...', 500, Array)

#2 /home3/bazzaar/public_html/vendor/laravel/framework/src/Illuminate/Foundation/Exceptions/Handler.php(328): Symfony\Component\HttpFoundation\Response::create('<!doctype html>...', 500, Array)

#3 /home3/bazzaar/public_html/vendor/laravel/framework/src/Illuminate/Foundation/Exceptions/Handler.php(305): Illuminate\Foundation\Exceptions\Handler->convertExceptionToResponse(Object(Symfony\Component\Er in /home3/bazzaar/public_html/vendor/symfony/http-foundation/Response.php on line 450

我的.htacess 文件


suPHP_ConfigPath /opt/php72/lib


选项 -MultiViews -Indexes


RewriteEngine On


# Handle Authorization Header

RewriteCond %{HTTP:Authorization} .

RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]


# Redirect Trailing Slashes If Not A Folder...

RewriteCond %{REQUEST_FILENAME} !-d

RewriteCond %{REQUEST_URI} (.+)/$

RewriteRule ^ %1 [L,R=301]


# Send Requests To Front Controller...

RewriteCond %{REQUEST_FILENAME} !-d

RewriteCond %{REQUEST_FILENAME} !-f

RewriteRule ^ index.php [L]

# 默认使用 PHP72


开心每一天1111
浏览 159回答 7
7回答

忽然笑

假设 cpanel 没有其他网站,并且您的 laravel 项目应该是默认项目。压缩整个 Laravel 项目并将数据库导出到 sql登录到 cPanel 并导航到文件管理器确保您位于根文件夹中,然后单击“上传”选择您的 zip 文件并等待上传完成解压上传的文件将 public 的内容移动到public_html文件夹返回 Cpanel 并导航到数据库创建数据库并添加(如果不存在则创建)数据库用户单击您的新数据库,然后单击“导入”选择导出的 SQL 文件尝试使用域 url 访问您的 laravel 网站该网站可能会提供更多详细信息https://dev.to/asapabedi/deploying-laravel-5-applications-on-shared-hosting-without-the-use-of-ssh--16a6

白板的微信

你不需要改变 Laravel 的结构。只需复制下面的 htaccess 代码并粘贴到 laravel 项目根目录下的 .htaccess 文件中。<IfModule mod_rewrite.c>&nbsp; &nbsp; RewriteEngine On&nbsp; &nbsp; RewriteBase /&nbsp; &nbsp; RewriteRule ^$ public/index.php [L]&nbsp; &nbsp; RewriteRule ^((?!public/).*)$ public/$1 [L,NC]</IfModule>

料青山看我应如是

如果您使用的是 Apache 服务器,您可以执行以下简单步骤第 1 步:只需将所有源代码上传到服务器(确保数据库和 .env 设置正确)i)制作 zip 并解压缩 ii)使用 git 部署代码或从存储库中克隆并安装所有依赖项第 2 步:在项目根目录下创建一个 .htaccess 文件,复制以下代码并将其粘贴到该文件中。<IfModule mod_rewrite.c><IfModule mod_negotiation.c>&nbsp; &nbsp; Options -MultiViews</IfModule>RewriteEngine OnRewriteCond %{REQUEST_FILENAME} -d [OR]RewriteCond %{REQUEST_FILENAME} -fRewriteRule ^ ^$1 [N]RewriteCond %{REQUEST_URI} (\.\w+$) [NC]RewriteRule ^(.*)$ public/$1&nbsp;RewriteCond %{REQUEST_FILENAME} !-dRewriteCond %{REQUEST_FILENAME} !-fRewriteRule ^ server.php我从这个视频中得到了这个答案,所以请对他说声谢谢 https://www.youtube.com/watch?v=6Qbd9HTh7AE(谢谢)

慕田峪9158850

按着这些次序:检查根或子域上的 .htaccess 文件。如果将 public 文件移动到 root => 将 index.php 内容 /../ 更改为 /例如需要DIR&nbsp;.'/../vendor/autoload.php';到需要DIR&nbsp;.'/vendor/autoload.php';和$app = require_once&nbsp;DIR&nbsp;.'/../bootstrap/app.php';到$app = require_once&nbsp;DIR&nbsp;.'/bootstrap/app.php';检查 php 版本(在 laravel 6+ 上我使用 php7.4 并解决了问题)检查 .env 文件

慕的地10843

这对我有用:将 cpanel 的 php 版本更新为 laravel 版本的要求,比如 laravel 7.0 需要https://laravel.com/docs/7.x/installation检查是否安装了所有必需的扩展然后,如果您在使用 .htacess 时遇到问题,我建议您通过...创建一个简单的 index.html进行测试,只需添加一行你好世界然后将所有文件压缩到你的 public_html(包括 .htaccess)中并上传 index.html刷新目标 url 说 domain.com当它工作时你准备好进行下一步(如果它不尝试调试/找出原因)通过...上传您的数据库(假设它已经导出)转到MySQL数据库创建一个数据库,其中包含要添加的数据库的确切名称然后创建一个MySQL用户并给他数据库的所有权限转到cpanel中的phpmyadmin并导入导出的sql文件压缩您的工作 laravel 项目并将其上传到主文件夹在 cpanel 提取和...请注意:将所有文件夹放在 public 的主页选择内容中,包括 .htaccess 到 public_html文件夹和文件结构应该与您计算机上的 LARAVEL 项目相同(除了 public 现在是 public_html)警告:不要触摸你的 index.php 或 server.php使隐藏文件在您的 cpanel 中可见,然后最后通过...编辑 .env 文件...仅编辑数据库用户名和密码(我希望数据库名称相同)您还希望将 APP_DEBUG 保留为 true 以进行测试(您必须测试)当一切都很好时将其更改为 false如果你没有数据库,什么已经在等待刷新了即使有数据库现在也需要刷新

慕盖茨4494581

我为 Laravel 8 和 9 版本获得了一个有效的、不那么痛苦的系统。可以关注,希望对你有帮助:在公共文件夹中,您将获得总共 4 个文件。.htaccess、favicon.ico、index.php和robots.txt。只需将所有这些文件移动到应用程序的根目录,也就是说,在公共文件夹之外。使用编辑器打开index.php文件并更改 2 行。更改此行:require&nbsp;__DIR__.'/../vendor/autoload.php';到:require&nbsp;__DIR__.'/vendor/autoload.php';并更改此行:$app&nbsp;=&nbsp;require_once&nbsp;__DIR__.'/../bootstrap/app.php';到:$app&nbsp;=&nbsp;require_once&nbsp;__DIR__.'/bootstrap/app.php';如果您在应用程序中使用了公用文件夹中的图像,您将看到在整个应用程序中,您的图像没有显示。所以现在转到.env文件并添加这一行:&nbsp;ASSET_URL=public所有任务都完成了!现在只需将您的应用程序上传到共享服务器即可正常运行。

蛊毒传说

在您的主机上创建一个名为public_html/myapp的新目录。在你的 Laravel 项目中,你有一个公共目录。将该公共目录的内容复制到您在主机上创建的public_html/myapp目录中。在与public_html文件夹相同的级别(不在其中!),在您的主机上创建一个名为myapp-laravel的新目录。除了public文件夹,将 Laravel 项目中的每个文件夹和文件(例如app文件夹、.env文件等)复制到主机上的myapp-laravel文件夹中。像这样编辑public_html/myapp/index.php文件:变更要求__&nbsp;DIR__.'/../vendor/autoload.php';要求__&nbsp;DIR__.'/../../myapp-laravel/vendor/autoload.php';改变require_once&nbsp;__&nbsp;DIR__.'/../bootstrap/app.php';到require_once&nbsp;__&nbsp;DIR__.'/../../myapp-laravel/bootstrap/app.php';在此处查找文章。
打开App,查看更多内容
随时随地看视频慕课网APP