Php 如何在共享主机上部署laravel 4.2?

Php 如何在共享主机上部署laravel 4.2?,php,laravel-4,shared-hosting,Php,Laravel 4,Shared Hosting,我用Laravel4.2.8开发了一个应用程序,现在我在部署它时遇到了问题。我遵循了这个答案,但它不起作用。我得到一个白色屏幕,标题返回500内部服务器错误状态 我听说Laravel4.2在共享主机上的设置有点棘手,这是真的吗?我似乎可以找到一个有效的解决方案,所以之前部署过4.2的人请帮忙。我的文件夹结构如下所示 root/ laravel_基地/ 应用程序/ ... public\u html/ siteroot/ 资产/ 包裹/ 上传/ index.php ... 有什么建议吗 首先确保您

我用Laravel4.2.8开发了一个应用程序,现在我在部署它时遇到了问题。我遵循了这个答案,但它不起作用。我得到一个白色屏幕,标题返回500内部服务器错误状态

我听说Laravel4.2在共享主机上的设置有点棘手,这是真的吗?我似乎可以找到一个有效的解决方案,所以之前部署过4.2的人请帮忙。我的文件夹结构如下所示

root/ laravel_基地/ 应用程序/ ... public\u html/ siteroot/ 资产/ 包裹/ 上传/ index.php ... 有什么建议吗


首先确保您的共享主机运行
php
>=v5.4。其次,尝试按照以下步骤操作:

  • public\u html/
    www/
    之外创建一个文件夹。例如:
    project/
  • 将laravel应用程序中的每个文件夹和文件(公用文件夹除外)复制到该
    项目/
    文件夹中
  • public/
    文件夹的内容复制到
    public\u html/
    www/
    (也必须有.htaccess)
  • 在public/locate中找到index.php文件并更改以下路径:

    a。自动加载.php的路径

    require __DIR__.'/../bootstrap/autoload.php';
    
    $app = require_once __DIR__.'/../bootstrap/start.php';
    
    进入

    b。
    start.php的路径

    require __DIR__.'/../bootstrap/autoload.php';
    
    $app = require_once __DIR__.'/../bootstrap/start.php';
    
    进入


  • 毕竟它应该可以工作。

    我做了类似于@Helder Lucas的事情-我还必须编辑bootstrap/path.php文件:

    # change: 'public' => __DIR__.'/../public',
    'public' => __DIR__.'/../../public_html',
    

    我创建了一个脚本来为共享托管环境设置laravel项目。要点如下:

    在OpenShift Online上运行Laravel 4/5非常容易。对于遇到托管问题的任何其他人,请检查:

    我只是在共享托管上的/文件夹中添加了一个新文件夹

    www.domain.com

    我在其中添加了一个子文件夹,名为

    public/

    所以路径看起来像这样

    /www.domain.com/public/

    从CPANEL中,我将域名根文件夹链接到

    www.domain.com/public/

    然后我把laravel应用程序上传到

    /www.domain.com

    它适用于laravel 4.2和5。 并且没有安全漏洞,因为根域文件夹位于laravel应用程序的公用文件夹中,不需要更新.htaccess文件


    它很管用。

    试着玩
    .htaccess

    public\u html
    中,添加
    .htaccess
    转发请求

    <IfModule mod_rewrite.c>
        RewriteEngine on
        RewriteCond %{REQUEST_URI} !^yoursite.com/public
        RewriteRule ^(.*)$ yoursite.com/public/$1 [L]
    </IfModule>
    
    
    重新启动发动机
    重写cond%{REQUEST_URI}^yoursite.com/public
    重写规则^(.*)$yoursite.com/public/$1[L]
    
    i、 e

    public\u html
    
    ├── yoursite.com“500内部服务器错误”状态代码(或空白页)表示脚本正在抛出错误,但您尚未将PHP配置为显示错误消息。这是你在继续之前需要解决的问题;如果没有错误消息的帮助,就不可能正确地编写代码。这是一个。@阿尔瓦罗。维卡里奥谢谢你的指点。我得到这个错误警告:require():open\u basedir限制生效。文件(/usr/www/users/hosting_base/laravel_base/../../siteroot/bootstrap/autoload.php)不在允许的路径内:如果路径是这样的,你的siteroot位于你的主机库之外。这里是laravel 5的一个新要点:我已经在我的主机上的de'public_html'外部创建了文件夹,并且从我的laravel项目中的'public_html'内部复制了'public'文件夹。现在要访问我的应用程序,我是否也需要在URL中指定公用文件夹?我的意思是:可能有两件事。1) 你有公共的吗?如果是这样的话,请只将其公开。\u html/{contents here}2)您也复制了.htaccess吗?是的,这两个方面都是正确的,我有
    public\u html/public
    ,并且我已经在public\u html/public文件夹中复制了
    .htaccess
    。所以我要照你说的做。谢谢,我会再试一次。我发现这个答案不清楚。公共文件夹的内容应该是什么?laravel的公共文件夹Hey lucid,openshift何时支持PHP5.6?openshift 3支持PHP5.6。查看OpenShift在线开发者预览:
    public_html
    ├── yoursite.com    <-------- laravel project
    ├── .htaccess       <-------- this file