Получение внутренней 500-й ошибки сервера в Laravel 5+ Ubuntu 14.04

49

Я устанавливал Laravel много раз в ОС Windows, но такого типа проблем не возникало. Этот 500 внутренних серверов обычно возникает, когда ваш модуль "mod_rewrite" не включен.

Однако, на Ubuntu 14.04 эта проблема дает мне головную боль. Я установил rewrite_mod, но он также не работает. Я предоставил доступ ко всем моим папкам и файлам внутри i.e.

/вар/WWW/HTML/laravel_project

Тем не менее это не работает. Изменен .htaccess также от оригинала к этому.

    +FollowSymLinks
RewriteEngine On

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [L]

У меня есть все необходимые расширения, необходимые для Laravel 5+. Осталось что-то, чего я не делал?

  • 4
    так что проверьте журнал ошибок, чтобы увидеть подробности о 500. Пока вы не знаете, что это так, нет смысла вертеться повсюду.
  • 2
    Почему у него просто +FollowSymLinks вверху? Должны быть Options +FollowSymLinks .
Показать ещё 8 комментариев
Теги:
.htaccess
mod-rewrite

22 ответа

161
Лучший ответ

Наконец-то преодолел проблему

  • Проблема была не в файле .htaccess, а в файле index.php. Проблема была в доступе к файлам и требовании разрешений.

Для решения проблемы я запустил следующие команды через терминал.

sudo chmod -R 755 laravel_blog

а затем введите ниже, чтобы Laravel записать файл в папку хранения

chmod -R o+w laravel_blog/storage

Эти две команды решили проблему.

  • 1
    Спасибо, у меня была эта проблема при установке laravel на свежий дистрибутив Ubuntu 14.04 на Google Compute Engine, это решило ее.
  • 0
    Спасибо!!! работа в убунту 14.04
Показать ещё 13 комментариев
21

После установки прогона под командой

sudo chmod 755 -R laravel
chmod -R o+w laravel/storage

здесь "laravel" - это имя каталога, в котором установлена ​​laravel

  • 0
    с помощью этой команды обязательно запустите команду composer install
  • 0
    sudo chmod -R 755 laravel расположение -R неверно
11

Я исправил с помощью этой команды:

   rm -rf app/storage/logs/laravel.logs
   chmod -R 777 app/storage,
   php artisan cache:clear,
   php artisan dump-autoload OR composer dump-autoload

Чем перезапустить сервер или XAMPP или другой, и это должно работать.

  • 1
    777 - очень плохая команда, и она даст WRITE доступ к любому пользователю в Интернете. 644 более целесообразно.
11

Я столкнулся с подобной ошибкой. Я проверил журнал в /var/log/apache2/error.log и нашел UnexpectedValueException

Я изменил владельца на пользователя apache папки хранения в каталоге проекта.

sudo chown -R www-data:www-data ./storage

В моем случае владелец процесса apache2 www-data, поэтому измените его на ваш, это можно найти в файле конфигурации apache2. Надеюсь, это вам полезно.

  • 0
    Только этот ответ работал для меня. Но попробуйте и вышеприведенные предложения. Спасибо!
  • 0
    Smae здесь. Только у меня это тоже сработало
9

Может другое решение этой проблемы:

Установите необходимые пакеты, выполнив команду composer из корня проекта:

sudo composer install

ОБНОВИТЬ:

  • Вы не должны запускать эту команду на производственном сервере, но некоторые проблемы с composer могут быть решены с помощью этого в локальных средах.
  • 1
    Какого черта это, вы на самом деле знаете, что вы отвечаете!
  • 3
    @JimmyObonyoAbor На самом деле это работает. Согласно журналам, 500 были из-за отсутствия некоторых файлов в / vendor. Как вы это исправите? Запустив composer установить / обновить. Спасибо и upvote, Христос Папулас
Показать ещё 2 комментария
7

Новичок, но это то, что я сделал, потому что у меня не было ключа

Создал файл .env, а также запустил

php artisan key:generate

Это сработало для меня после вытаскивания проекта git

4

Попробуйте проверить, есть ли у вас файл .env.

В основном эта вещь может вызвать что-то подобное. Попробуйте создать файл, затем скопируйте все из .env.example, вставьте его в созданный файл и назовите его .env. или просто переименуйте файл .env.example в .env и выполните php artisan key:generate

  • 0
    эта помощь с первой попытки +
4

Иногда возникает проблема с версией php. Нам нужно изменить версию php с сервера. Просто напишите ниже строку в файле .htaccess:

AddHandler application/x-httpd-php5 .php
  • 0
    не знаю, почему кто-то отрицает этот ответ !!
3

У меня были установлены PHP 7.0 и PHP 7.1, и я использовал PHP 7.1 в командной строке, а PHP 7.0 был включен в Apache, что может привести к проблемам при использовании Laravel Framework и localhost Apache2 с laravel.

Сначала проверьте ваш файл композитора, чтобы увидеть версию PHP.

"php": "^7.1.3",
"laravel/framework": "5.6.*",

Проверьте вашу текущую версию PHP в командной строке

php -v

Проверьте вашу текущую версию php на Apache, я сделал с помощью браузера.

http://localhost

Если это не то же самое, отключите текущую версию и включите самую новую.

sudo a2dismod php7.2

sudo a2enmod php7.1

sudo service apache2 restart

После этого измените права доступа к папке

sudo chmod 755 -R blog

для хранения папки

chmod -R o+w blog/storage
  • 0
    Большое спасибо.
3

Запустите эти две команды в каталоге, где установлен Laravel:

sudo chmod 755 -R DIRECTORY_NAME
chmod -R o+w DIRECTORY_NAME/storage

Затем очистите кеш и сбросьте автозагрузку:

