Я много раз устанавливал 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+. Осталось что-то, чего я не делал?
+FollowSymLinks
вверху? Должно бытьOptions +FollowSymLinks
.AllowOverride
в конфигурации вашего сервера?Ответы:
Наконец-то преодолел проблему
Для решения проблемы я выполнил следующие команды через терминал.
sudo chmod -R 755 laravel_blog
а затем введите ниже, чтобы разрешить laravel записывать файл в папку хранения
Эти две команды решили проблему.
источник
Создайте файл .env и также запустите:
Это сработало для меня после создания проекта git.
После создания файла .env и генерации ключа запустите приведенный ниже код:
источник
php artisan cache:clear php artisan config:clear
работает в моем случаеПосле установки запустите команду ниже
sudo chmod 755 -R laravel chmod -R o+w laravel/storage
здесь "laravel" - это имя каталога, в котором установлен laravel
источник
composer install
sudo chmod -R 755 laravel
расположение -R неверноПопробуйте проверить, есть ли у вас
.env
файл.В основном это может вызвать что-то подобное. Попробуйте создать файл, затем скопируйте все из него
.env.example
, вставьте его в созданный файл и назовите его.env
. или просто переименуйте.env.example
файл.env
и запуститеphp artisan key:generate
источник
Убедитесь, что файл .env, содержащий APP_KEY , существует в корне.
То, что должно быть в .env, не было явно указано в других решениях, и я подумал, что свожу это к предложению выше.
Это исправило мою ошибку 500 при новой установке Laravel.
Шаги:
touch .env
)APP_KEY=
php artisan key:generate
Ноты:
Моя конкретная установка вообще не включала никаких .env (например, или иначе)
Просто иметь пустой .env не работает.
Файл .env, содержащий параметры, но не содержащий параметров,
APP_KEY
не работает.Ошибка ?: При создании ключа приложения в терминале он может сообщать об успешном выполнении, однако на самом деле ключ не будет помещен в .env, если файл не имеет ранее существовавшей
APP_KEY=
строки.Для справки - официальный .env с полезными базовыми параметрами. Скопируйте и вставьте то, что вам нужно:
https://github.com/laravel/laravel/blob/master/.env.example
источник
Я столкнулся с подобной ошибкой. Я проверил логин
/var/log/apache2/error.log
и обнаружил исключение UnexpectedValueExceptionЯ сменил владельца на моего пользователя apache для папки хранилища в каталоге проекта.
В моем случае владелец процесса apache2
www-data
, поэтому измените его на свое, это можно найти в файле конфигурации apache2. Надеюсь, это будет вам полезно.источник
Я исправил эту команду:
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, или другой, и он должен работать.
источник
Может еще одно решение этой проблемы:
Установите необходимые пакеты, запустив команду composer из корня проекта:
ОБНОВИТЬ:
РЕДАКТИРОВАТЬ:
источник
У меня были установлены 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 на Apache, я использовал браузер.
http://localhost
Если это не то, отключите текущую версию и включите самую новую.
sudo a2dismod php7.2 sudo a2enmod php7.1 sudo service apache2 restart
После этого измените права доступа к папке
sudo chmod 755 -R blog
для папки хранения
источник
Частая проблема при использовании git:
Laravel's .gitignore ignores the .env file which when missing generates this error
Решили эту проблему, добавив вручную файл .env на сервер или загрузив его через FTP.
источник
Иногда возникает проблема с версией php. Нам нужно изменить версию php с сервера. Просто запишите ниже строку в файле .htaccess :
источник
Прочитал все комментарии и предложения. 500 - КОД ОШИБКИ HTTP представляет внутреннюю ошибку сервера.
Причины этой ошибки:
.env
файл не найден в корневом каталогеИсправить:
find /path/to/your/root/dir/ -type f -exec chmod 644 {} \; find /path/to/your/root/dir/ -type d -exec chmod 755 {} \; chown -R www-data:www-data /path/to/your/root/dir/ chgrp -R www-data storage bootstrap/cache chmod -R ug+rwx storage bootstrap/cache
touch .env
и вставьте переменные среды, а затем запуститеapt-get install php7.2-[extension-name]
.env
файле. И предоставьте разрешения пользователю базы данных для этой базы данных.Это некоторые общие проблемы, с которыми вы, вероятно, столкнетесь при развертывании вашего приложения laravel, и если вы начнете получать все эти команды, я предлагаю вам создать сценарий, который сэкономит ваше время.
источник
Сначала разрешите все разрешения для папки вашего проекта (скажем, она называется laravel), для подпапки хранилища и ее подпапки журналов и для подпапки поставщика (laravel / storage, laravel / storage / logs и laravel / vendor).
Затем проверьте, есть ли у вас файл .env - если нет, вы можете запустить:
, чтобы переименовать ваш встроенный .env.example в необходимый .env.
В противном случае включите режим отладки - откройте .env и установите
APP_DEBUG=true
и откройте laravel / config / app.php и измените
'debug' => env('APP_DEBUG', false),
к
'debug' => env('APP_DEBUG', true),
чтобы вы могли выяснить, в чем причина вашей ошибки.
источник
Выполните эти две команды в каталоге, где установлен Laravel:
sudo chmod 755 -R DIRECTORY_NAME chmod -R o+w DIRECTORY_NAME/storage
Затем очистите кеш и сбросьте автозагрузку:
источник
Я сталкивался с этой проблемой много раз. Попробуйте один из этих шагов, это мне очень помогло. Может, и вам это поможет.
дамп-автозагрузку композитора
источник
Если вы используете vagrant, попробуйте следующее:
Сначала удалите config.php в текущем / vendor.
Выполните эту команду:
НЕ ЗАПУСКАТЬ php artisan config: cache.
Надеюсь на эту помощь.
источник
Запустите эти две команды в корне laravel
найти * -тип d -print0 | xargs -0 chmod 0755 # для каталогов
находить . -тип f -print0 | xargs -0 chmod 0644 # для файлов
источник
У меня аналогичная проблема с общим хостом. У меня была ошибка 500. Я просто исправил, проверив версию Laravel и версию PHP. Ошибка возникла из-за того, что Laravel 5.6 не работает на PHP 7.0.x. Как только я узнал об этом, я просто перенастроил проект на Laravel 5.5, совместимый с PHP 7.0.x, теперь все в порядке. Еще одна причина, по которой у меня иногда возникают проблемы, - это FTP. Я получаю поврежденные файлы и мне приходится загружать проект несколько раз. Надеюсь, это поможет в будущем. Я не нашел так много информации в этой теме.
источник
Для тех из вас, кто, как я, все еще получил ошибки после попытки всех других ответов:
Проверьте версию php, которую использует apache, последняя версия laravel работает только с php7.1. Итак, вам необходимо:
sudo a2dismod php[yourversion] sudo a2enmod php7.1 sudo systemctl restart apache2
надеюсь это поможет
источник
если это на живом сервере, попробуйте это
<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
источник
Убедитесь, что вы запустили
composer update
на своем сервере экземпляр.источник
Во-первых, если в вашем репозитории laravel нет файла .env. Скопируйте и вставьте файл .env.example и переименуйте его в .env. затем откройте файл .env и в части базы данных укажите описание своей базы данных. Запустить: php artisan key: создать кеш php artisan: очистить конфигурацию php artisan: кешировать конфигурацию php artisan: очистить дамп композитора-автозагрузку php artisan serve
источник
По логам:
[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 возникают ошибки.
Установив и обновив через композитор, я наконец решил проблему.
источник
Убедитесь, что папка для хранения с приоритетом записи (chmod o + w) работает для меня как шарм.
источник
Из-за отсутствия права записывать каталог журнала.
chmod 755 хранилище -R
источник
Я столкнулся с этой проблемой и решил ее, обновив мою версию php в apache до 5.6.x
источник
Измените разрешение веб-папки только с помощью этой команды:
sudo chmod 755 -R your_folder
источник
Я только что выполнил следующую команду:
php artisan passport:install
Я использовал паспорт для запуска своего приложения, полностью основанного на API и Vue.js. Laravel работал нормально, но каждый раз, когда я пытался войти через свой API, я получал сообщение об ошибке. После запуска команды и обновления client_id и client_secret в моих файлах Laravel, а затем отправки новых обновлений на рабочий сервер проблема была решена. В моей пользовательской модели у меня есть следующий сценарий:
public function generateToken($request) { $http = new \GuzzleHttp\Client(); $response = $http->post(URL::to('/').'/oauth/token', [ 'form_params' => [ 'grant_type' => 'password', 'client_id' => '6', 'client_secret' => 'x3yhgWVqF8sSaMev4JI3yvsVxfbgkfRJmqzlpiMQ', 'username' => $this->email, 'password' => $request->input('password'), 'scope' => '', ], ]); // Lets get an array instead of a stdObject so that we can return without errors $response = json_decode($response->getBody(), true); return oq_api_notify([ 'auth' => $response, // API ACCESS TOKEN 'user' => $this->load(['settings'])->toArray(), ], 201); }
Я только что обновил client_id и client_secret, только потом сохранил. Поскольку команда паспорта дает вам два клиентских ключа:
1) Клиент персонального доступа (client_id и client_secret)
2) Клиент предоставления пароля (client_id и client_secret)
Я использовал клиент предоставления пароля. Надеюсь, это кому-то поможет :)
источник