Php 拉威尔-路由问题

Php 拉威尔-路由问题,php,laravel,nginx,Php,Laravel,Nginx,这很有可能是完全没有意义的事情,我错过了一些简单的事情,但这让我一整天都在发疯,IRC也帮不上什么忙:c 使用Laravel PHP框架和路由失败 环境: 主机Ubuntu 14.04 客人机器Laravel-家园香草(标准)漂泊箱 项目: 默认未编辑的Composer Laravel项目 行为 导航到/public,您将获得laravel项目的hello页面(建议使用友好的URL,路由工作正常)。当您导航到/account时,您会看到“未指定输入文件” 代码

这很有可能是完全没有意义的事情,我错过了一些简单的事情,但这让我一整天都在发疯,IRC也帮不上什么忙:c

使用Laravel PHP框架和路由失败

环境

  • 主机Ubuntu 14.04
  • 客人机器Laravel-家园香草(标准)漂泊箱
项目

默认未编辑的Composer Laravel项目

行为

导航到/public,您将获得laravel项目的hello页面(建议使用友好的URL,路由工作正常)。当您导航到/account时,您会看到“未指定输入文件”

代码

                             -- app/routes.php --


    Route::get('/', function()
{
    return View::make('hello');
});

Route::get('/account', function()
{
    return View::make('account');
});
请注意,ACCOUNT.PHP是在VIEWS文件夹中创建的

Nginx错误日志

2014/06/24 06:56:49 [error] 1307#0: *97 FastCGI sent in stderr: "Unable to open primary script: /home/vagrant/Code/profile_system/index.php (No such file or directory)" while reading response header from upstream, client: 192.168.10.1, server: profile-system.app, request: "GET /accounts/create HTTP/1.1", upstream: "fastcgi://unix:/var/run/php5-fpm.sock:", host: "profile-system.app"
显然,问题是它在项目的/中找不到index.php。但是laravel在/中没有index.php


有什么想法吗?有关完整的环境信息,请参阅此链接。很高兴根据要求添加其他内容

如果您导航到
/public
查看Laravel的欢迎页面,则您的服务器配置不正确。您应该能够在URL中没有
/public
的情况下获得欢迎页面

最简单的方法可能是使用
.htaccess
文件(直接放在Laravel目录中),其内容如下:

<IfModule mod_rewrite.c>
    RewriteEngine on
    RewriteCond %{REQUEST_URI} !^public
    RewriteRule ^(.*)$ public/$1 [L]
</IfModule>

重新启动发动机
重写cond%{REQUEST_URI}^公众的
重写规则^(.*)$public/$1[L]

但这并不是最好的解决方案。您应该将
public
目录作为网站根目录,而不是Laravel目录。你可以阅读更多。

发布答案,因为如果你不知道答案,它会毁了你

Laraval应用程序在/public之后启动。确保主机文件/Web服务器指定的路径为/root/to/project/laravel root/public。然后它就会工作了:p


我将把Linek的答案标记为正确,因为如果它是一个友好的url问题,那么这就是正确的修复方法

Hmmm的问题是我在经营专为拉威尔设计的宅地流浪者箱。这应该是开箱即用的。。刚刚尝试了.htaccess更新,我得到了相同的结果。我可能只是用我自己的流浪汉而不是用这个预制的。我感谢你的帮助,伙计@Jonjoe您可能想阅读以下内容:“设置Apache”一节告诉您将VirtualHost设置为
public
目录。@Jonjoe您将其标记为“已接受”,但还提到.htaccess更改仍然会给您带来相同的错误。我也面临着这个问题,我想知道你是怎么解决的?