无法在Ubuntu 14.04上使用PHP 5.5在Laravel 4.2中使用任何路由

时间:2014-07-20 04:49:49

标签: php apache ubuntu laravel laravel-4

我正在努力让Laravel 4.2在我的运行Ubuntu 14.04和PHP 5.5的Digital Ocean服务器上运行。我可以看到显示Laravel标志的屏幕,上面写着“你已经到了”。我很累,而且已经很晚了,但是我感到非常沮丧,今晚我真的必须让这个工作。

我的路线如下:

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

Route::any('monkey', function()
{
    return View::make('monkey');
});

Route::resource('search', 'SearchController');
?>

我不能说“你好”或“猴子”。是什么给了???

我已经进入apache.conf并将“AllowOverride”更改为“All”并重新启动Apache服务。

我的laravel.log文件显示了这个: production.ERROR: exception 'Symfony\Component\HttpKernel\Exception\MethodNotAllowedHttpException'

更新 我刚刚尝试添加以下路线而没有任何变化......

<?php
Route::any('test', function()
{
    return 'Test This!!!';
});
?>

更新2:

这是我公开的.htaccess文件:

<IfModule mod_rewrite.c>
    <IfModule mod_negotiation.c>
        Options -MultiViews
    </IfModule>

    RewriteEngine On

    # Redirect Trailing Slashes...
    RewriteRule ^(.*)/$ /$1 [L,R=301]

    # Handle Front Controller...
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^ index.php [L]
</IfModule>

2 个答案:

答案 0 :(得分:4)

您需要启用mod_rewrite,因为默认情况下它通常不会启用。

在终端中运行以下命令以启用它。

a2enmod rewrite

然后重启Apache:

service apache2 restart

答案 1 :(得分:1)

您必须在.htaccess目录中创建app/public/文件:

<IfModule mod_rewrite.c>
    <IfModule mod_negotiation.c>
        Options -MultiViews
    </IfModule>

    RewriteEngine On

    # Redirect Trailing Slashes...
    RewriteRule ^(.*)/$ /$1 [L,R=301]

    # Handle Front Controller...
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^ index.php [L]
</IfModule>