Php 如何在共享主机上部署laravel 4.2?
我用Laravel4.2.8开发了一个应用程序,现在我在部署它时遇到了问题。我遵循了这个答案,但它不起作用。我得到一个白色屏幕,标题返回500内部服务器错误状态 我听说Laravel4.2在共享主机上的设置有点棘手,这是真的吗?我似乎可以找到一个有效的解决方案,所以之前部署过4.2的人请帮忙。我的文件夹结构如下所示 root/ laravel_基地/ 应用程序/ ... public\u html/ siteroot/ 资产/ 包裹/ 上传/ index.php ... 有什么建议吗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 ... 有什么建议吗 首先确保您
首先确保您的共享主机运行
php
>=v5.4。其次,尝试按照以下步骤操作:
public\u html/
或www/
之外创建一个文件夹。例如:project/
项目/
文件夹中public/
文件夹的内容复制到public\u html/
或www/
(也必须有.htaccess)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