Мой сайт laravel работал раньше, я недавно обновился до Apache 2.4 и PHP 5.5.7.
Теперь, когда я перехожу на laravel.mydomain.com, я получаю белый пустой экран, ничего в журналах ошибок apache, маршрутах и т. Д. Не должно быть в порядке, поскольку это работало раньше.
.htaccess загружается, поскольку я получаю 500, когда вставляю недопустимую строку в /var/sites/laravel/public/.htaccess.
Вот мой .htaccess:
$ cat /var/sites/laravel/public/.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]
Вот моя директива виртуального хоста:
DocumentRoot "/var/sites/laravel/public"
ServerName laravel.mydomain.com
<Directory "/var/sites/laravel/public">
AllowOverride All
allow from all
Options +Indexes
Require all granted
</Directory>
И apachectl -S
$ /usr/local/apache2/bin/apachectl -S
VirtualHost configuration:
*:* is a NameVirtualHost
default server mydomain.com (/usr/local/apache2/conf/extra/httpd-vhosts.conf:25)
port * namevhost mydomain.com (/usr/local/apache2/conf/extra/httpd-vhosts.conf:25)
port * namevhost laravel.mydomain.com (/usr/local/apache2/conf/extra/httpd- vhosts.conf:34)
ServerRoot: "/usr/local/apache2"
Main DocumentRoot: "/var/www"
Main ErrorLog: "/usr/local/apache2/logs/error_log"
Mutex rewrite-map: using_defaults
Mutex default: dir="/usr/local/apache2/logs/" mechanism=default
PidFile: "/usr/local/apache2/logs/httpd.pid"
Define: DUMP_VHOSTS
Define: DUMP_RUN_CFG
User: name="daemon" id=1 not_used
Group: name="daemon" id=1 not_used
Ответы:
апаш
Имеет ли этот ответ описать или помочь вашей ситуации? Обновление до Apache 2.4 связано с некоторыми изменениями в конфигурации Apache.
Laravel
Вы проверяете журналы Laravel или Apache?
После обновления до Laravel 4.1 у меня были «ошибки» белого экрана (WSOD), когда приложение не могло записывать данные в место журнала. Я всегда решал эту проблему, делая каталог app / storage доступным для записи Apache (либо для группы с возможностью записи в «www-data», «apache», либо для всех - это зависит от настроек вашего сервера.
Пользователь веб-сервера
На серверах Ubuntu / Debian ваш PHP может работать как пользовательские «www-data». На серверах CentOS / RedHat / Fedora ваш PHP может работать как пользователь "apache".
Убедитесь, что ваши файлы принадлежат пользователю, на котором запущен PHP:
Laravel 4
Laravel 5+ (включая 6)
источник
Обновление ответа fideloper для Laravel 5 и его новой файловой структуры:
источник
Попробуйте это на странице public / index.php
источник
Следующие шаги решили проблему с пустым белым экраном на моем Laravel 5.
bootstrap/cache
иstorage
каталогов.env.example
в.env
Это сгенерирует ключ шифрования и обновит значение
APP_KEY
в.env
файлеЭто должно решить проблему.
Если проблема все еще существует, обновите
config/app.php
его новым ключом, сгенерированным с помощью приведенной выше команды генерации ключей мастера:источник
для тех, кто получает пустую страницу даже после того, как делает хранилище доступным для отображения ошибок, поместите эти две строки в первые строки файла public / index.php, чтобы хотя бы увидеть, что происходит. для меня эта ошибка была: класс 'PDO' не найден в /var/www/***/config/database.php в строке 16
источник
Когда я был новичком в Linux, я обычно обнаруживал эту ошибку в моем проекте Laravel. Белые ошибки означают ошибку, это может быть проблема с разрешением или ошибка.
Вам просто нужно выполнить два шага, и все будет работать как чемпион :)
(1) Дайте разрешение. Запустите эту команду из корневого каталога вашего проекта
(2) Если вы клонировали проект или вытащили его из github, запустите
(3) Правильно настройте файл .env, и проект будет работать.
источник
Я боролся с аналогичной проблемой на сервере CentOS. Использование php artisan serv и доступ к нему через порт 8000 на локальном компьютере работали нормально, но не могли заставить мои удаленные машины загрузить конкретное представление. Я мог вернуть строки нормально, и некоторые представления загружались. Некоторое время я гнался за разрешениями, пока наконец не понял, что это проблема SELinux. Я просто установил его из принудительного в разрешительный, и это сработало. Надеюсь, что это поможет кому-то еще, кто может столкнуться с той же проблемой.
источник
У меня также есть еще один вариант, почему может возникнуть проблема с пустой страницей. Если вы находитесь в производственном режиме и если вы кэшировали свои файлы конфигурации с помощью php artisan (config: cache), попробуйте удалить файл кеша, выполнив:
или удалите его вручную (bootstrap / cache / config.php)
источник
Выполнение этой команды решило это для меня:
Я предполагаю, что пустая страница с ошибкой была каким-то образом кеширована. Пришлось очистить кеши.
источник
В моем случае я устанавливал
laravel
много раз и уверен, что права на запись в папку были предоставлены правильно.Как и большинство ответов выше:
Ошибка в том, что моя конфигурация nginx взята из официальной документации .
Я изменил доменное имя только после копирования , тогда у меня появилась пустая страница. Я попытался перезапустить
nginx
иphp-fpm
, но у меня не получилось.Наконец, я добавил эту конфигурацию линии, чтобы решить проблему.
Я надеюсь, что смогу помочь другим.
источник
Лицом к пустому экрану в Laravel 5.8. Кажется, все в порядке и с хранилищем, и с папкой начальной загрузки с правами 777. На
Это показывает , что проблема именно Пробелы в App Имя .env файла
источник
У меня есть некоторые проблемы с настройкой его на машине Vagrant. Что действительно работает для меня, так это выполнить:
chmod -R o+w app/storage/
изнутри машины Vagrant.
Ссылка: https://laracasts.com/lessons/vagrant-and-laravel
источник
Еще одна вещь, которая может привести к тому, что в WSOD отсутствует ключевое слово return, например:
return View::make('yourview');
в отличие от
View::make('yourview');
источник
Иногда это связано с тем, что для laravel 5.1 требуется PHP> = 5.5.9. Обновление php решит проблему.
источник
Странно для меня, но в моем случае мне пришлось очистить кеш laravel, чтобы решить проблему.
источник
Я также столкнулся с той же проблемой после выполнения
composer update
Я
composer required monolog/monolog
тоже пытался установить, но не получилось.Затем я удалил каталог / vendor и начал
composer install
работать как обычно.в основном он должен был вернуть мой монолог и другие стабильные версии пакетов к предыдущей. так что лучше не
composer update
то, что я заметил, сравнивая обе папки / vendor, и обнаружил, что эти
classes
файлы/vendor/monolog/monolog/src/Handler
отсутствуют после обновления композитора.источник
Пустой экран без ошибок может быть вызван множеством причин. Я сталкивался с этой проблемой много раз, когда хочу загрузить проект laravel на общий хостинг.
Причина: неправильная версия PHP
В моем случае проблема была из-за неправильной версии php. У меня была версия php 7.1 на локальном компьютере, где, как и в cpanel общего хостинга, была версия php 5.6. У меня сработало переключение с 5.6 на 7.1.
Вы можете изменить версию php в cpanel из менеджера multiphp, доступного на домашней странице cpanel.
источник
Иногда в route.php у вас может быть
написано до
Это может быть пустой метод,
Controller::show()
когда вы начинаете разрабатывать свой контроллер с нуля. В этом случае при запросе/add
URL вы получите пустую пустую страницу . Это происходит потому, что запрос был обработан/{id}
маршрутом, а его метод ничего не возвращает.Просто попробуйте
/add
проложить маршрут раньше/{id}
источник
Другая проблема с таким же поведением - это использование Laravel 3 с PHP 5.5.x. Вам нужно изменить имя некоторой функции laravel "yield (), потому что это зарезервированное слово в php 5.5.
источник
Причина может быть в
Middleware
том, что вы забыли поместить следующий код в конецhandle
функцииисточник
Я также получал ту же ошибку, когда начинаю первый раз на laravel + Ubuntu 14.04. Я просто щелкаю правой кнопкой мыши по папке начальной загрузки и хранения >>> свойства >>> разрешение >> Другие доступ >>> меняю ее на «Создание и удаление файлов» Изменить разрешение на вложенные файлы
Спасибо
источник
Получил это с форумов Laravel, но если вы недавно обновили версии Laravel И версии PHP И используете nginx, убедитесь, что вы изменили файл конфигурации nginx, чтобы отразить новую версию PHP. Например:
В файле конфигурации вашего сайта nginx (здесь: / etc / nginx / sites-available) измените
fastcgi_pass unix:/var/run/php5-fpm.sock;
в
fastcgi_pass unix:/var/run/php/php5.6-fpm.sock;
источник
У меня такая же проблема. Я уже меняю папку chmod на папку Storage. заполните настройки базы данных в .env, но проблему не устранили. Я использовал Laravel 5.5, и я использовал PHP 5.6, чтобы исправить это, я пошел (cpanel-> PHP Selector), и я перешел на PHP 7.1. И проблема решена.
источник
В обычных случаях ошибки должны регистрироваться, если только
Скрипт не может записывать в файл журнала
Или произошла ошибка в журналах сервера приложений верхнего уровня, таких как Appache || Nginx
Или это ограничения ресурсов, такие как настройки PHP ini
Или ограничения ОС и т. Д.
источник
Помимо проблем с разрешениями в хранилище и папке кеша, а также проблем с версией php, могут быть и другие причины для отображения пустой страницы без сообщения об ошибке.
Например, у меня было сообщение об ошибке повторного объявления без журнала и с пустой белой страницей. Возник конфликт между моей собственной вспомогательной функцией и функцией поставщика.
Я предлагаю в качестве отправной точки запускать
artisan
команды. например:Если возникла проблема, она отобразится в терминале, и у вас есть подсказка, и вы можете найти решение в Google.
источник
Пустой экран также возникает, когда ваше приложение Laravel пытается отобразить слишком много информации и срабатывают ограничения PHP (например, отображение десятков тысяч записей базы данных на одной странице). Хуже всего то, что вы не увидите никаких ошибок в журналах Laravel. Вероятно, вы также не увидите никаких ошибок в журналах PHP FPM. Вы можете найти ошибки в журналах вашего http-сервера, например, nginx выдает что-то вроде
FastCGI sent in stderr: "PHP message: PHP Fatal error: Allowed memory size of XXX bytes exhausted
.Краткий совет: добавьте в объект запроса,
->limit(1000)
где1000
находится ваш предел.источник
Я столкнулся с этой проблемой, когда попытался запустить приложение Laravel 5.8 на своем сервере, загрузив его из локальной разработки с помощью Vagrant Homestead. Через некоторое время я понял, что поддомен dev на работающем мною сервере каким-то образом был настроен на PHP 5.6.
cPanel> MultiPHP Manager> Установите PHP 7.2
исправил это для меня. Надеюсь, это может кому-то помочь.
источник
используйте этот .htaccess для решения
источник
в моем случае проблема с ПУСТОЙ БЕЛЫМ ЭКРАНОМ была такой же простой, как опечатка или неправильный символ в файле env. Я внедрял Socialite, поэтому, когда я настраивал учетные данные .env для Google+, вот так:
Но файл .env не может использовать знак '+', поэтому я должен внести это исправление:
Надеюсь, это поможет вам найти тупую ошибку ...
источник
В моем случае проблема была решена перезапуском apache. для Ubuntu / Debian:
источник