Laravel - 500 вътрешна грешка на сървъра

Пускам моя сайт laravel в моя локален хост, работи добре. Но когато се опитам да стартирам сайта си в хостинг сървър, получавам 500 вътрешна сървърна грешка? Дали е заради моя .htaccess файл или премахвам публичен 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>

person Mohammad Nurdin    schedule 23.04.2014    source източник
comment
Имате ли някаква информация за дистанционното и вашата локална система?   -  person René Höhle    schedule 23.04.2014
comment
какво имаш предвид? не следя   -  person Mohammad Nurdin    schedule 23.04.2014
comment
Windows, Mac или Linux? Какво използвате в системите? Какво става, ако премахнете mod_negotiation.c? И ако пренапишете поне блока на модула mod_rewrite? Тогава можете да сте сигурни, че имате синтактична грешка.   -  person René Höhle    schedule 23.04.2014
comment
проверете PHP версията на хоста   -  person mwafi    schedule 15.11.2014


Отговори (4)


Опитайте това на терминала:

sudo chmod -R 755 <your_laravel_project> 

и

chmod -R o+w <your_laravel_project>/storage
person Arunabh Das    schedule 04.01.2016

Уверете се, че използвате поддържана версия на PHP и че вашите папки имат 755 разрешение.

Можете също така да проверите лог файла на Laravel, за да научите малко повече за това какво е причинило грешката 500. Ако няма запис в регистрационния файл, проблемът може да идва от .htaccess.

person FrancoisBaveye    schedule 19.03.2015

Сблъсках се с подобен проблем с моя споделен хостинг доставчик. Laravel използва папката public за файлове, които са директно достъпни за браузъра на посетителите. Това трябва да е коренът на уеб пространството на споделения хостинг.

Проблемът възниква, когато се извика index.php в /public и се опита да получи достъп до файлове извън (ниво по-горе) корена на уеб пространството. Обикновено това не е позволено.

Вие (или вашият хостинг доставчик) трябва да промените стойността open_basedir в настройките на php.

На моя хостинг изглеждаше така:

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

Промених го на

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

и се получи.

person user3190433    schedule 31.12.2016

Опитайте да следвате командите една по една. Надявам се, че моето решение ще реши проблема ви.

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 {} \;
person Dasun Tharanga    schedule 21.04.2021