我正在使用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-索引
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
答案 0 :(得分:2)
假设cpanel没有其他网站,而您的laravel项目应该是默认项目。
public_html
文件夹该网站可能会提供更多详细信息https://dev.to/asapabedi/deploying-laravel-5-applications-on-shared-hosting-without-the-use-of-ssh--16a6
答案 1 :(得分:2)
截至2020年5月的LARAVEL 7.0
这对我有用:
将cpanel的php版本更新为laravel版本的要求,例如laravel 7.0需要https://laravel.com/docs/7.x/installation
检查是否已安装所有必需的扩展程序
然后,如果您在.htacess方面遇到问题,建议您通过以下方式进行测试:。
创建一个简单的index.html
只需添加
通过...上传数据库(假设其已导出)
转到MySQL数据库
使用要添加的数据库的确切名称创建数据库
然后创建一个MySQL用户并将其所有特权授予数据库
转到cpanel中的phpmyadmin并导入导出的sql文件
压缩您正在工作的laravel项目并将其上传到主文件夹
在cpanel提取物中并...
请注意:
将所有文件夹放在家里
选择公共内容,包括对public_html
警告:请勿触摸index.php或server.php
使隐藏的文件在cpanel中可见,然后最终通过...编辑.env文件。
仅编辑数据库用户名和密码(我希望数据库名称相同)
另外,您还希望将APP_DEBUG保留为true进行测试(您必须进行测试)
一切正常后,将其更改为false
如果您没有数据库,那么什么都在等待刷新
尽管即使现在有了数据库,时间也会刷新
答案 2 :(得分:2)
请按照以下步骤操作:
例如
需要 DIR 。'/ .. / vendor / autoload.php';
TO
需要 DIR 。'/ vendor / autoload.php';
AND
$ app = require_once DIR 。'/ .. / bootstrap / app.php';
TO
$ app = require_once DIR 。'/ bootstrap / app.php';
答案 3 :(得分:1)
您不需要对 Laravel 的结构进行更改。只需复制下面的 htaccess 代码并粘贴到 Laravel 项目根目录下的 .htaccess 文件中即可。
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^$ public/index.php [L]
RewriteRule ^((?!public/).*)$ public/$1 [L,NC]
</IfModule>
答案 4 :(得分:0)
问题似乎出在PHP版本上。 Laravel 6需要PHP> = 7.2.5,并且Hostgator的最新版本仅为7.1。所以我不得不联系客户支持并要求最新的PHP版本。
此外,laravel必需的 mbStrings 也已关闭。
答案 5 :(得分:0)
在主机上创建一个名为 public_html / myapp 的新目录。
在Laravel项目中,您有一个公共目录。将那个 public 目录的内容复制到您在主机上创建的 public_html / myapp 目录中。
与 public_html 文件夹位于同一级别(不在其中!),在主机上创建一个名为 myapp-laravel 的新目录。
除 public 文件夹外,复制每个文件夹和文件(例如 app 文件夹, .env 文件,... )从Laravel项目复制到主机上的 myapp-laravel 文件夹中。
像这样编辑 public_html / myapp / index.php 文件:
__ DIR__.'/../vendor/autoload.php';
以要求__ DIR__.'/../../myapp-laravel/vendor/autoload.php';
require_once __ DIR__.'/../bootstrap/app.php';
更改为require_once __ DIR__.'/../../myapp-laravel/bootstrap/app.php';
找到文章here。
答案 6 :(得分:0)
答案 7 :(得分:0)
首先,将项目上传到您的 cpanel 的文件夹中。就我而言,它被命名为 project
。
然后,上传 public_html
中的公共文件夹,并根据您上传项目的文件夹更改 index.php 文件。
答案 8 :(得分:0)
注意:如果您遇到任何由于缓存删除目录 bootstrap/cache 中的文件 config.php。