it-swarm.com.ru

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

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

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

/ Var/WWW/HTML/laravel_project

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

    +FollowSymLinks
RewriteEngine On

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

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

51
DpEN

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

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

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

Sudo chmod -R 755 laravel_blog

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

chmod -R o+w laravel_blog/storage

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

174
DpEN

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

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

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

22
Sujendra Kumar

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

   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 или другой, и это должно работать.

11
Atdhe Kurteshi

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

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

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

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

11
Snriud

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

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

Sudo composer install

Обновление:

  • Вы не должны запускать эту команду на производственном сервере, но некоторые проблемы с composer могут быть решены с помощью этого в локальных средах.
9
Christos Papoulas

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

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

php artisan key:generate

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

7
Goodlife

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

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

5
Lesther Bualan

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

AddHandler application/x-httpd-php5 .php
4
Riyan Sheikh

У меня было установлено PHP 7.0 и PHP 7.1, и я использовал PHP 7.1 в командной строке и PHP 7.0 был включен в Apache, что Это может привести к проблемам, если вы используете Laravel Framework и локальный сервер 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
3
Saulo Campos

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

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

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

php artisan cache:clear
composer dump-autoload
3
Ayman

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

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

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

1
Meta Pakistani

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

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

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

1
Maroun Melhem

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

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

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

1
Davinder Singh

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

Проверьте версию php, которую использует Apache, последняя версия laravel работает только с php7.1 . Поэтому вам необходимо:

Sudo a2dismod php[yourversion]
Sudo a2enmod php7.1
Sudo systemctl restart Apache2

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

1
Ika Tobihi

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

1
Josean Maya

Сначала разрешите все разрешения для папки вашего проекта (скажем, она называется 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),

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

1
tsveti_iko

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

0
Mahmoud Niypoo

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

0
George Peter

По логам: 

[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 возникают ошибки.

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

Sudo composer install
Sudo composer update
0
tomsihap

если его на живом сервере попробуйте это

<IfModule mod_rewrite.c>
<IfModule mod_negotiation.c>
    Options -MultiViews -Indexes
</IfModule>
Options +FollowSymLinks
RewriteEngine On
RewriteBase /


# Handle Authorization Header
RewriteCond %{HTTP:Authorization} .
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]

# Redirect Trailing Slashes If Not A Folder...
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} (.+)/$
RewriteRule ^ %1 [L,R=301]

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

затем также убедитесь, что версия php в вашем composer.json такая же, как и на вашем сервере.

Проверьте версию php в своем терминале, используя php -v

0
The Dead Guy

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

0
user3619249

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

Sudo chmod 755 -R your_folder

0
Muhammad Shoaib