Laravel 5不支持共享主机

时间:2016-12-20 12:19:13

标签: php laravel-5 shared-hosting

我已经在localhost上测试了我的Laravel 5项目,使用此url工作正常 - http:// localhost / project-name / public /

然后我将我的项目上传到共享主机,我已经对.env文件中的数据库进行了理想的更改,然后尝试使用url访问它 - http://companysite.com/folder/innerFolder/public/

但无法正常工作并获得500内部服务器错误

我已经完成了与相关的其他问题,但没有回答引导我到我的解决方案。我已经完成了以下步骤

  • 将我的项目上传到与public_html
  • 平行的根目录
  • 更新到project / public / index.php
  • 尝试创建指向我的项目但尚未成功的子域名
  

内部服务器错误

     

服务器遇到内部错误或配置错误   无法完成您的请求。

     

请与服务器管理员联系   webmaster@techphant.techphant.com告知他们这个时间   发生错误,以及您在此错误之前执行的操作。

     

有关此错误的详细信息可能在服务器错误中可用   日志中。

     

此外,遇到500内部服务器错误错误   尝试使用ErrorDocument来处理请求。

3 个答案:

答案 0 :(得分:4)

我已将此链接laravel.io

引用

最后,我在共享主机上完成了这项工作。这就是我所做的

  1. 在localhost中正确配置项目Laravel 5
  2. 仔细检查PHP 5.4的服务器配置(这是因为每个 .htaccess文件的变化可能会改变该配置)
  3. 在同一级别的public_html中创建一个目录并放入 该文件夹内的项目。
  4. 将public(L5)的内容直接放在public_html上(注意 不要意外覆盖.htaccess文件)
  5. 现在......这是"棘手的部分" ......我看到了这个结构

    邮件

    的perl5

    PHP

    public_html

    [框架文件夹]

    SSL

    在public_html里面我可以看到Laravel 5公共目录的所有文件 转到index.php并编辑第22行

      

    从此   需要__DIR __。' /../ bootstrap / autoload.php';
      对此   需要__DIR __。' /../ [framework-folder] /bootstrap/autoload.php' ;;

    第36行

      

    从此    $ app = require_once __DIR __。' /../ bootstrap / app.php';
      对此    $ app = require_once __DIR __。' /../ [framework-folder] /pulcro/bootstrap/app.php' ;;

    最后一步是编辑.htaccess文件并添加一些行

    RewriteEngine On
    # Redirect Trailing Slashes...
    RewriteCond %{REQUEST_URI} !^
    RewriteRule ^(.*)$ /$1 [L]
    

    并更新[framework-folder] /server.php

      

    从此    require_once __DIR __。' /public/index.php' ;;
      对此    require_once __DIR __。' /public_html/index.php' ;;

    刷新浏览器的缓存和...胜利!! 我知道这不是安装框架的绝对正确方法(上帝,我从未谈过Composer) 但是......它现在正在为我工​​作 希望这可以帮助某人部署Laravel 5

答案 1 :(得分:1)

感谢Neeraj Rathod,但我发现这篇文章更有用,当然更简单!

WHY AM I GETTING A 500 INTERNAL SERVER ERROR MESSAGE?

就我而言,通过阅读我从“错误页面”中发现的文章,“group writeable”权限不能设置为“public”文件夹中的“index.php”文件,也不能通过路径设置所有文件夹。你还必须检查你的共享主机php版本是否超过7.0

答案 2 :(得分:0)

Neeraj Rathod所说的一切,也请转到vendor\laravel\framework\src\Illuminate\Database\Query\Builder.php中的项目

在1337行中,您可以在addWhereExistsQuery方法内找到以下代码

$this->wheres[] = compact('type', 'operator', 'query', 'boolean');

您只需删除'operator'参数。

感谢此链接: compact(): Undefined variable: operator 现在,我的laravel测试项目博客已在线。