我正在我的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>
答案 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 {} \;