Laravel - 500内部服务器错误

时间:2014-04-23 10:26:24

标签: php .htaccess mod-rewrite laravel-4

我正在我的localhost中运行我的laravel网站,工作正常。但是,当我尝试在托管服务器中运行我的网站时,我得到500内部服务器错误?是因为我的.htaccess文件还是I remove public url

我的.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>

4 个答案:

答案 0 :(得分:2)

在终端上试试这个:

sudo chmod -R 755 <your_laravel_project> 

chmod -R o+w <your_laravel_project>/storage

答案 1 :(得分:0)

确保您使用的是受支持的PHP版本,并确保您的文件夹具有755权限。

您还可以查看Laravel的日志文件,以了解更多有关导致500错误的原因。 如果日志文件中没有条目,则问题可能来自.htaccess。

答案 2 :(得分:0)

我遇到了与我的共享托管服务提供商类似的问题。 Laravel将active record文件夹用于访问者浏览器可直接访问的文件。这应该是共享主机上的webspace根目录。

当调用public中的index.php并且它尝试访问网络空间根目录外(上一级)的文件时,会出现问题。通常这是不允许的。

您(或您的托管服务提供商)需要更改php设置中的/public值。

在我的托管上,它看起来像这样:

open_basedir

我把它改成了

{WEBSPACEROOT}{/}{:}{TMP}{/}

并且有效。

答案 3 :(得分:0)

请一一尝试执行以下命令。希望我的解决方案能解决您的问题。

find <laravel_project_path> -type d -exec chmod 755 {} \;

find <laravel_project_path> -type d -exec chmod ug+s {} \;

find <laravel_project_path> -type f -exec chmod 644 {} \;

chown -R www-data:www-data <laravel_project_path>

chmod -R 777 <laravel_project_path>/storage

chmod -R 777 <laravel_project_path>/bootstrap/cache/

find <laravel_project_path>/vendor -type f -exec chmod 664 {} \;