php artisan cache:clear
composer dump-autoload
1

Я сталкивался с этой проблемой много раз. Попробуйте один из этих шагов, это мне очень помогло. Может быть, это также поможет вам.

  1. Прежде всего, проверьте ваши права доступа к файлу.
  2. Чтобы исправить права доступа к файлу sudo chmod 755 -R your_project
  3. Затем выполните команду chmod -R o + w your_project/storage, чтобы записать файл в папку хранилища.
  4. PHP кэш ремесленника: очистить
    композитор дамп-автозагрузка
  5. Ключ ремесленника php: генерировать
  6. Затем проверьте требования к серверу согласно требованию laravel.
  7. Много раз вы получили эту ошибку из-за версии php. Попробуйте изменить версию php в cpanel.
  8. Затем настройте файл .htaccess правильно
1

Для тех из вас, кто любит меня, все еще есть ошибки после попытки ответить на все остальные вопросы:

Проверьте версию php apache, последняя версия laravel работает только с php7.1. Итак, вы должны:

sudo a2dismod php[yourversion]
sudo a2enmod php7.1
sudo systemctl restart apache2

надеюсь это поможет

1

У меня похожая проблема с хостом общего ресурса. У меня была ошибка 500 Я только что исправил, проверив версию Laravel и версию PHP. Ошибка была в том, что Laravel 5.6 не работает на PHP 7.0.x Когда я это узнал, я просто перенастроил проект на Laravel 5.5, который совместим с PHP 7.0.x, теперь все правильно. Другая причина, по которой у меня иногда возникают проблемы, - это то, что по FTP я получаю поврежденные файлы и вынужден загружать проект более одного раза. Надеюсь, что это поможет в будущем, я не нашел так много информации в этой теме.

1

Сначала разрешите все разрешения для вашей папки проекта (предположим, что это называется laravel), для подпапки хранилища и подкаталога журналов и для подпапки поставщика (laravel/storage, laravel/storage/logs и laravel/vendor).

Затем проверьте, есть ли у вас файл .env - если вы не можете запустить:

$ mv .env.example .env

чтобы переименовать ваш встроенный .env.example в необходимый .env.

В противном случае включите режим отладки - откройте .env и установите

APP_DEBUG=true

и откройте laravel/config/app.php и измените

'debug' => env('APP_DEBUG', false), 

к

'debug' => env('APP_DEBUG', true),

чтобы вы могли узнать, в чем причина вашей ошибки.

  • 4
    Нет причины, по которой вы должны редактировать config / app.php таким образом. Это отрицает всю цель файла .env.
  • 0
    При запуске приложения laravel на моем тестовом сервере (в производственном режиме) я получал ошибки внутренней службы. Установка APP_DEBUG = true позволила мне увидеть детали ошибки, чтобы я мог затем найти и исправить проблему.
1

Помимо перечисленных выше причин, есть и другие причины, по которым laravel может дать 500 внутренних ошибок сервера. Включая отсутствующий или старый CSRF, синтаксическую ошибку, конфигурацию прошивки .htaccess и т.д. Здесь представлен весь список https://abbasharoon.me/how-to-fix-laravel-ajax-500-internal-server-error/

1

Запустите эти две команды в корневом каталоге laravel

найти * -тип d -print0 | xargs -0 chmod 0755 # для каталогов

найти. -тип f -print0 | xargs -0 chmod 0644 # для файлов

0

Частая проблема при использовании git:

Laravel .gitignore ignores the .env file which when missing generates this error

Решил это, вручную добавив файл .env на сервер или загрузив его через FTP

0

Измените разрешение веб-папки только с помощью этой команды:

sudo chmod 755 -R your_folder

0

Я столкнулся с этой проблемой и исправил обновление своей версии php в apache до 5.6.x

0

Из-за отсутствия права писать каталог журнала.
Хранилище chmod 755 -R

0

Удостоверьтесь, что папка с напитком с предикатом записи (chmod o + w) работает для меня как шарм.

0

В соответствии с журналами:

[06-Feb-2016 22:38:48 Europe/Berlin] PHP Warning:  require(/Users/tomsihap/Documents/Development/mamp/partie_1_exo/bootstrap/../vendor/autoload.php): failed to open stream: No such file or directory in /Users/tomsihap/Documents/Development/mamp/partie_1_exo/bootstrap/autoload.php on line 17
[06-Feb-2016 22:38:48 Europe/Berlin] PHP Fatal error:  require(): Failed opening required '/Users/tomsihap/Documents/Development/mamp/partie_1_exo/bootstrap/../vendor/autoload.php' (include_path='.:/Applications/MAMP/bin/php/php7.0.0/lib/php') in /Users/tomsihap/Documents/Development/mamp/partie_1_exo/bootstrap/autoload.php on line 17
[06-Feb-2016 22:43:37 Europe/Berlin] PHP Warning:  require(/Users/tomsihap/Documents/Development/mamp/partie_1_exo/bootstrap/../vendor/autoload.php): failed to open stream: No such file or directory in /Users/tomsihap/Documents/Development/mamp/partie_1_exo/bootstrap/autoload.php on line 17
[06-Feb-2016 22:43:37 Europe/Berlin] PHP Fatal error:  require(): Failed opening required '/Users/tomsihap/Documents/Development/mamp/partie_1_exo/bootstrap/../vendor/autoload.php' (include_path='.:/Applications/MAMP/bin/php/php7.0.0/lib/php') in /Users/tomsihap/Documents/Development/mamp/partie_1_exo/bootstrap/autoload.php on line 17

Есть некоторые отказы, открывающие файлы в папке /vendor.

Установив и обновив с помощью композитора, я смог наконец решить проблему.

sudo composer install
sudo composer update

Ещё вопросы

Сообщество Overcoder
Наверх
Меню