我使用laravel 4.2.8开发了一个应用程序,现在我无法部署它。我按照这个答案https://stackoverflow.com/a/16683938/3153380但是没有用。我收到一个白色屏幕,标题返回500内部服务器错误状态。
我读到了laravel 4.2设置共享主机有点棘手这是真的吗?我似乎找到了一个有效的解决方案,所以那些已经部署过4.2的人请帮忙。我的文件夹结构如下所示
根/ 的 laravel_base / 应用程序/ ... 的的public_html / 的 siteroot / 资产/ 包/ 上传/ 的index.php ... 有什么指针吗?
答案 0 :(得分:18)
首先确保您的共享主机运行php
> = v5.4。第二步尝试按照以下步骤操作:
public_html/
或www/
之外创建一个文件夹。例如:project/
project/
文件夹public/
文件夹的内容复制到public_html/
或www/
(.htaccess也必须在那里) 在public /中找到index.php文件并更改以下路径:
一个。 autoload.php
的路径
require __DIR__.'/../bootstrap/autoload.php';
到
require __DIR__.'/../project/bootstrap/autoload.php';
湾start.php
的路径
$app = require_once __DIR__.'/../bootstrap/start.php';
到
$app = require_once __DIR__.'/../project/bootstrap/start.php';`
毕竟它应该有效。
答案 1 :(得分:4)
我做了类似于@Helder Lucas的事情 - 我还必须编辑bootstrap / paths.php文件:
# change: 'public' => __DIR__.'/../public',
'public' => __DIR__.'/../../public_html',
我创建了一个脚本来为共享托管环境设置laravel项目。这是要点:https://gist.github.com/meganlkm/74dba6c4350ed58bf7bb
答案 2 :(得分:0)
在OpenShift Online上运行Laravel 4/5非常容易。对于遇到托管问题的其他人,请查看:https://hub.openshift.com/quickstarts/115-laravel-5-0
答案 3 :(得分:0)
我只是在我的共享主机上的/文件夹中添加一个新文件夹
www.domain.com
我添加一个名为
的子文件夹 public/
这条路径看起来像这样
/www.domain.com/public/
从CPANEL我将域名根文件夹链接到
www.domain.com/public/
然后我只需上传
中的laravel应用程序 /www.domain.com
适用于laravel 4.2和5。 并且没有安全漏洞,因为根域文件夹位于laravel应用程序的公共文件夹中,无需更新.htaccess文件。
它只是有效。
答案 4 :(得分:0)
尝试使用.htaccess
在public_html
中,添加.htaccess
转发请求
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{REQUEST_URI} !^yoursite.com/public
RewriteRule ^(.*)$ yoursite.com/public/$1 [L]
</IfModule>
即
public_html
├── yoursite.com <-------- laravel project
├── .htaccess <-------- this file